{"id":37066,"date":"2025-12-27T00:40:39","date_gmt":"2025-12-26T21:40:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37066"},"modified":"2025-12-27T00:40:39","modified_gmt":"2025-12-26T21:40:39","slug":"postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/","title":{"rendered":"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>PostgreSQL, a\u00e7\u0131k kaynakl\u0131 ve olduk\u00e7a g\u00fc\u00e7l\u00fc bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemidir (RDBMS). Uygulamalar\u0131n temelinde yer alan verileri depolamak ve y\u00f6netmek i\u00e7in s\u0131kl\u0131kla tercih edilir. Zaman zaman, bir PostgreSQL kurulumunun veri dizinini (data directory) farkl\u0131 bir fiziksel konuma ta\u015f\u0131mak gerekebilir. Bu ta\u015f\u0131ma i\u015flemi, disk alan\u0131 y\u00f6netimi, performans iyile\u015ftirmeleri, daha g\u00fcvenli bir depolama birimine ge\u00e7i\u015f veya mevcut diskin dolmas\u0131 gibi \u00e7e\u015fitli nedenlerle g\u00fcndeme gelebilir. \u00d6zellikle Ubuntu 20.04 gibi sunucu i\u015fletim sistemlerinde, varsay\u0131lan kurulum dizinleri belirli bir disk b\u00f6l\u00fcm\u00fcnde yer al\u0131rken, veritaban\u0131 b\u00fcy\u00fcd\u00fck\u00e7e bu b\u00f6l\u00fcm yetersiz kalabilir veya daha h\u0131zl\u0131 bir SSD&#8217;ye ge\u00e7i\u015f ihtiyac\u0131 do\u011fabilir.<\/p>\n<p>Bu kapsaml\u0131 teknik makale, Ubuntu 20.04 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir PostgreSQL veritaban\u0131n\u0131n veri dizinini g\u00fcvenli ve do\u011fru bir \u015fekilde yeni bir konuma nas\u0131l ta\u015f\u0131yaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. \u0130\u015flem s\u0131ras\u0131nda olas\u0131 veri kay\u0131plar\u0131n\u0131 \u00f6nlemek ve sistemin kesintisiz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in dikkat edilmesi gereken t\u00fcm kritik noktalar vurgulanacakt\u0131r. Rehber, hem deneyimli sistem y\u00f6neticileri hem de PostgreSQL ile yeni tan\u0131\u015fan kullan\u0131c\u0131lar i\u00e7in anla\u015f\u0131l\u0131r bir dil ve pratik \u00f6rneklerle haz\u0131rlanm\u0131\u015ft\u0131r.<\/p>\n<h2>Neden Veri Dizinini Ta\u015f\u0131mak Gerekir?<\/h2>\n<p>PostgreSQL veri dizinini ta\u015f\u0131ma karar\u0131 genellikle a\u015fa\u011f\u0131daki senaryolardan biri veya birka\u00e7\u0131 nedeniyle al\u0131n\u0131r:<\/p>\n<h3>Disk Alan\u0131 Y\u00f6netimi<\/h3>\n<p>Veritabanlar\u0131 zamanla b\u00fcy\u00fcr ve mevcut disk b\u00f6l\u00fcm\u00fcndeki alan\u0131 t\u00fcketebilir. \u00d6zellikle k\u00f6k dizin (\/) alt\u0131nda veya s\u0131n\u0131rl\u0131 boyutlu bir disk b\u00f6l\u00fcm\u00fcnde yer alan varsay\u0131lan veri dizini, yeterli depolama alan\u0131 sunmayabilir. Yeni bir, daha b\u00fcy\u00fck veya ayr\u0131 bir disk b\u00f6l\u00fcm\u00fcne ta\u015f\u0131ma, disk alan\u0131 s\u0131k\u0131nt\u0131s\u0131n\u0131 giderir ve gelecekteki b\u00fcy\u00fcmeye olanak tan\u0131r.<\/p>\n<h3>Performans \u0130yile\u015ftirmeleri<\/h3>\n<p>Veritaban\u0131 performans\u0131nda I\/O (giri\u015f\/\u00e7\u0131k\u0131\u015f) i\u015flemleri kritik bir rol oynar. Daha h\u0131zl\u0131 bir depolama birimine (\u00f6rne\u011fin, HDD&#8217;den SSD&#8217;ye veya daha h\u0131zl\u0131 bir NVMe SSD&#8217;ye) ge\u00e7i\u015f yapmak, veritaban\u0131n\u0131n okuma\/yazma h\u0131zlar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Veri dizinini bu yeni, daha h\u0131zl\u0131 bir konuma ta\u015f\u0131mak, genel veritaban\u0131 performans\u0131n\u0131 do\u011frudan etkiler.<\/p>\n<h3>G\u00fcvenlik ve Yedekleme Stratejileri<\/h3>\n<p>Baz\u0131 durumlarda, veri dizinini ayr\u0131 bir disk b\u00f6l\u00fcm\u00fcne veya depolama sistemine ta\u015f\u0131mak, yedekleme stratejilerini basitle\u015ftirebilir veya g\u00fcvenlik gereksinimlerini kar\u015f\u0131layabilir. \u00d6rne\u011fin, hassas verilerin \u015fifrelenmi\u015f bir b\u00f6l\u00fcme ta\u015f\u0131nmas\u0131 veya belirli g\u00fcvenlik ilkelerine uygun bir depolama alan\u0131na y\u00f6nlendirilmesi gerekebilir.<\/p>\n<h3>Sistem Yeniden Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Bir sunucunun genel disk d\u00fczenini veya depolama altyap\u0131s\u0131n\u0131 yeniden yap\u0131land\u0131r\u0131rken, veritaban\u0131 veri dizininin de yeni d\u00fczene uyacak \u015fekilde ta\u015f\u0131nmas\u0131 gerekebilir. Bu, genellikle sunucu y\u00fckseltmeleri veya donan\u0131m de\u011fi\u015fiklikleri s\u0131ras\u0131nda ortaya \u00e7\u0131kar.<\/p>\n<h3>Y\u00fcksek Eri\u015filebilirlik ve Felaket Kurtarma<\/h3>\n<p>Y\u00fcksek eri\u015filebilirlik (HA) \u00e7\u00f6z\u00fcmlerinde veya felaket kurtarma (DR) senaryolar\u0131nda, veri dizininin belirli bir payla\u015f\u0131ml\u0131 depolama birimine veya replikasyon i\u00e7in uygun bir konuma ta\u015f\u0131nmas\u0131 gerekebilir.<\/p>\n<h2>\u00d6nko\u015fullar<\/h2>\n<p>Ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6nko\u015fullar\u0131n sa\u011fland\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>Sudo Yetkileri:<\/strong> \u0130\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in <code>sudo<\/code> yetkisine sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131d\u0131r.<br \/>\n*   <strong>Yeni Konum:<\/strong> Veri dizinini ta\u015f\u0131mak istedi\u011finiz yeni konum (dizin) belirlenmi\u015f ve eri\u015filebilir olmal\u0131d\u0131r. Bu konumda, mevcut veri dizininin en az iki kat\u0131 kadar bo\u015f alan olmas\u0131 \u00f6nerilir (kopyalama ve olas\u0131 geri alma senaryolar\u0131 i\u00e7in).<br \/>\n*   <strong>Yedekleme:<\/strong> <strong>Bu en kritik ad\u0131md\u0131r.<\/strong> Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in mevcut PostgreSQL veritaban\u0131n\u0131z\u0131n tam bir yede\u011fini alm\u0131\u015f olmal\u0131s\u0131n\u0131z. <code>pg_dumpall<\/code> veya dosya sistemi seviyesinde bir yedekleme (servis durdurulmu\u015fken) tercih edilebilir.<br \/>\n*   <strong>PostgreSQL S\u00fcr\u00fcm\u00fc:<\/strong> Ubuntu 20.04 genellikle PostgreSQL 12 veya daha yeni s\u00fcr\u00fcmlerle gelir. \u0130\u015flem genel olarak ayn\u0131 olsa da, varsay\u0131lan dizin yolu s\u00fcr\u00fcmden s\u00fcr\u00fcme de\u011fi\u015febilir (<code>\/var\/lib\/postgresql\/<s\u00fcr\u00fcm>\/main<\/code>).<\/p>\n<h2>Mevcut Durumu Anlama<\/h2>\n<p>Ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce mevcut PostgreSQL kurulumunuz hakk\u0131nda baz\u0131 temel bilgileri edinmek \u00f6nemlidir.<\/p>\n<h3>PostgreSQL S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme<\/h3>\n<p>Hangi PostgreSQL s\u00fcr\u00fcm\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131z\u0131 \u00f6\u011frenmek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">psql --version<\/code><\/pre>\n<p>Veya veritaban\u0131na ba\u011flanarak:<\/p>\n<pre><code class=\"language-bash\">sudo -u postgres psql -c \"SELECT version();\"<\/code><\/pre>\n<p>Bu bilgi, varsay\u0131lan veri dizini yolunu tahmin etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Mevcut Veri Dizinini Bulma<\/h3>\n<p>Mevcut veri dizininin nerede oldu\u011funu \u00f6\u011frenmenin birka\u00e7 yolu vard\u0131r:<\/p>\n<p>1.  <strong><code>psql<\/code> ile Sorgulama:<\/strong> Veritaban\u0131na ba\u011flan\u0131p <code>data_directory<\/code> parametresini sorgulayabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo -u postgres psql -c \"SHOW data_directory;\"<\/code><\/pre>\n<p>    Bu komut genellikle <code>\/var\/lib\/postgresql\/<s\u00fcr\u00fcm>\/main<\/code> gibi bir \u00e7\u0131kt\u0131 verecektir.<\/p>\n<p>2.  <strong><code>postgresql.conf<\/code> Dosyas\u0131n\u0131 Kontrol Etme:<\/strong> PostgreSQL&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 olan <code>postgresql.conf<\/code> i\u00e7inde <code>data_directory<\/code> parametresi belirtilebilir.<\/p>\n<pre><code class=\"language-bash\">sudo grep \"data_directory\" \/etc\/postgresql\/*\/main\/postgresql.conf<\/code><\/pre>\n<p>    Bu komut, farkl\u0131 PostgreSQL s\u00fcr\u00fcmlerindeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 tarayarak <code>data_directory<\/code> ayar\u0131n\u0131 bulmaya \u00e7al\u0131\u015facakt\u0131r. Ubuntu&#8217;da genellikle <code>data_directory<\/code> de\u011feri bu dosyada yorum sat\u0131r\u0131 olarak kal\u0131r ve varsay\u0131lan konum kullan\u0131l\u0131r, ancak yine de kontrol etmek \u00f6nemlidir. E\u011fer bir de\u011fer belirtilmi\u015fse, o dizin kullan\u0131lacakt\u0131r.<\/p>\n<h3>Veritaban\u0131 Kullan\u0131c\u0131lar\u0131n\u0131 ve Rollerini Kontrol Etme<\/h3>\n<p>Bu ad\u0131m ta\u015f\u0131ma i\u015flemi i\u00e7in do\u011frudan gerekli olmasa da, genel bir iyi uygulama olarak veritaban\u0131 kullan\u0131c\u0131lar\u0131n\u0131 ve rollerini bilmek faydal\u0131d\u0131r. \u00d6zellikle <code>postgres<\/code> kullan\u0131c\u0131s\u0131, servis y\u00f6netiminde ve dosya izinlerinde kilit rol oynar.<\/p>\n<pre><code class=\"language-bash\">sudo -u postgres psql -c \"\\du\"<\/code><\/pre>\n<p>Bu komut, mevcut veritaban\u0131 kullan\u0131c\u0131lar\u0131n\u0131 (rollerini) listeleyecektir.<\/p>\n<h2>Ta\u015f\u0131ma \u0130\u015flemi<\/h2>\n<p>\u015eimdi, PostgreSQL veri dizinini yeni bir konuma ta\u015f\u0131ma ad\u0131mlar\u0131na ge\u00e7ebiliriz.<\/p>\n<h3>1. PostgreSQL Servisini Durdurma<\/h3>\n<p>Veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce PostgreSQL servisini durdurmak zorunludur. Servis \u00e7al\u0131\u015f\u0131rken dosyalar\u0131 kopyalamak veya ta\u015f\u0131mak veri bozulmas\u0131na yol a\u00e7abilir.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop postgresql<\/code><\/pre>\n<p>Servisin ba\u015far\u0131yla durduruldu\u011funu do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status postgresql<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Active: inactive (dead)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h3>2. Yeni Konumu Haz\u0131rlama<\/h3>\n<p>Yeni veri dizini i\u00e7in bir konum belirledikten sonra, bu konumu olu\u015fturman\u0131z ve PostgreSQL servis kullan\u0131c\u0131s\u0131 (<code>postgres<\/code>) i\u00e7in do\u011fru izinleri ayarlaman\u0131z gerekir. Bu, genellikle <code>\/mnt\/new_data_disk\/postgresql\/data<\/code> veya <code>\/opt\/postgresql\/data<\/code> gibi bir yol olabilir. Bu rehberde <code>\/mnt\/new_pg_data<\/code> yolunu \u00f6rnek olarak kullanaca\u011f\u0131z.<\/p>\n<h4>Dizin Olu\u015fturma<\/h4>\n<p>Yeni dizini olu\u015fturun. E\u011fer \u00fcst dizinler mevcut de\u011filse, <code>-p<\/code> bayra\u011f\u0131n\u0131 kullanarak onlar\u0131 da olu\u015fturabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/mnt\/new_pg_data<\/code><\/pre>\n<h4>\u0130zinleri Ayarlama<\/h4>\n<p>PostgreSQL servisi, veri dizinine eri\u015fmek ve yazmak i\u00e7in \u00f6zel izinlere ihtiya\u00e7 duyar. Dizin sahibi <code>postgres<\/code> kullan\u0131c\u0131s\u0131 ve <code>postgres<\/code> grubu olmal\u0131 ve izinler <code>0700<\/code> (sadece sahibin okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izni) veya <code>0750<\/code> (sahibin okuma, yazma, \u00e7al\u0131\u015ft\u0131rma; grubun okuma, \u00e7al\u0131\u015ft\u0131rma izni) olarak ayarlanmal\u0131d\u0131r. <code>0700<\/code> genellikle daha g\u00fcvenli kabul edilir.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R postgres:postgres \/mnt\/new_pg_data\nsudo chmod -R 0700 \/mnt\/new_pg_data<\/code><\/pre>\n<p><strong>\u00d6nemli:<\/strong> E\u011fer bu izinler yanl\u0131\u015f ayarlan\u0131rsa, PostgreSQL servisi ba\u015flat\u0131lamaz ve &#8220;Permission denied&#8221; hatalar\u0131 al\u0131rs\u0131n\u0131z.<\/p>\n<h3>3. Veri Dizinini Kopyalama<\/h3>\n<p>Mevcut veri dizinini yeni konuma kopyalaman\u0131n en g\u00fcvenli ve \u00f6nerilen yolu <code>rsync<\/code> kullanmakt\u0131r. <code>rsync<\/code>, dosyalar\u0131n sahipliklerini, izinlerini, zaman damgalar\u0131n\u0131 ve di\u011fer \u00f6zelliklerini koruyarak kopyalama yapar. Ayr\u0131ca, b\u00fcy\u00fck dizinlerde kesintiye u\u011framas\u0131 durumunda kald\u0131\u011f\u0131 yerden devam etme yetene\u011fi sunar.<\/p>\n<p>\u00d6ncelikle mevcut veri dizininizi tekrar kontrol edin (\u00f6rn: <code>\/var\/lib\/postgresql\/12\/main<\/code>).<\/p>\n<pre><code class=\"language-bash\"># Mevcut veri dizini: \/var\/lib\/postgresql\/12\/main oldu\u011funu varsayal\u0131m\n<h2>Yeni veri dizini: \/mnt\/new_pg_data<\/h2>\n\nsudo rsync -avh \/var\/lib\/postgresql\/12\/main\/ \/mnt\/new_pg_data\/<\/code><\/pre>\n<p>Bu komuttaki bayraklar\u0131n anlamlar\u0131:<br \/>\n*   <code>-a<\/code>: Ar\u015fiv modu; izinleri, sahiplikleri, zaman damgalar\u0131n\u0131 vb. korur. Rek\u00fcrsif kopyalamay\u0131 da i\u00e7erir.<br \/>\n*   <code>-v<\/code>: Ayr\u0131nt\u0131l\u0131 \u00e7\u0131kt\u0131; kopyalanan dosyalar\u0131 g\u00f6sterir.<br \/>\n*   <code>-h<\/code>: \u0130nsan taraf\u0131ndan okunabilir format; dosya boyutlar\u0131n\u0131 okunabilir bir \u015fekilde g\u00f6sterir.<br \/>\n*   Son <code>\/<\/code> i\u015fareti \u00f6nemlidir: <code>\/var\/lib\/postgresql\/12\/main\/<\/code> ile <code>main<\/code> dizininin i\u00e7eri\u011fini kopyalarken, <code>\/var\/lib\/postgresql\/12\/main<\/code> (sonunda <code>\/<\/code> olmadan) <code>main<\/code> dizininin kendisini kopyalar. Biz i\u00e7eri\u011fi yeni dizinin do\u011frudan alt\u0131na kopyalamak istedi\u011fimiz i\u00e7in ilkini kullan\u0131r\u0131z.<\/p>\n<p><strong>Alternatif (<code>cp<\/code> ile):<\/strong> <code>cp<\/code> komutu da kullan\u0131labilir, ancak <code>rsync<\/code> kadar esnek veya g\u00fcvenli de\u011fildir, \u00f6zellikle b\u00fcy\u00fck dizinler i\u00e7in. E\u011fer <code>cp<\/code> kullanacaksan\u0131z, <code>-a<\/code> bayra\u011f\u0131n\u0131 kullanarak ar\u015fiv modunda kopyalama yapmal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo cp -a \/var\/lib\/postgresql\/12\/main\/ \/mnt\/new_pg_data\/<\/code><\/pre>\n<p>Kopyalama i\u015flemi tamamland\u0131ktan sonra, yeni dizinin i\u00e7eri\u011finin orijinal dizinle ayn\u0131 oldu\u011fundan emin olmak i\u00e7in kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ls -l \/mnt\/new_pg_data\/<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131, <code>PG_VERSION<\/code>, <code>base<\/code>, <code>global<\/code>, <code>pg_wal<\/code> gibi PostgreSQL veri dizini bile\u015fenlerini g\u00f6stermelidir.<\/p>\n<h3>4. PostgreSQL Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme<\/h3>\n<p>PostgreSQL&#8217;in yeni veri dizinini tan\u0131mas\u0131 i\u00e7in yap\u0131land\u0131rma dosyalar\u0131n\u0131 g\u00fcncellemeniz gerekir. Ubuntu&#8217;da bu genellikle iki \u015fekilde yap\u0131labilir: <code>postgresql.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veya <code>systemd<\/code> servis birimi dosyas\u0131n\u0131 g\u00fcncelleyerek. En yayg\u0131n ve \u00f6nerilen y\u00f6ntem <code>postgresql.conf<\/code> dosyas\u0131n\u0131 g\u00fcncellemektir.<\/p>\n<h4><code>postgresql.conf<\/code> Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p>PostgreSQL&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 olan <code>postgresql.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekmektedir. Ubuntu&#8217;da bu dosya genellikle <code>\/etc\/postgresql\/<s\u00fcr\u00fcm>\/main\/postgresql.conf<\/code> yolunda bulunur.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/postgresql\/12\/main\/postgresql.conf<\/code><\/pre>\n<p>Dosya i\u00e7inde <code>data_directory<\/code> parametresini bulun. E\u011fer yorum sat\u0131r\u0131 (ba\u015f\u0131nda <code>#<\/code> i\u015fareti) ise, yorumu kald\u0131r\u0131n ve yeni veri dizini yolunu belirtin. E\u011fer zaten bir yol belirtilmi\u015fse, bunu yeni yolla de\u011fi\u015ftirin.<\/p>\n<pre><code class=\"language-ini\">#------------------------------------------------------------------------------\n<h2>FILE LOCATIONS<\/h2>\n#------------------------------------------------------------------------------\n\n<h2>The default values of these variables are driven from the -D command-line<\/h2>\n<h2>option or PGDATA environment variable, and are not usually changed here.<\/h2>\n#data_directory = 'data'             # use data in another directory\n                                     # (change requires restart)\n#hba_file = 'pg_hba.conf'            # host-based authentication file\n#ident_file = 'pg_ident.conf'        # user name mapping file\n\n<h2>Yeni veri dizini yolunuzu buraya ekleyin veya g\u00fcncelleyin<\/h2>\ndata_directory = '\/mnt\/new_pg_data'<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedin ve d\u00fczenleyiciden \u00e7\u0131k\u0131n (Nano i\u00e7in <code>Ctrl+X<\/code>, <code>Y<\/code>, Enter).<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> Ubuntu&#8217;daki PostgreSQL paketleri genellikle <code>data_directory<\/code> ayar\u0131n\u0131 <code>postgresql.conf<\/code> i\u00e7inde yapmaz, bunun yerine <code>systemd<\/code> servis birimi dosyas\u0131nda veya ba\u015flang\u0131\u00e7 betiklerinde <code>PGDATA<\/code> ortam de\u011fi\u015fkenini kullanarak belirler. Bu nedenle, <code>postgresql.conf<\/code> dosyas\u0131nda bu ayar\u0131 bulamayabilir veya yorum sat\u0131r\u0131 olarak b\u0131rak\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz. E\u011fer <code>postgresql.conf<\/code> dosyas\u0131nda <code>data_directory<\/code> ayar\u0131 yoksa veya yorum sat\u0131r\u0131 olarak b\u0131rak\u0131lm\u0131\u015fsa, bu durumda <code>systemd<\/code> servis birimi dosyas\u0131n\u0131 g\u00fcncellemeniz gerekecektir. Ancak, bu makalede her iki senaryoyu da ele alaca\u011f\u0131z. Genellikle <code>postgresql.conf<\/code> i\u00e7indeki ayar, <code>systemd<\/code> ayar\u0131n\u0131 ge\u00e7ersiz k\u0131lar, bu y\u00fczden burada ayarlamak en temiz yoldur.<\/p>\n<h4><code>systemd<\/code> Servis Dosyas\u0131n\u0131 G\u00fcncelleme (Gerekirse)<\/h4>\n<p>E\u011fer <code>postgresql.conf<\/code> dosyas\u0131ndaki <code>data_directory<\/code> ayar\u0131 i\u015fe yaramazsa veya PostgreSQL servisi yine eski konumu kullanmaya \u00e7al\u0131\u015f\u0131rsa, <code>systemd<\/code> servis birimi dosyas\u0131n\u0131 g\u00fcncellemeniz gerekebilir. Bu dosya genellikle <code>\/lib\/systemd\/system\/postgresql@.service<\/code> veya <code>\/etc\/systemd\/system\/postgresql@.service<\/code> konumunda bulunur.<\/p>\n<p>\u00d6ncelikle do\u011fru servis birimi dosyas\u0131n\u0131 bulal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl edit --full postgresql@12-main.service<\/code><\/pre>\n<p>(Buradaki <code>12-main<\/code> k\u0131sm\u0131 sizin PostgreSQL s\u00fcr\u00fcm\u00fcn\u00fcze ve k\u00fcme ad\u0131n\u0131za g\u00f6re de\u011fi\u015febilir. \u00d6rne\u011fin <code>15-main<\/code> olabilir.)<\/p>\n<p>Bu komut, varsay\u0131lan d\u00fczenleyici ile servis dosyas\u0131n\u0131 a\u00e7acakt\u0131r. <code>[Service]<\/code> b\u00f6l\u00fcm\u00fcnde <code>Environment=PGDATA=\/var\/lib\/postgresql\/12\/main<\/code> gibi bir sat\u0131r aray\u0131n. Bu sat\u0131r\u0131 yeni veri dizini yolunuzla g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-ini\">[Service]\n<h2>... di\u011fer ayarlar ...<\/h2>\nEnvironment=PGDATA=\/mnt\/new_pg_data\n<h2>... di\u011fer ayarlar ...<\/code><\/pre>\n<\/h2>\n<p>De\u011fi\u015fiklikleri kaydedin ve \u00e7\u0131k\u0131n.<\/p>\n<p><strong>\u00d6nemli:<\/strong> <code>systemd<\/code> servis birimi dosyas\u0131n\u0131 de\u011fi\u015ftirdikten sonra, <code>systemd<\/code> yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fcklemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload<\/code><\/pre>\n<h3>5. PostgreSQL Servisini Ba\u015flatma<\/h3>\n<p>Yap\u0131land\u0131rma g\u00fcncellemelerini tamamlad\u0131ktan sonra, PostgreSQL servisini ba\u015flatabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start postgresql<\/code><\/pre>\n<p>E\u011fer her \u015fey do\u011fru yap\u0131ld\u0131ysa, servis sorunsuz bir \u015fekilde ba\u015flamal\u0131d\u0131r.<\/p>\n<h3>6. Ta\u015f\u0131ma \u0130\u015flemini Do\u011frulama<\/h3>\n<p>Servis ba\u015flad\u0131ktan sonra, veri dizininin ba\u015far\u0131yla ta\u015f\u0131nd\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in birka\u00e7 kontrol yapman\u0131z gerekir.<\/p>\n<h4>Servis Durumunu Kontrol Etme<\/h4>\n<p>Servisin aktif ve \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status postgresql<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Active: active (running)&#8221; ifadesini g\u00f6rmelisiniz. Ayr\u0131ca herhangi bir hata mesaj\u0131 olup olmad\u0131\u011f\u0131n\u0131 da kontrol edin.<\/p>\n<h4>Veritaban\u0131na Ba\u011flanma ve Verileri Kontrol Etme<\/h4>\n<p><code>psql<\/code> ile veritaban\u0131na ba\u011flanarak ve baz\u0131 sorgular \u00e7al\u0131\u015ft\u0131rarak verilerin eri\u015filebilir oldu\u011funu do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo -u postgres psql<\/code><\/pre>\n<p>Ba\u011fland\u0131ktan sonra:<\/p>\n<pre><code class=\"language-sql\">\\l<\/code><\/pre>\n<p>Bu komut, mevcut veritabanlar\u0131n\u0131 listeleyecektir. Veritabanlar\u0131n\u0131z\u0131n ve tablolar\u0131n\u0131z\u0131n yerinde oldu\u011fundan emin olmak i\u00e7in \u00f6zel veritabanlar\u0131n\u0131za ba\u011flan\u0131p sorgular \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-sql\">\\c your_database_name;\n\\dt;\nSELECT * FROM your_table_name LIMIT 10;<\/code><\/pre>\n<h4><code>SHOW data_directory;<\/code> Komutunu Kullanma<\/h4>\n<p>PostgreSQL&#8217;in hangi veri dizinini kulland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>psql<\/code> i\u00e7inde tekrar <code>SHOW data_directory;<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo -u postgres psql -c \"SHOW data_directory;\"<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131 yeni veri dizini yolunuzu (<code>\/mnt\/new_pg_data<\/code>) g\u00f6stermelidir.<\/p>\n<p>T\u00fcm bu kontroller ba\u015far\u0131l\u0131 olursa, veri dizini ta\u015f\u0131ma i\u015flemi ba\u015far\u0131yla tamamlanm\u0131\u015f demektir.<\/p>\n<h2>Geri Alma (Rollback) Stratejisi<\/h2>\n<p>Herhangi bir sorunla kar\u015f\u0131la\u015fman\u0131z durumunda geri d\u00f6nmek i\u00e7in bir plana sahip olmak \u00f6nemlidir.<\/p>\n<p>1.  <strong>PostgreSQL Servisini Durdurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop postgresql<\/code><\/pre>\n<p>2.  <strong>Yap\u0131land\u0131rmay\u0131 Geri Alma:<\/strong><br \/>\n    *   <code>postgresql.conf<\/code> dosyas\u0131ndaki <code>data_directory<\/code> ayar\u0131n\u0131 orijinal haline getirin (eski yol veya yorum sat\u0131r\u0131).<br \/>\n    *   E\u011fer <code>systemd<\/code> servis dosyas\u0131n\u0131 de\u011fi\u015ftirdiyseniz, <code>PGDATA<\/code> ortam de\u011fi\u015fkenini eski yola geri d\u00f6nd\u00fcr\u00fcn ve <code>sudo systemctl daemon-reload<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n3.  <strong>Orijinal Veri Dizinini Geri Y\u00fckleme:<\/strong><br \/>\n    *   Ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce orijinal veri dizinini silmediyseniz (ki silmemelisiniz!), servis otomatik olarak eski dizini kullanacakt\u0131r.<br \/>\n    *   E\u011fer orijinal dizini sildiyseniz veya \u00fczerine yazd\u0131ysan\u0131z, ta\u015f\u0131ma \u00f6ncesi ald\u0131\u011f\u0131n\u0131z tam yedeklemeyi geri y\u00fcklemeniz gerekecektir. Bu nedenle, ta\u015f\u0131ma \u00f6ncesi yedekleme kritik \u00f6neme sahiptir.<br \/>\n4.  <strong>PostgreSQL Servisini Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start postgresql<\/code><\/pre>\n<p>5.  <strong>Do\u011frulama:<\/strong> Servisin ba\u015far\u0131yla ba\u015flad\u0131\u011f\u0131n\u0131 ve verilerin eri\u015filebilir oldu\u011funu kontrol edin.<\/p>\n<p>Ta\u015f\u0131ma i\u015flemi ba\u015far\u0131yla tamamland\u0131ktan ve sistemin kararl\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra, eski veri dizinini (<code>\/var\/lib\/postgresql\/12\/main<\/code> gibi) g\u00fcvenli bir \u015fekilde silebilirsiniz. Ancak, bir s\u00fcre daha yedek olarak tutmak isteyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo rm -rf \/var\/lib\/postgresql\/12\/main_old # \"_old\" eklemek g\u00fcvenli bir yakla\u015f\u0131md\u0131r<\/code><\/pre>\n<h2>\u00d6nemli Notlar ve \u0130pu\u00e7lar\u0131<\/h2>\n<h3>Yedekleme \u00d6nemi<\/h3>\n<p>Bu rehberde defalarca vurguland\u0131\u011f\u0131 gibi, herhangi bir veritaban\u0131 ta\u015f\u0131ma veya yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi i\u015fleminden \u00f6nce tam bir yedekleme almak hayati \u00f6nem ta\u015f\u0131r. Yedekleme, olas\u0131 hatalara veya veri bozulmalar\u0131na kar\u015f\u0131 en iyi sigortan\u0131zd\u0131r.<\/p>\n<h3>Disk Alan\u0131<\/h3>\n<p>Yeni veri dizini i\u00e7in yeterli disk alan\u0131na sahip oldu\u011funuzdan emin olun. Kopyalama i\u015flemi s\u0131ras\u0131nda mevcut dizinin boyutuna ek olarak ge\u00e7ici alan da gerekebilir. Ayr\u0131ca, gelecekteki veritaban\u0131 b\u00fcy\u00fcmesini de g\u00f6z \u00f6n\u00fcnde bulundurarak yeterli kapasite ay\u0131r\u0131n.<\/p>\n<h3>Performans Etkisi<\/h3>\n<p>Veri dizinini farkl\u0131 bir disk b\u00f6l\u00fcm\u00fcne ta\u015f\u0131mak, disk I\/O performans\u0131n\u0131 do\u011frudan etkiler. Daha h\u0131zl\u0131 bir diske (\u00f6rne\u011fin SSD) ge\u00e7i\u015f yapmak performans\u0131 art\u0131r\u0131rken, yava\u015f bir diske ge\u00e7i\u015f yapmak performans\u0131 d\u00fc\u015f\u00fcrebilir. Yeni konumun performans \u00f6zelliklerini g\u00f6z \u00f6n\u00fcnde bulundurun.<\/p>\n<h3>G\u00fcvenlik<\/h3>\n<p>Yeni veri dizini konumunun dosya izinleri ve sahiplikleri do\u011fru ayarlanmal\u0131d\u0131r. Yanl\u0131\u015f izinler, veritaban\u0131n\u0131n ba\u015flat\u0131lamamas\u0131na veya g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir. <code>0700<\/code> veya <code>0750<\/code> izinleri ve <code>postgres:postgres<\/code> sahipli\u011fi standart uygulamad\u0131r.<\/p>\n<h3>Di\u011fer PostgreSQL S\u00fcr\u00fcmleri ve Da\u011f\u0131t\u0131mlar<\/h3>\n<p>Bu rehber Ubuntu 20.04 ve tipik PostgreSQL kurulumlar\u0131 i\u00e7in yaz\u0131lm\u0131\u015ft\u0131r. Di\u011fer Linux da\u011f\u0131t\u0131mlar\u0131nda (\u00f6rne\u011fin CentOS, Fedora) veya farkl\u0131 PostgreSQL s\u00fcr\u00fcmlerinde (\u00f6rn. 9.x, 10.x), varsay\u0131lan dizin yollar\u0131 ve <code>systemd<\/code> servis adlar\u0131 farkl\u0131l\u0131k g\u00f6sterebilir. Ancak temel ad\u0131mlar (durdurma, kopyalama, yap\u0131land\u0131rma, ba\u015flatma, do\u011frulama) genellikle ayn\u0131d\u0131r.<\/p>\n<h3>Sembolik Ba\u011flant\u0131lar (Symbolic Links)<\/h3>\n<p>Baz\u0131 durumlarda, <code>data_directory<\/code> ayar\u0131n\u0131 de\u011fi\u015ftirmek yerine eski veri dizini konumundan yeni konuma bir sembolik ba\u011flant\u0131 olu\u015fturmak da bir se\u00e7enek olabilir. Ancak, bu y\u00f6ntem genellikle <code>data_directory<\/code> ayar\u0131n\u0131 do\u011frudan de\u011fi\u015ftirmekten daha az tercih edilir \u00e7\u00fcnk\u00fc yap\u0131land\u0131rma karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 art\u0131rabilir ve baz\u0131 durumlarda beklenmedik davran\u0131\u015flara yol a\u00e7abilir. <code>postgresql.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlemek veya <code>systemd<\/code> birim dosyas\u0131ndaki <code>PGDATA<\/code> ortam de\u011fi\u015fkenini ayarlamak daha temiz ve anla\u015f\u0131l\u0131r bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>PostgreSQL veri dizinini Ubuntu 20.04&#8217;te yeni bir konuma ta\u015f\u0131mak, do\u011fru ad\u0131mlar izlendi\u011finde ve dikkatli bir \u015fekilde yap\u0131ld\u0131\u011f\u0131nda g\u00fcvenli ve sorunsuz bir i\u015flemdir. Bu rehberde a\u00e7\u0131klanan ad\u0131mlar\u0131 takip ederek, disk alan\u0131 y\u00f6netimi, performans iyile\u015ftirmeleri veya di\u011fer sistem gereksinimleri nedeniyle veri dizininizi ba\u015far\u0131yla ta\u015f\u0131yabilirsiniz.<\/p>\n<p>Unutulmamas\u0131 gereken en \u00f6nemli noktalar, i\u015flemi ba\u015flatmadan \u00f6nce kapsaml\u0131 bir yedekleme yapmak, PostgreSQL servisini durdurmak, yeni dizin i\u00e7in do\u011fru izinleri ayarlamak ve yap\u0131land\u0131rma dosyalar\u0131n\u0131 (\u00f6zellikle <code>postgresql.conf<\/code> veya <code>systemd<\/code> birim dosyas\u0131) dikkatlice g\u00fcncellemektir. Her ad\u0131mda do\u011frulama yaparak ve olas\u0131 sorunlara kar\u015f\u0131 bir geri alma stratejisine sahip olarak, veritaban\u0131 ta\u015f\u0131ma i\u015fleminizi g\u00fcvenle tamamlayabilirsiniz. Bu sayede, PostgreSQL kurulumunuzu yeni depolama altyap\u0131n\u0131zla entegre ederek daha verimli ve \u00f6l\u00e7eklenebilir bir veritaban\u0131 ortam\u0131na sahip olabilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\nGiri\u015f\nPostgreSQL, a\u00e7\u0131k kaynakl\u0131 ve olduk\u00e7a g\u00fc\u00e7l\u00fc bir ili\u015fkisel ver","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-37066","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 Veri Dizinini Ubuntu 20.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - 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\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL Veri Dizinini Ubuntu 20.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\" \/>\n<meta property=\"og:description\" content=\"PostgreSQL Veri Dizinini Ubuntu 20.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi Giri\u015f PostgreSQL, a\u00e7\u0131k kaynakl\u0131 ve olduk\u00e7a g\u00fc\u00e7l\u00fc bir ili\u015fkisel ver\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-26T21:40:39+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=\"15 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\",\"datePublished\":\"2025-12-26T21:40:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\"},\"wordCount\":2596,\"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\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\",\"name\":\"PostgreSQL Veri Dizinini Ubuntu 20.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-26T21:40:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\"}]},{\"@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 Veri Dizinini Ubuntu 20.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - 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\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL Veri Dizinini Ubuntu 20.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi","og_description":"PostgreSQL Veri Dizinini Ubuntu 20.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi Giri\u015f PostgreSQL, a\u00e7\u0131k kaynakl\u0131 ve olduk\u00e7a g\u00fc\u00e7l\u00fc bir ili\u015fkisel ver","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-26T21:40:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"15 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi","datePublished":"2025-12-26T21:40:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/"},"wordCount":2596,"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\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/","name":"PostgreSQL Veri Dizinini Ubuntu 20.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-26T21:40:39+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-veri-dizinini-ubuntu-20-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL Veri Dizinini Ubuntu 20.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi"}]},{"@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\/37066","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=37066"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37066\/revisions"}],"predecessor-version":[{"id":37067,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37066\/revisions\/37067"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}