{"id":30782,"date":"2025-10-02T02:41:14","date_gmt":"2025-10-01T23:41:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30782"},"modified":"2025-10-02T02:41:14","modified_gmt":"2025-10-01T23:41:14","slug":"postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","title":{"rendered":"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Veritabanlar\u0131, modern yaz\u0131l\u0131m uygulamalar\u0131n\u0131n temelini olu\u015fturur ve verilerin depolanmas\u0131, y\u00f6netilmesi ve eri\u015filmesi i\u00e7in kritik \u00f6neme sahiptir. Bu alandaki en g\u00fc\u00e7l\u00fc ve g\u00fcvenilir a\u00e7\u0131k kaynakl\u0131 ili\u015fkisel veritaban\u0131 y\u00f6netim sistemlerinden biri de PostgreSQL&#8217;dir. Geni\u015f \u00f6zellikleri, ACID uyumlulu\u011fu, geni\u015fletilebilirli\u011fi ve sa\u011flam mimarisi sayesinde kurumsal d\u00fczeyde uygulamalardan ki\u015fisel projelere kadar geni\u015f bir yelpazede tercih edilmektedir. Bu makale, PostgreSQL&#8217;i Ubuntu 22.04 i\u015fletim sistemi \u00fczerine nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve veritaban\u0131n\u0131 g\u00fcnl\u00fck operasyonlarda nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Amac\u0131m\u0131z, hem yeni ba\u015flayanlar hem de orta d\u00fczey kullan\u0131c\u0131lar i\u00e7in kapsaml\u0131 ve anla\u015f\u0131l\u0131r bir rehber sunarak PostgreSQL d\u00fcnyas\u0131na sa\u011flam bir giri\u015f yapmalar\u0131n\u0131 sa\u011flamakt\u0131r.<\/p>\n<h3>PostgreSQL Nedir?<\/h3>\n<p>PostgreSQL, &#8220;Post-GRE&#8221; olarak da an\u0131l\u0131r, k\u00f6kenleri 1980&#8217;lerin ortalar\u0131na dayanan, g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131 bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemidir (RDBMS). Akademik bir proje olarak Berkeley \u00dcniversitesi&#8217;nde ba\u015flayan ve daha sonra g\u00f6n\u00fcll\u00fc bir topluluk taraf\u0131ndan geli\u015ftirilmeye devam eden PostgreSQL, g\u00fcn\u00fcm\u00fczde d\u00fcnya genelinde milyonlarca kullan\u0131c\u0131ya ve binlerce kuruma hizmet vermektedir. Temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>A\u00e7\u0131k Kaynak ve \u00dccretsiz:<\/strong> PostgreSQL, BSD lisans\u0131 alt\u0131nda da\u011f\u0131t\u0131l\u0131r, bu da onu kullanmak, de\u011fi\u015ftirmek ve da\u011f\u0131tmak i\u00e7in tamamen \u00fccretsiz ve \u00f6zg\u00fcr k\u0131lar. Ticari lisans maliyetleri olmadan g\u00fc\u00e7l\u00fc bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fc arayanlar i\u00e7in idealdir.<\/li>\n<li><strong>ACID Uyumlulu\u011fu:<\/strong> Atomicity (Atomiklik), Consistency (Tutarl\u0131l\u0131k), Isolation (\u0130zolasyon) ve Durability (Dayan\u0131kl\u0131l\u0131k) prensiplerine tam uyumludur. Bu, veritaban\u0131 i\u015flemlerinin g\u00fcvenilir ve tutarl\u0131 bir \u015fekilde ger\u00e7ekle\u015fti\u011fini garanti eder, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc en \u00fcst d\u00fczeyde korur.<\/li>\n<li><strong>Geni\u015fletilebilirlik:<\/strong> PostgreSQL, kullan\u0131c\u0131lar\u0131n kendi veri t\u00fcrlerini, fonksiyonlar\u0131n\u0131, operat\u00f6rlerini, agregalar\u0131n\u0131 ve indeksleme y\u00f6ntemlerini tan\u0131mlamas\u0131na olanak tan\u0131yan olduk\u00e7a geni\u015fletilebilir bir mimariye sahiptir. Bu, \u00f6zel gereksinimleri olan uygulamalar i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<\/li>\n<li><strong>G\u00fcvenilirlik ve Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc:<\/strong> \u0130\u015flem g\u00fcnl\u00fc\u011f\u00fc (WAL &#8211; Write-Ahead Logging) sayesinde sistem \u00e7\u00f6kse bile veri kayb\u0131n\u0131 en aza indirir. Ayr\u0131ca, karma\u015f\u0131k k\u0131s\u0131tlamalar (CHECK, FOREIGN KEY, UNIQUE) ve tetikleyiciler (triggers) ile veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar.<\/li>\n<li><strong>Geli\u015fmi\u015f \u00d6zellikler:<\/strong> E\u015fzamanl\u0131l\u0131k kontrol\u00fc (MVCC &#8211; Multi-Version Concurrency Control), geli\u015fmi\u015f indeksleme t\u00fcrleri (B-tree, GIN, GiST, SP-GiST, BRIN), JSON\/JSONB deste\u011fi, co\u011frafi veri deste\u011fi (PostGIS eklentisi ile), tam metin arama ve tablo b\u00f6l\u00fcmlendirme gibi bir\u00e7ok geli\u015fmi\u015f \u00f6zelli\u011fe sahiptir.<\/li>\n<li><strong>Platform Ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131:<\/strong> Linux, Windows, macOS, Solaris ve BSD gibi bir\u00e7ok farkl\u0131 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fabilir.<\/li>\n<li><strong>B\u00fcy\u00fck ve Aktif Topluluk:<\/strong> Geni\u015f ve aktif bir geli\u015ftirici ve kullan\u0131c\u0131 toplulu\u011funa sahiptir. Bu, sorun giderme, destek alma ve s\u00fcrekli geli\u015fim i\u00e7in \u00f6nemli bir kaynakt\u0131r.<\/li>\n<\/ul>\n<p>Bu \u00f6zellikler, PostgreSQL&#8217;i sadece basit web uygulamalar\u0131 i\u00e7in de\u011fil, ayn\u0131 zamanda finansal sistemler, co\u011frafi bilgi sistemleri, b\u00fcy\u00fck veri analizi ve y\u00fcksek trafikli e-ticaret platformlar\u0131 gibi talepkar ortamlar i\u00e7in de tercih edilen bir se\u00e7enek haline getirir.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>PostgreSQL kurulumuna ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olunuz:<\/p>\n<ul>\n<li><strong>Ubuntu 22.04 \u0130\u015fletim Sistemi:<\/strong> Temiz bir Ubuntu 22.04 (Jammy Jellyfish) kurulumuna sahip bir sunucu veya sanal makine.<\/li>\n<li><strong>Sudo Yetkileri:<\/strong> Kurulum ve yap\u0131land\u0131rma i\u015flemleri i\u00e7in <code>sudo<\/code> komutunu kullanabilecek bir kullan\u0131c\u0131 hesab\u0131na sahip olman\u0131z gerekmektedir. Genellikle bu, ilk kurulumda olu\u015fturdu\u011funuz kullan\u0131c\u0131 hesab\u0131d\u0131r.<\/li>\n<li><strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Gerekli paketleri indirmek i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131.<\/li>\n<li><strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 (terminal) kullan\u0131m\u0131 hakk\u0131nda temel bilgiye sahip olmak, rehberi takip etmenizi kolayla\u015ft\u0131racakt\u0131r.<\/li>\n<\/ul>\n<h3>Kurulum Ad\u0131mlar\u0131<\/h3>\n<p>Ubuntu 22.04 \u00fczerinde PostgreSQL kurulumu olduk\u00e7a basittir ve Ubuntu&#8217;nun varsay\u0131lan APT paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilebilir.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin paket listelerini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek iyi bir uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code>sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p><code>sudo apt update<\/code> komutu, yerel paket indeksini g\u00fcncellerken, <code>sudo apt upgrade -y<\/code> komutu kurulu paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir ve <code>-y<\/code> bayra\u011f\u0131 t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verir.<\/p>\n<h4>PostgreSQL Paketlerinin Kurulumu<\/h4>\n<p>Ubuntu depolar\u0131nda PostgreSQL&#8217;in en son kararl\u0131 s\u00fcr\u00fcm\u00fc genellikle bulunur. Kurulum i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>sudo apt install postgresql postgresql-contrib -y<\/code><\/pre>\n<p>Bu komut iki ana paketi kurar:<\/p>\n<ul>\n<li><code>postgresql<\/code>: PostgreSQL sunucu paketini ve temel yard\u0131mc\u0131 programlar\u0131 i\u00e7erir.<\/li>\n<li><code>postgresql-contrib<\/code>: PostgreSQL i\u00e7in ek mod\u00fcller ve yard\u0131mc\u0131 programlar i\u00e7erir. Bu paket, performans izleme ara\u00e7lar\u0131, \u00f6zel veri tipleri ve di\u011fer kullan\u0131\u015fl\u0131 eklentileri bar\u0131nd\u0131rabilir. \u00c7o\u011fu kurulum i\u00e7in tavsiye edilir.<\/li>\n<\/ul>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, PostgreSQL servisi otomatik olarak ba\u015flat\u0131l\u0131r ve sistem ba\u015flang\u0131c\u0131nda \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131r\u0131l\u0131r.<\/p>\n<h4>Kurulumun Do\u011frulanmas\u0131<\/h4>\n<p>PostgreSQL servisinin ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>systemctl<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>systemctl status postgresql<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (exited)&#8221; veya &#8220;active (running)&#8221; ifadelerini g\u00f6rmelisiniz. &#8220;running&#8221; olmas\u0131, servisin aktif olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. E\u011fer &#8220;active (exited)&#8221; g\u00f6r\u00fcyorsan\u0131z, bu durum PostgreSQL&#8217;in iste\u011fe ba\u011fl\u0131 olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve bir ba\u011flant\u0131 geldi\u011finde aktif hale geldi\u011fini g\u00f6sterir. Her iki durum da genellikle sorunsuz bir kurulumu i\u015faret eder. Ayr\u0131ca, servisin sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flayacak \u015fekilde etkinle\u015ftirildi\u011finden emin olabilirsiniz:<\/p>\n<pre><code>systemctl is-enabled postgresql<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 olarak &#8220;enabled&#8221; g\u00f6rmelisiniz.<\/p>\n<h4>PostgreSQL Servisinin Y\u00f6netimi<\/h4>\n<p>PostgreSQL servisini y\u00f6netmek i\u00e7in a\u015fa\u011f\u0131daki <code>systemctl<\/code> komutlar\u0131n\u0131 kullanabilirsiniz:<\/p>\n<ul>\n<li><strong>Ba\u015flatma:<\/strong> PostgreSQL servisini ba\u015flat\u0131r.<\/li>\n<pre><code>sudo systemctl start postgresql<\/code><\/pre>\n<li><strong>Durdurma:<\/strong> PostgreSQL servisini durdurur.<\/li>\n<pre><code>sudo systemctl stop postgresql<\/code><\/pre>\n<li><strong>Yeniden Ba\u015flatma:<\/strong> Servisi durdurur ve tekrar ba\u015flat\u0131r. Yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131\u011f\u0131n\u0131zda genellikle bu komutu kullanman\u0131z gerekir.<\/li>\n<pre><code>sudo systemctl restart postgresql<\/code><\/pre>\n<li><strong>Durum Kontrol\u00fc:<\/strong> Servisin mevcut durumunu g\u00f6sterir.<\/li>\n<pre><code>systemctl status postgresql<\/code><\/pre>\n<li><strong>Otomatik Ba\u015flatmay\u0131 Etkinle\u015ftirme:<\/strong> Sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flar (genellikle kurulumda otomatik etkinle\u015fir).<\/li>\n<pre><code>sudo systemctl enable postgresql<\/code><\/pre>\n<li><strong>Otomatik Ba\u015flatmay\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong> Sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 engeller.<\/li>\n<pre><code>sudo systemctl disable postgresql<\/code><\/pre>\n<\/ul>\n<h3>PostgreSQL Kullan\u0131c\u0131s\u0131 ve Rolleri<\/h3>\n<p>PostgreSQL, veritaban\u0131 eri\u015fimini y\u00f6netmek i\u00e7in &#8220;roller&#8221; kavram\u0131n\u0131 kullan\u0131r. Kurulum s\u0131ras\u0131nda otomatik olarak <code>postgres<\/code> ad\u0131nda bir s\u00fcper kullan\u0131c\u0131 rol\u00fc olu\u015fturulur ve bu rol, i\u015fletim sistemindeki <code>postgres<\/code> kullan\u0131c\u0131s\u0131yla ili\u015fkilendirilir. Varsay\u0131lan olarak, bu <code>postgres<\/code> kullan\u0131c\u0131s\u0131, veritaban\u0131na eri\u015fmek i\u00e7in tek yetkili kullan\u0131c\u0131d\u0131r.<\/p>\n<h4><code>postgres<\/code> Kullan\u0131c\u0131s\u0131 ile Ba\u011flant\u0131<\/h4>\n<p><code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak komut sat\u0131r\u0131 arac\u0131 olan <code>psql<\/code>&#8216;e ba\u011flanmak i\u00e7in, \u00f6nce i\u015fletim sistemindeki <code>postgres<\/code> kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapman\u0131z gerekir:<\/p>\n<pre><code>sudo -i -u postgres<\/code><\/pre>\n<p>Bu komut sizi <code>postgres<\/code> kullan\u0131c\u0131s\u0131n\u0131n kabu\u011funa ta\u015f\u0131r. \u015eimdi <code>psql<\/code> komutunu kullanarak veritaban\u0131 istemcisine ba\u011flanabilirsiniz:<\/p>\n<pre><code>psql<\/code><\/pre>\n<p>Art\u0131k PostgreSQL komut sat\u0131r\u0131 aray\u00fcz\u00fcndesiniz. \u00c7\u0131kmak i\u00e7in <code>\\q<\/code> yaz\u0131p Enter tu\u015funa basabilirsiniz. \u0130\u015fletim sistemi kullan\u0131c\u0131n\u0131za geri d\u00f6nmek i\u00e7in ise <code>exit<\/code> yaz\u0131p Enter tu\u015funa basman\u0131z yeterlidir.<\/p>\n<p>Alternatif olarak, do\u011frudan mevcut kullan\u0131c\u0131n\u0131zdan <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak <code>psql<\/code>&#8216;e ba\u011flanabilirsiniz:<\/p>\n<pre><code>sudo -u postgres psql<\/code><\/pre>\n<h4>Yeni Bir Veritaban\u0131 Kullan\u0131c\u0131s\u0131 Olu\u015fturma<\/h4>\n<p>G\u00fcvenlik ve iyi uygulama a\u00e7\u0131s\u0131ndan, uygulamalar\u0131n\u0131z veya di\u011fer kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in <code>postgres<\/code> s\u00fcper kullan\u0131c\u0131s\u0131 yerine \u00f6zel, daha az yetkili veritaban\u0131 kullan\u0131c\u0131lar\u0131 olu\u015fturmak en iyisidir. Yeni bir kullan\u0131c\u0131 olu\u015fturmak i\u00e7in yine <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak ba\u011flanman\u0131z gerekir:<\/p>\n<pre><code>sudo -u postgres createuser --interactive<\/code><\/pre>\n<p>Bu komut size a\u015fa\u011f\u0131daki sorular\u0131 sorarak yeni bir kullan\u0131c\u0131 olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r:<\/p>\n<ul>\n<li><code>Enter name of role to add:<\/code> (Olu\u015fturmak istedi\u011finiz kullan\u0131c\u0131n\u0131n ad\u0131n\u0131 girin, \u00f6rn: <code>myuser<\/code>)<\/li>\n<li><code>Shall the new role be a superuser? (y\/n)<\/code> (S\u00fcper kullan\u0131c\u0131 olsun mu? Genellikle <code>n<\/code>)<\/li>\n<li><code>Shall the new role create databases? (y\/n)<\/code> (Veritaban\u0131 olu\u015fturabilsin mi? \u0130htiyaca g\u00f6re <code>y<\/code> veya <code>n<\/code>)<\/li>\n<li><code>Shall the new role create new roles? (y\/n)<\/code> (Yeni rol olu\u015fturabilsin mi? Genellikle <code>n<\/code>)<\/li>\n<\/ul>\n<p>Kullan\u0131c\u0131 olu\u015fturulduktan sonra, bu kullan\u0131c\u0131 i\u00e7in bir \u015fifre belirlemek iyi bir fikirdir. <code>psql<\/code> aray\u00fcz\u00fcne girip a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>sudo -u postgres psql<\/code><\/pre>\n<pre><code>ALTER USER myuser WITH PASSWORD 'gucl_sifre';<\/code><\/pre>\n<p><code>'gucl_sifre'<\/code> k\u0131sm\u0131n\u0131 kendi belirledi\u011finiz g\u00fcvenli bir \u015fifre ile de\u011fi\u015ftirin.<\/p>\n<h4>Yeni Bir Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>Uygulamalar\u0131n\u0131z i\u00e7in ayr\u0131 veritabanlar\u0131 olu\u015fturmak, veri izolasyonu ve y\u00f6netimi a\u00e7\u0131s\u0131ndan \u00f6nemlidir. Yeni bir veritaban\u0131 olu\u015fturmak i\u00e7in <code>createdb<\/code> komutunu kullanabilirsiniz. Yine <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>sudo -u postgres createdb mydatabase<\/code><\/pre>\n<p>Bu komut, <code>mydatabase<\/code> ad\u0131nda yeni bir veritaban\u0131 olu\u015fturur. Varsay\u0131lan olarak, bu veritaban\u0131n\u0131n sahibi <code>postgres<\/code> kullan\u0131c\u0131s\u0131d\u0131r.<\/p>\n<h4>Kullan\u0131c\u0131ya Veritaban\u0131 Yetkileri Verme<\/h4>\n<p>Olu\u015fturdu\u011funuz <code>myuser<\/code> kullan\u0131c\u0131s\u0131n\u0131n <code>mydatabase<\/code> veritaban\u0131na tam eri\u015fime sahip olmas\u0131 i\u00e7in veritaban\u0131n\u0131n sahipli\u011fini de\u011fi\u015ftirebilirsiniz:<\/p>\n<pre><code>sudo -u postgres psql -c \"ALTER DATABASE mydatabase OWNER TO myuser;\"<\/code><\/pre>\n<p>Art\u0131k <code>myuser<\/code> kullan\u0131c\u0131s\u0131, <code>mydatabase<\/code> veritaban\u0131na ba\u011flanabilir ve \u00fczerinde i\u015flem yapabilir.<\/p>\n<h3>Veritaban\u0131 Olu\u015fturma ve Y\u00f6netme<\/h3>\n<p>PostgreSQL&#8217;in komut sat\u0131r\u0131 aray\u00fcz\u00fc olan <code>psql<\/code>, veritaban\u0131 olu\u015fturma, tablo tan\u0131mlama, veri ekleme, sorgulama ve di\u011fer y\u00f6netim g\u00f6revleri i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<h4><code>psql<\/code> ile Veritaban\u0131na Ba\u011flanma<\/h4>\n<p>Olu\u015fturdu\u011funuz <code>myuser<\/code> kullan\u0131c\u0131s\u0131 ve <code>mydatabase<\/code> veritaban\u0131 ile ba\u011flanmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>psql -d mydatabase -U myuser<\/code><\/pre>\n<p>Bu komut sizden <code>myuser<\/code> i\u00e7in belirledi\u011finiz \u015fifreyi isteyecektir. Ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011fland\u0131\u011f\u0131n\u0131zda <code>mydatabase=><\/code> gibi bir komut istemi g\u00f6receksiniz.<\/p>\n<h4>Temel SQL Komutlar\u0131<\/h4>\n<p><code>psql<\/code> aray\u00fcz\u00fcndeyken, veritaban\u0131n\u0131z\u0131 y\u00f6netmek i\u00e7in standart SQL komutlar\u0131n\u0131 ve <code>psql<\/code>&#8216;e \u00f6zg\u00fc meta komutlar\u0131 kullanabilirsiniz.<\/p>\n<h5>Veritaban\u0131 Listeleme<\/h5>\n<p>Mevcut t\u00fcm veritabanlar\u0131n\u0131 listelemek i\u00e7in:<\/p>\n<pre><code>\\l<\/code><\/pre>\n<h5>Tablo Listeleme<\/h5>\n<p>Mevcut veritaban\u0131ndaki tablolar\u0131 listelemek i\u00e7in:<\/p>\n<pre><code>\\dt<\/code><\/pre>\n<h5>Kullan\u0131c\u0131 Listeleme<\/h5>\n<p>Mevcut t\u00fcm veritaban\u0131 rollerini (kullan\u0131c\u0131lar\u0131n\u0131) listelemek i\u00e7in:<\/p>\n<pre><code>\\du<\/code><\/pre>\n<h5>Tablo Olu\u015fturma<\/h5>\n<p>\u00d6rnek bir tablo olu\u015ftural\u0131m. \u00d6rne\u011fin, bir &#8220;\u00fcr\u00fcnler&#8221; tablosu:<\/p>\n<pre><code>CREATE TABLE products (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(255) NOT NULL,\n    price DECIMAL(10, 2) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);<\/code><\/pre>\n<p>Bu komut, <code>products<\/code> ad\u0131nda bir tablo olu\u015fturur. <code>SERIAL PRIMARY KEY<\/code> otomatik artan birincil anahtar olu\u015fturur, <code>VARCHAR(255)<\/code> de\u011fi\u015fken uzunlukta metin alan\u0131, <code>DECIMAL(10, 2)<\/code> ondal\u0131k say\u0131, <code>TEXT<\/code> uzun metin alan\u0131 ve <code>TIMESTAMP<\/code> zaman damgas\u0131 alan\u0131d\u0131r.<\/p>\n<h5>Veri Ekleme<\/h5>\n<p>Olu\u015fturdu\u011fumuz tabloya veri ekleyelim:<\/p>\n<pre><code>INSERT INTO products (name, price, description) VALUES\n('Diz\u00fcst\u00fc Bilgisayar', 1200.00, 'G\u00fc\u00e7l\u00fc ve ta\u015f\u0131nabilir diz\u00fcst\u00fc bilgisayar.'),\n('Ak\u0131ll\u0131 Telefon', 800.00, 'En yeni model ak\u0131ll\u0131 telefon.'),\n('Kablosuz Kulakl\u0131k', 150.00, 'Y\u00fcksek kaliteli ses sunan kablosuz kulakl\u0131k.');<\/code><\/pre>\n<h5>Veri Sorgulama<\/h5>\n<p>Tablodaki t\u00fcm verileri sorgulamak i\u00e7in:<\/p>\n<pre><code>SELECT * FROM products;<\/code><\/pre>\n<p>Belirli bir ko\u015fula g\u00f6re veri sorgulamak i\u00e7in:<\/p>\n<pre><code>SELECT name, price FROM products WHERE price > 500.00;<\/code><\/pre>\n<h5>Veri G\u00fcncelleme<\/h5>\n<p>Mevcut bir kayd\u0131 g\u00fcncellemek i\u00e7in:<\/p>\n<pre><code>UPDATE products SET price = 1150.00 WHERE name = 'Diz\u00fcst\u00fc Bilgisayar';<\/code><\/pre>\n<h5>Veri Silme<\/h5>\n<p>Belirli bir kayd\u0131 silmek i\u00e7in:<\/p>\n<pre><code>DELETE FROM products WHERE name = 'Kablosuz Kulakl\u0131k';<\/code><\/pre>\n<h5>Tablo Silme<\/h5>\n<p>Bir tabloyu tamamen silmek i\u00e7in:<\/p>\n<pre><code>DROP TABLE products;<\/code><\/pre>\n<p>Bu komut geri al\u0131namaz, dikkatli kullan\u0131n.<\/p>\n<h5>Veritaban\u0131ndan \u00c7\u0131k\u0131\u015f<\/h5>\n<p><code>psql<\/code> komut sat\u0131r\u0131 aray\u00fcz\u00fcnden \u00e7\u0131kmak i\u00e7in:<\/p>\n<pre><code>\\q<\/code><\/pre>\n<h3>Uzaktan Ba\u011flant\u0131 \u0130\u00e7in Yap\u0131land\u0131rma<\/h3>\n<p>Varsay\u0131lan olarak, PostgreSQL yaln\u0131zca yerel makineden (localhost) ba\u011flant\u0131lara izin verir. E\u011fer veritaban\u0131n\u0131za ba\u015fka bir makineden (\u00f6rne\u011fin bir uygulama sunucusundan veya geli\u015ftirme ortam\u0131ndan) eri\u015fmeniz gerekiyorsa, bu yap\u0131land\u0131rmay\u0131 de\u011fi\u015ftirmeniz gerekir. Bu i\u015flem iki ana yap\u0131land\u0131rma dosyas\u0131nda yap\u0131l\u0131r ve g\u00fcvenlik riskleri ta\u015f\u0131d\u0131\u011f\u0131ndan dikkatli yap\u0131lmal\u0131d\u0131r.<\/p>\n<h4><code>postgresql.conf<\/code> Dosyas\u0131<\/h4>\n<p>Bu dosya, PostgreSQL sunucusunun genel davran\u0131\u015f\u0131n\u0131 kontrol eden ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Uzaktan ba\u011flant\u0131lara izin vermek i\u00e7in <code>listen_addresses<\/code> parametresini d\u00fczenlemeniz gerekir.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/postgresql\/<s\u00fcr\u00fcm>\/main\/postgresql.conf<\/code> yolunda bulunur. Ubuntu 22.04 i\u00e7in bu genellikle <code>\/etc\/postgresql\/14\/main\/postgresql.conf<\/code> \u015feklindedir.<\/p>\n<pre><code>sudo nano \/etc\/postgresql\/14\/main\/postgresql.conf<\/code><\/pre>\n<p>Dosya i\u00e7inde <code>listen_addresses<\/code> sat\u0131r\u0131n\u0131 bulun. Varsay\u0131lan olarak \u015fu \u015fekilde yorum sat\u0131r\u0131 yap\u0131lm\u0131\u015f veya sadece <code>localhost<\/code> olarak ayarlanm\u0131\u015f olabilir:<\/p>\n<pre><code>#listen_addresses = 'localhost' # what IP address(es) to listen on;<\/code><\/pre>\n<p>T\u00fcm a\u011f aray\u00fczlerinden ba\u011flant\u0131lara izin vermek i\u00e7in bu sat\u0131r\u0131 a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin:<\/p>\n<pre><code>listen_addresses = '*' # what IP address(es) to listen on;<\/code><\/pre>\n<p>Sadece belirli bir IP adresinden ba\u011flant\u0131ya izin vermek isterseniz, \u00f6rne\u011fin sunucunuzun \u00f6zel IP adresi <code>192.168.1.100<\/code> ise:<\/p>\n<pre><code>listen_addresses = 'localhost,192.168.1.100'<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyay\u0131 kapat\u0131n (Nano&#8217;da: Ctrl+O, Enter, Ctrl+X).<\/p>\n<h4><code>pg_hba.conf<\/code> Dosyas\u0131<\/h4>\n<p>Bu dosya, PostgreSQL&#8217;in istemci kimlik do\u011frulamas\u0131n\u0131 kontrol eder. Hangi kullan\u0131c\u0131lar\u0131n hangi veritabanlar\u0131na hangi IP adreslerinden hangi kimlik do\u011frulama y\u00f6ntemiyle ba\u011flanabilece\u011fini belirler. Bu dosya, <code>postgresql.conf<\/code> ile ayn\u0131 dizinde bulunur.<\/p>\n<pre><code>sudo nano \/etc\/postgresql\/14\/main\/pg_hba.conf<\/code><\/pre>\n<p>Dosyan\u0131n sonuna, uzaktan eri\u015fime izin vermek istedi\u011finiz kural\u0131 eklemeniz gerekir. \u0130\u015fte baz\u0131 yayg\u0131n \u00f6rnekler:<\/p>\n<ul>\n<li><strong>Belirli bir IP adresinden belirli bir kullan\u0131c\u0131ya\/veritaban\u0131na izin verme (\u015fifre ile):<\/strong><\/li>\n<pre><code>host    mydatabase      myuser          192.168.1.10\/32         md5<\/code><\/pre>\n<p>Bu kural, <code>myuser<\/code> kullan\u0131c\u0131s\u0131n\u0131n <code>192.168.1.10<\/code> IP adresinden <code>mydatabase<\/code> veritaban\u0131na <code>md5<\/code> (\u015fifre) kimlik do\u011frulamas\u0131 ile ba\u011flanmas\u0131na izin verir.<\/p>\n<li><strong>Belirli bir IP aral\u0131\u011f\u0131ndan t\u00fcm kullan\u0131c\u0131lara\/veritabanlar\u0131na izin verme (\u015fifre ile):<\/strong><\/li>\n<pre><code>host    all             all             192.168.1.0\/24          md5<\/code><\/pre>\n<p>Bu kural, <code>192.168.1.0\/24<\/code> a\u011f\u0131ndaki t\u00fcm IP adreslerinden t\u00fcm kullan\u0131c\u0131lara t\u00fcm veritabanlar\u0131na <code>md5<\/code> kimlik do\u011frulamas\u0131 ile ba\u011flanmas\u0131na izin verir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, <code>all<\/code> yerine belirli veritaban\u0131 ve kullan\u0131c\u0131 adlar\u0131 belirtmek daha iyidir.<\/p>\n<li><strong>T\u00fcm IP adreslerinden t\u00fcm kullan\u0131c\u0131lara\/veritabanlar\u0131na izin verme (\u015fifre ile &#8211; <strong>G\u00dcVENL\u0130 DE\u011e\u0130LD\u0130R<\/strong>, sadece test ortamlar\u0131 i\u00e7in):<\/strong><\/li>\n<pre><code>host    all             all             0.0.0.0\/0               md5<\/code><\/pre>\n<p>Bu kural, d\u00fcnyan\u0131n her yerinden herkesin \u015fifre ile ba\u011flanmas\u0131na izin verir. \u00dcretim ortamlar\u0131nda kesinlikle ka\u00e7\u0131n\u0131lmas\u0131 gereken bir ayard\u0131r.<\/p>\n<\/ul>\n<p><code>md5<\/code> kimlik do\u011frulama y\u00f6ntemi, \u015fifrenin MD5 hash&#8217;i ile do\u011frulanmas\u0131n\u0131 sa\u011flar. Daha g\u00fcvenli y\u00f6ntemler aras\u0131nda <code>scram-sha-256<\/code> bulunur, ancak istemcinizin bu y\u00f6ntemi desteklemesi gerekir.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyay\u0131 kapat\u0131n.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131 (UFW)<\/h4>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall) etkinse, PostgreSQL&#8217;in varsay\u0131lan portu olan 5432&#8217;ye gelen ba\u011flant\u0131lara izin vermeniz gerekir.<\/p>\n<pre><code>sudo ufw allow 5432\/tcp<\/code><\/pre>\n<p>E\u011fer sadece belirli bir IP adresinden ba\u011flant\u0131ya izin vermek isterseniz:<\/p>\n<pre><code>sudo ufw allow from 192.168.1.10 to any port 5432<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131 de\u011fi\u015fikliklerini etkinle\u015ftirmek i\u00e7in:<\/p>\n<pre><code>sudo ufw enable<\/code><\/pre>\n<p>veya zaten etkinse:<\/p>\n<pre><code>sudo ufw reload<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131 durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>sudo ufw status<\/code><\/pre>\n<h4>Servisi Yeniden Ba\u015flatma<\/h4>\n<p><code>postgresql.conf<\/code> ve <code>pg_hba.conf<\/code> dosyalar\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code>sudo systemctl restart postgresql<\/code><\/pre>\n<p>Art\u0131k yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z IP adreslerinden ve kullan\u0131c\u0131larla PostgreSQL veritaban\u0131n\u0131za uzaktan ba\u011flanabilmelisiniz.<\/p>\n<h3>PostgreSQL G\u00fcvenli\u011fi \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h3>\n<p>Veritaban\u0131 g\u00fcvenli\u011fi, herhangi bir uygulaman\u0131n kritik bir bile\u015fenidir. PostgreSQL kurulumunuzu g\u00fcvence alt\u0131na almak i\u00e7in a\u015fa\u011f\u0131daki ipu\u00e7lar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun:<\/p>\n<ul>\n<li><strong>G\u00fc\u00e7l\u00fc \u015eifreler Kullan\u0131n:<\/strong> T\u00fcm veritaban\u0131 kullan\u0131c\u0131lar\u0131 i\u00e7in uzun, karma\u015f\u0131k ve benzersiz \u015fifreler kullan\u0131n. \u015eifrelerinizi d\u00fczenli olarak de\u011fi\u015ftirin.<\/li>\n<li><strong>En Az Ayr\u0131cal\u0131k Prensibi:<\/strong> Kullan\u0131c\u0131lara veya uygulamalara yaln\u0131zca ihtiya\u00e7 duyduklar\u0131 minimum yetkileri verin. <code>postgres<\/code> s\u00fcper kullan\u0131c\u0131s\u0131n\u0131 sadece y\u00f6netim g\u00f6revleri i\u00e7in kullan\u0131n ve uygulamalar\u0131n\u0131z i\u00e7in ayr\u0131, daha az yetkili kullan\u0131c\u0131lar olu\u015fturun.<\/li>\n<li><strong>Uzaktan Eri\u015fimi K\u0131s\u0131tlay\u0131n:<\/strong> <code>pg_hba.conf<\/code> dosyas\u0131nda sadece g\u00fcvenilir IP adreslerinden veya a\u011flardan ba\u011flant\u0131lara izin verin. <code>0.0.0.0\/0<\/code> gibi geni\u015f IP aral\u0131klar\u0131ndan ka\u00e7\u0131n\u0131n.<\/li>\n<li><strong>G\u00fcvenlik Duvar\u0131 Kullan\u0131n:<\/strong> Sunucunuzun g\u00fcvenlik duvar\u0131n\u0131 (UFW gibi) kullanarak PostgreSQL portu (5432) \u00fczerindeki trafi\u011fi sadece izin verilen kaynak IP adreslerine s\u0131n\u0131rlay\u0131n.<\/li>\n<li><strong>SSL\/TLS Kullan\u0131n:<\/strong> Uzaktan ba\u011flant\u0131lar i\u00e7in veri trafi\u011fini \u015fifrelemek amac\u0131yla SSL\/TLS kullan\u0131n. Bu, <code>postgresql.conf<\/code> dosyas\u0131nda <code>ssl = on<\/code> ayar\u0131 ile etkinle\u015ftirilebilir ve uygun sertifikalar\u0131n yap\u0131land\u0131r\u0131lmas\u0131n\u0131 gerektirir.<\/li>\n<li><strong>D\u00fczenli Yedeklemeler:<\/strong> Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in veritaban\u0131n\u0131z\u0131n d\u00fczenli yedeklerini al\u0131n ve bu yedekleri g\u00fcvenli bir yerde saklay\u0131n. Yedekleme ve geri y\u00fckleme s\u00fcre\u00e7lerini test edin.<\/li>\n<li><strong>G\u00fcncellemeleri Takip Edin:<\/strong> PostgreSQL ve Ubuntu i\u015fletim sistemi i\u00e7in g\u00fcvenlik yamalar\u0131n\u0131 ve g\u00fcncellemelerini d\u00fczenli olarak uygulay\u0131n.<\/li>\n<li><strong>Loglar\u0131 \u0130zleyin:<\/strong> PostgreSQL loglar\u0131n\u0131 (genellikle <code>\/var\/log\/postgresql\/<\/code> alt\u0131nda bulunur) d\u00fczenli olarak izleyerek \u015f\u00fcpheli aktiviteleri veya hatalar\u0131 tespit edin.<\/li>\n<\/ul>\n<h3>PostgreSQL Yedekleme ve Geri Y\u00fckleme<\/h3>\n<p>Veri kayb\u0131 her zaman bir risktir. Bu nedenle, d\u00fczenli yedeklemeler almak ve bir felaket durumunda veritaban\u0131n\u0131z\u0131 geri y\u00fckleyebilmek kritik \u00f6neme sahiptir. PostgreSQL, bu i\u015flemler i\u00e7in <code>pg_dump<\/code> ve <code>psql<\/code> (veya <code>pg_restore<\/code>) ara\u00e7lar\u0131n\u0131 sunar.<\/p>\n<h4><code>pg_dump<\/code> ile Yedekleme<\/h4>\n<p><code>pg_dump<\/code> arac\u0131, bir PostgreSQL veritaban\u0131n\u0131 metin format\u0131nda (SQL komutlar\u0131 olarak) veya \u00f6zel bir ar\u015fiv format\u0131nda yedeklemek i\u00e7in kullan\u0131l\u0131r. Metin format\u0131ndaki yedekler, ba\u015fka bir PostgreSQL s\u00fcr\u00fcm\u00fcne veya hatta farkl\u0131 bir veritaban\u0131 sistemine ta\u015f\u0131nabilirlik a\u00e7\u0131s\u0131ndan daha esnektir.<\/p>\n<p><strong>Belirli bir veritaban\u0131n\u0131 yedekleme:<\/strong><\/p>\n<pre><code>sudo -u postgres pg_dump mydatabase > mydatabase_backup.sql<\/code><\/pre>\n<p>Bu komut, <code>mydatabase<\/code> adl\u0131 veritaban\u0131n\u0131n t\u00fcm yap\u0131s\u0131n\u0131 ve verilerini <code>mydatabase_backup.sql<\/code> adl\u0131 bir dosyaya kaydeder. <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zdan emin olun veya <code>psql -U myuser<\/code> gibi kullan\u0131c\u0131 belirtin.<\/p>\n<p><strong>T\u00fcm veritabanlar\u0131n\u0131 yedekleme (genellikle <code>pg_dumpall<\/code> kullan\u0131l\u0131r):<\/strong><\/p>\n<pre><code>sudo -u postgres pg_dumpall > all_databases_backup.sql<\/code><\/pre>\n<p>Bu komut, t\u00fcm veritabanlar\u0131n\u0131, rollerini ve tablo alanlar\u0131n\u0131 i\u00e7eren tek bir SQL dosyas\u0131 olu\u015fturur. Bu, tam bir sistem yedeklemesi i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p><strong>S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f yedekleme:<\/strong> B\u00fcy\u00fck veritabanlar\u0131 i\u00e7in yedeklemeyi s\u0131k\u0131\u015ft\u0131rmak disk alan\u0131ndan tasarruf sa\u011flar:<\/p>\n<pre><code>sudo -u postgres pg_dump mydatabase | gzip > mydatabase_backup.sql.gz<\/code><\/pre>\n<h4>Geri Y\u00fckleme<\/h4>\n<p>Yedekledi\u011finiz bir SQL dosyas\u0131n\u0131 geri y\u00fcklemek i\u00e7in, \u00f6nce hedef veritaban\u0131n\u0131n mevcut olmas\u0131 ve genellikle bo\u015f olmas\u0131 gerekir.<\/p>\n<p><strong>Yedekleme dosyas\u0131ndan geri y\u00fckleme:<\/strong><\/p>\n<ol>\n<li><strong>Mevcut veritaban\u0131n\u0131 silin (iste\u011fe ba\u011fl\u0131, ancak temiz bir geri y\u00fckleme i\u00e7in \u00f6nerilir):<\/strong><\/li>\n<pre><code>sudo -u postgres dropdb mydatabase<\/code><\/pre>\n<li><strong>Yeni, bo\u015f bir veritaban\u0131 olu\u015fturun:<\/strong><\/li>\n<pre><code>sudo -u postgres createdb mydatabase -O myuser<\/code><\/pre>\n<p>(<code>-O myuser<\/code> ile veritaban\u0131n\u0131n sahibini belirtiyoruz)<\/p>\n<li><strong>Yedekleme dosyas\u0131n\u0131 geri y\u00fckleyin:<\/strong><\/li>\n<pre><code>sudo -u postgres psql -d mydatabase -f mydatabase_backup.sql<\/code><\/pre>\n<p>S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f bir yedekleme dosyas\u0131n\u0131 geri y\u00fcklemek i\u00e7in:<\/p>\n<pre><code>sudo -u postgres gunzip < mydatabase_backup.sql.gz | psql -d mydatabase<\/code><\/pre>\n<\/ol>\n<p><code>pg_dumpall<\/code> ile al\u0131nan yedekleri geri y\u00fcklemek i\u00e7in, hedef sistemde PostgreSQL'in \u00e7al\u0131\u015f\u0131yor olmas\u0131 ve genellikle t\u00fcm veritabanlar\u0131n\u0131 silip ba\u015ftan y\u00fcklemek i\u00e7in kullan\u0131l\u0131r:<\/p>\n<pre><code>sudo -u postgres psql -f all_databases_backup.sql postgres<\/code><\/pre>\n<p>Bu komut, yedekleme dosyas\u0131ndaki t\u00fcm veritabanlar\u0131n\u0131, kullan\u0131c\u0131lar\u0131 ve di\u011fer global objeleri <code>postgres<\/code> veritaban\u0131 \u00fczerinden geri y\u00fckler.<\/p>\n<h3>PostgreSQL Performans Optimizasyonu Temelleri<\/h3>\n<p>PostgreSQL'in performans\u0131n\u0131 art\u0131rmak, \u00f6zellikle b\u00fcy\u00fck ve yo\u011fun kullan\u0131lan veritabanlar\u0131 i\u00e7in hayati \u00f6neme sahiptir. \u0130\u015fte baz\u0131 temel optimizasyon teknikleri:<\/p>\n<h4><code>EXPLAIN ANALYZE<\/code> Kullan\u0131m\u0131<\/h4>\n<p>Bir sorgunun nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak ve performans darbo\u011fazlar\u0131n\u0131 tespit etmek i\u00e7in <code>EXPLAIN ANALYZE<\/code> komutunu kullan\u0131n. Bu komut, sorgu planlay\u0131c\u0131s\u0131n\u0131n bir sorguyu nas\u0131l y\u00fcr\u00fctt\u00fc\u011f\u00fcn\u00fc ve her ad\u0131m\u0131n ne kadar zaman ald\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<pre><code>EXPLAIN ANALYZE SELECT * FROM products WHERE price > 500.00;<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131y\u0131 inceleyerek, hangi tablolar\u0131n taranmas\u0131 gerekti\u011fini, hangi indekslerin kullan\u0131ld\u0131\u011f\u0131n\u0131 ve hangi i\u015flemlerin en \u00e7ok zaman ald\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h4>\u0130ndeksler<\/h4>\n<p>S\u0131k\u00e7a sorgulanan s\u00fctunlara indeks eklemek, arama ve s\u0131ralama i\u015flemlerinin performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Ancak, \u00e7ok fazla indeks eklemek INSERT, UPDATE ve DELETE i\u015flemlerini yava\u015flatabilir ve disk alan\u0131 t\u00fcketimini art\u0131rabilir.<\/p>\n<p>\u00d6rnek indeks olu\u015fturma:<\/p>\n<pre><code>CREATE INDEX idx_products_price ON products (price);<\/code><\/pre>\n<p>Bu, <code>products<\/code> tablosundaki <code>price<\/code> s\u00fctunu \u00fczerinde bir indeks olu\u015fturur. <code>WHERE price > 500.00<\/code> gibi sorgular art\u0131k bu indeksi kullanarak daha h\u0131zl\u0131 \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<h4><code>VACUUM<\/code> ve <code>ANALYZE<\/code><\/h4>\n<p>PostgreSQL, MVCC (Multi-Version Concurrency Control) kulland\u0131\u011f\u0131 i\u00e7in, g\u00fcncellenen veya silinen sat\u0131rlar hemen diskten kald\u0131r\u0131lmaz. Bunun yerine, \"dead tuples\" (\u00f6l\u00fc kay\u0131tlar) olarak i\u015faretlenirler. Bu \u00f6l\u00fc kay\u0131tlar, zamanla disk alan\u0131n\u0131 doldurur ve sorgu performans\u0131n\u0131 d\u00fc\u015f\u00fcrebilir. <code>VACUUM<\/code> komutu bu \u00f6l\u00fc kay\u0131tlar\u0131 temizler ve disk alan\u0131n\u0131 geri kazan\u0131r.<\/p>\n<pre><code>VACUUM (VERBOSE, ANALYZE) products;<\/code><\/pre>\n<p><code>ANALYZE<\/code> komutu, tablo ve indekslerin istatistiklerini toplar ve sorgu planlay\u0131c\u0131s\u0131n\u0131n daha verimli sorgu planlar\u0131 olu\u015fturmas\u0131na yard\u0131mc\u0131 olur. Genellikle <code>VACUUM<\/code> ile birlikte kullan\u0131l\u0131r.<\/p>\n<p>PostgreSQL'in otomatik vakum (autovacuum) s\u00fcreci, bu i\u015flemleri arka planda otomatik olarak yapar, ancak bazen manuel m\u00fcdahale veya autovacuum ayarlar\u0131n\u0131n ince ayar\u0131 gerekebilir.<\/p>\n<h4>Yap\u0131land\u0131rma Parametreleri<\/h4>\n<p><code>postgresql.conf<\/code> dosyas\u0131ndaki baz\u0131 parametreler, sunucunun performans\u0131n\u0131 do\u011frudan etkiler. Sunucunuzun donan\u0131m\u0131na ve i\u015f y\u00fck\u00fcne g\u00f6re bu ayarlar\u0131 optimize etmeniz \u00f6nemlidir:<\/p>\n<ul>\n<li><code>shared_buffers<\/code>: PostgreSQL'in payla\u015f\u0131lan bellek alan\u0131n\u0131n boyutu. Genellikle RAM'in %25'i kadar ayarlan\u0131r.<\/li>\n<li><code>work_mem<\/code>: Sorgular s\u0131ras\u0131nda ge\u00e7ici disk yazma i\u015flemlerini azaltmak i\u00e7in kullan\u0131lan bellek miktar\u0131. B\u00fcy\u00fck s\u0131ralama veya hash i\u015flemleri i\u00e7in \u00f6nemlidir.<\/li>\n<li><code>maintenance_work_mem<\/code>: VACUUM, CREATE INDEX gibi bak\u0131m i\u015flemleri i\u00e7in kullan\u0131lan bellek miktar\u0131.<\/li>\n<li><code>wal_buffers<\/code>: WAL (Write-Ahead Log) verilerinin diskten \u00f6nce bellekte tutuldu\u011fu arabellek boyutu.<\/li>\n<li><code>max_connections<\/code>: Ayn\u0131 anda izin verilen maksimum ba\u011flant\u0131 say\u0131s\u0131.<\/li>\n<\/ul>\n<p>Bu parametrelerin do\u011fru \u015fekilde ayarlanmas\u0131, PostgreSQL'in donan\u0131m kaynaklar\u0131n\u0131 daha verimli kullanmas\u0131n\u0131 sa\u011flar. Ancak, yanl\u0131\u015f ayarlar performans d\u00fc\u015f\u00fc\u015f\u00fcne veya sistem karars\u0131zl\u0131\u011f\u0131na yol a\u00e7abilir. Bu nedenle, de\u011fi\u015fiklik yapmadan \u00f6nce iyi ara\u015ft\u0131rma yapmal\u0131 ve test etmelisiniz.<\/p>\n<h3>PostgreSQL'i Kald\u0131rma<\/h3>\n<p>E\u011fer PostgreSQL'i sisteminizden kald\u0131rmak isterseniz, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz.<\/p>\n<h4>PostgreSQL Paketlerini Kald\u0131rma<\/h4>\n<p>\u0130lk olarak, PostgreSQL sunucu ve katk\u0131 paketlerini kald\u0131r\u0131n:<\/p>\n<pre><code>sudo apt remove --purge postgresql postgresql-contrib -y<\/code><\/pre>\n<p><code>--purge<\/code> se\u00e7ene\u011fi, paketlerle birlikte t\u00fcm yap\u0131land\u0131rma dosyalar\u0131n\u0131 da kald\u0131r\u0131r.<\/p>\n<h4>Veri Dizinlerini Silme<\/h4>\n<p>PostgreSQL'in veri dizinleri (genellikle <code>\/var\/lib\/postgresql\/<\/code> alt\u0131nda bulunur) paket kald\u0131rma i\u015flemiyle otomatik olarak silinmez. Bu dizinleri ve i\u00e7indeki t\u00fcm veritaban\u0131 dosyalar\u0131n\u0131 manuel olarak silmeniz gerekir:<\/p>\n<pre><code>sudo rm -rf \/var\/lib\/postgresql\/<\/code><\/pre>\n<p><strong>UYARI:<\/strong> Bu komut t\u00fcm veritaban\u0131 verilerinizi kal\u0131c\u0131 olarak silecektir. Bu ad\u0131m\u0131 uygulamadan \u00f6nce yedekleme yapt\u0131\u011f\u0131n\u0131zdan veya verilere ihtiyac\u0131n\u0131z olmad\u0131\u011f\u0131ndan kesinlikle emin olun.<\/p>\n<h4>PostgreSQL Kullan\u0131c\u0131s\u0131n\u0131 Silme<\/h4>\n<p>\u0130\u015fletim sistemi d\u00fczeyinde olu\u015fturulan <code>postgres<\/code> kullan\u0131c\u0131s\u0131n\u0131 da silebilirsiniz:<\/p>\n<pre><code>sudo deluser postgres<\/code><\/pre>\n<p>Bu komut, <code>postgres<\/code> kullan\u0131c\u0131s\u0131n\u0131 sistemden kald\u0131r\u0131r. E\u011fer kullan\u0131c\u0131n\u0131n ana dizinini de silmek isterseniz <code>--remove-home<\/code> bayra\u011f\u0131n\u0131 kullanabilirsiniz:<\/p>\n<pre><code>sudo deluser --remove-home postgres<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, PostgreSQL sisteminizden tamamen kald\u0131r\u0131lm\u0131\u015f olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, PostgreSQL'i Ubuntu 22.04 i\u015fletim sistemi \u00fczerine kurmaktan, temel veritaban\u0131 y\u00f6netimi i\u015flemlerine, uzaktan eri\u015fim yap\u0131land\u0131rmas\u0131ndan g\u00fcvenlik ipu\u00e7lar\u0131na ve performans optimizasyonu temellerine kadar bir\u00e7ok konuyu ele ald\u0131k. PostgreSQL, esnekli\u011fi, g\u00fcvenilirli\u011fi ve zengin \u00f6zellik seti sayesinde hem geli\u015ftiriciler hem de sistem y\u00f6neticileri i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu rehberdeki ad\u0131mlar\u0131 takip ederek, kendi PostgreSQL kurulumunuzu ba\u015far\u0131yla tamamlayabilir ve uygulamalar\u0131n\u0131z i\u00e7in sa\u011flam bir veritaban\u0131 altyap\u0131s\u0131 olu\u015fturabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki veritaban\u0131 y\u00f6netimi s\u00fcrekli bir \u00f6\u011frenme s\u00fcrecidir. G\u00fcvenlik, performans ve yedekleme stratejileri gibi konular\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek, veritaban\u0131n\u0131z\u0131n sa\u011fl\u0131kl\u0131 ve verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. Daha fazla bilgi ve geli\u015fmi\u015f konular i\u00e7in PostgreSQL'in resmi belgelerini ve aktif topluluk forumlar\u0131n\u0131 takip etmeniz \u015fiddetle tavsiye edilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\nVeritabanlar\u0131, modern yaz\u0131l\u0131m uygulamalar\u0131n\u0131n temelini olu\u015ftur","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-30782","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PostgreSQL&#039;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL&#039;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"PostgreSQL&#039;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber Veritabanlar\u0131, modern yaz\u0131l\u0131m uygulamalar\u0131n\u0131n temelini olu\u015ftur\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-01T23:41:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-10-01T23:41:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"},\"wordCount\":3706,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\",\"name\":\"PostgreSQL'i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-01T23:41:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL'i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL'i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber","og_description":"PostgreSQL'i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber Veritabanlar\u0131, modern yaz\u0131l\u0131m uygulamalar\u0131n\u0131n temelini olu\u015ftur","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-01T23:41:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber","datePublished":"2025-10-01T23:41:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"},"wordCount":3706,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","name":"PostgreSQL'i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-01T23:41:14+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresqli-ubuntu-22-04-uzerine-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL&#8217;i Ubuntu 22.04 \u00dczerine Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30782"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30782\/revisions"}],"predecessor-version":[{"id":30783,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30782\/revisions\/30783"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}