{"id":41315,"date":"2026-04-01T14:02:08","date_gmt":"2026-04-01T11:02:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/"},"modified":"2026-04-01T14:02:08","modified_gmt":"2026-04-01T11:02:08","slug":"neden-postgresql-veri-dizini-tasimak-isteyesiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/","title":{"rendered":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?"},"content":{"rendered":"<p><title>Ubuntu&#8217;da PostgreSQL Veri Dizini Ta\u015f\u0131ma: Kapsaml\u0131 Rehber<\/title><br \/>\n<body><\/p>\n<h2>Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?<\/h2>\n<p>Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir. Bu i\u015flem genellikle disk alan\u0131 yetersizli\u011fi, performans iyile\u015ftirmesi veya yedekleme stratejilerinin optimize edilmesi gibi nedenlerle g\u00fcndeme gelir. Mevcut disk b\u00f6l\u00fcm\u00fcn\u00fcz doldu\u011funda veya veritaban\u0131 performans\u0131n\u0131 art\u0131rmak amac\u0131yla daha h\u0131zl\u0131 bir depolama birimine ge\u00e7i\u015f yapmak istedi\u011finizde, veri dizinini g\u00fcvenli bir \u015fekilde yeni bir konuma ta\u015f\u0131mak ka\u00e7\u0131n\u0131lmaz hale gelebilir. Bu kapsaml\u0131 rehber, PostgreSQL veri dizinini Ubuntu \u00fczerinde ad\u0131m ad\u0131m nas\u0131l ta\u015f\u0131yaca\u011f\u0131n\u0131z\u0131, kar\u015f\u0131la\u015fabilece\u011finiz potansiyel sorunlar\u0131 nas\u0131l a\u015faca\u011f\u0131n\u0131z\u0131 ve en iyi uygulamalar\u0131 derinlemesine ele alacakt\u0131r.<\/p>\n<p>Veritaban\u0131 sunucular\u0131nda, \u00f6zellikle y\u00fcksek trafikli uygulamalar i\u00e7in, disk I\/O performans\u0131 kritik bir darbo\u011faz olabilir. \u00d6rne\u011fin, bir e-ticaret platformu d\u00fc\u015f\u00fcn\u00fcn; artan kullan\u0131c\u0131 say\u0131s\u0131 ve i\u015flem hacmiyle birlikte veritaban\u0131n\u0131n s\u00fcrekli olarak diske yazma ve okuma i\u015flemleri yapmas\u0131, mevcut disk donan\u0131m\u0131n\u0131n s\u0131n\u0131rlar\u0131n\u0131 zorlayabilir. Bu durumda, veri dizinini daha h\u0131zl\u0131 bir SSD veya NVMe depolama birimine ta\u015f\u0131mak, sorgu s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131saltabilir ve uygulaman\u0131n genel yan\u0131t s\u00fcresini iyile\u015ftirebilir. Ayr\u0131ca, baz\u0131 durumlarda veri dizinini ayr\u0131 bir depolama birimine ta\u015f\u0131mak, yedekleme ve kurtarma i\u015flemlerini daha esnek hale getirebilir veya g\u00fcvenlik gereksinimlerini kar\u015f\u0131lamak i\u00e7in verilerin belirli bir fiziksel konumda saklanmas\u0131n\u0131 sa\u011flayabilir. Bu t\u00fcr bir ta\u015f\u0131ma i\u015flemi, planlama ve dikkatli uygulama gerektirse de, uzun vadede sistemin stabilitesi ve performans\u0131 i\u00e7in b\u00fcy\u00fck faydalar sunar. Bu rehberde, bu s\u00fcrecin her a\u015famas\u0131n\u0131 detayl\u0131ca ele alacak, hem yeni ba\u015flayanlar hem de deneyimli sistem y\u00f6neticileri i\u00e7in de\u011ferli bilgiler sunaca\u011f\u0131z.<\/p>\n<h2>PostgreSQL Veri Dizini Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>PostgreSQL veri dizini, k\u0131saca <code class=\"language-\">PGDATA<\/code> olarak bilinen, bir PostgreSQL veritaban\u0131 k\u00fcmesinin t\u00fcm verilerini ve yap\u0131land\u0131rma dosyalar\u0131n\u0131 bar\u0131nd\u0131ran ana dizindir. Ubuntu sistemlerinde bu dizin genellikle <code class=\"language-\">\/var\/lib\/postgresql\/&lt;s\u00fcr\u00fcm&gt;\/main<\/code> gibi bir yolda bulunur (\u00f6rne\u011fin, <code class=\"language-\">\/var\/lib\/postgresql\/14\/main<\/code>). Bu dizinin i\u00e7inde, kullan\u0131c\u0131 veritabanlar\u0131, sistem kataloglar\u0131, i\u015flem g\u00fcnl\u00fckleri (WAL &#8211; Write-Ahead Log) dosyalar\u0131, yap\u0131land\u0131rma dosyalar\u0131 (<code class=\"language-\">postgresql.conf<\/code>, <code class=\"language-\">pg_hba.conf<\/code>, <code class=\"language-\">pg_ident.conf<\/code>) ve di\u011fer \u00f6nemli veritaban\u0131 nesneleri yer al\u0131r. K\u0131sacas\u0131, <code class=\"language-\">PGDATA<\/code> dizini, PostgreSQL veritaban\u0131n\u0131z\u0131n kalbidir ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn korunmas\u0131, veritaban\u0131n\u0131n sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015fmas\u0131 i\u00e7in hayati \u00f6neme sahiptir. Bu dizin olmadan PostgreSQL sunucusu ba\u015flayamaz veya mevcut verilerine eri\u015femez.<\/p>\n<p>Bu dizinin \u00f6nemi, sadece verilerin kendisini bar\u0131nd\u0131rmas\u0131ndan \u00f6te, performans, g\u00fcvenlik ve kurtarma senaryolar\u0131nda da kendini g\u00f6sterir. \u00d6rne\u011fin, veri dizininin bulundu\u011fu disk biriminin h\u0131z\u0131, veritaban\u0131 sorgular\u0131n\u0131n ve yazma i\u015flemlerinin do\u011frudan performans\u0131n\u0131 etkiler. Yava\u015f bir disk, y\u00fcksek I\/O gerektiren i\u015flemlerde darbo\u011faza neden olarak t\u00fcm uygulaman\u0131n yava\u015flamas\u0131na yol a\u00e7abilir. Bu nedenle, <code class=\"language-\">PGDATA<\/code>&#8216;y\u0131 daha h\u0131zl\u0131 bir depolama birimine ta\u015f\u0131mak, genellikle ciddi performans art\u0131\u015flar\u0131 sa\u011flar. Ayr\u0131ca, veri dizininin do\u011fru dosya izinlerine ve sahipli\u011fine sahip olmas\u0131, veritaban\u0131n\u0131n g\u00fcvenlik a\u00e7\u0131klar\u0131ndan korunmas\u0131 i\u00e7in esast\u0131r. Yanl\u0131\u015f izinler, yetkisiz eri\u015fime veya veritaban\u0131n\u0131n ba\u015flat\u0131lamamas\u0131na neden olabilir. Ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda bu detaylara dikkat etmek, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korumak ve olas\u0131 veri kayb\u0131 riskini minimize etmek i\u00e7in kritik \u00f6neme sahiptir. PostgreSQL&#8217;in sorunsuz \u00e7al\u0131\u015fmas\u0131 ve verilerinizin g\u00fcvende olmas\u0131 i\u00e7in <code class=\"language-\">PGDATA<\/code> dizininin y\u00f6netimi ve bak\u0131m\u0131, her sistem y\u00f6neticisinin \u00f6ncelikli g\u00f6revlerinden biridir.<\/p>\n<h2>Haz\u0131rl\u0131k A\u015famas\u0131: Ta\u015f\u0131madan \u00d6nce Yap\u0131lmas\u0131 Gerekenler Nelerdir?<\/h2>\n<p>PostgreSQL veri dizini ta\u015f\u0131ma i\u015flemi, dikkatli bir planlama ve \u00f6n haz\u0131rl\u0131k gerektiren kritik bir operasyondur. Bu a\u015famada yap\u0131lacak yanl\u0131\u015flar, veri kayb\u0131na veya uzun s\u00fcreli kesintilere yol a\u00e7abilir. Bu nedenle, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 titizlikle uygulaman\u0131z b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h3>Veritaban\u0131 Yedeklemesi Almak<\/h3>\n<p>Herhangi bir b\u00fcy\u00fck veritaban\u0131 operasyonundan \u00f6nce, mutlaka tam bir yedekleme almal\u0131s\u0131n\u0131z. Bu, olas\u0131 bir aksilik durumunda verilerinizi kurtarabilmenizi sa\u011flayacak tek g\u00fcvencenizdir. PostgreSQL i\u00e7in yedekleme yapman\u0131n birka\u00e7 yolu vard\u0131r:<\/p>\n<ul>\n<li><strong>Mant\u0131ksal Yedekleme (<code class=\"language-\">pg_dumpall<\/code>):<\/strong> Bu y\u00f6ntem, t\u00fcm veritaban\u0131 k\u00fcmelerinizin mant\u0131ksal bir yede\u011fini al\u0131r. En g\u00fcvenli ve esnek y\u00f6ntemlerden biridir.<\/li>\n<\/ul>\n<pre><code>\n    sudo -u postgres pg_dumpall > \/yedekler\/full_backup_$(date +%Y%m%d%H%M%S).sql\n  <\/code><\/pre>\n<ul>\n<li><strong>Dosya Sistemi Yedeklemesi (Kopyalama):<\/strong> PostgreSQL hizmetini durdurduktan sonra, mevcut veri dizininin tamam\u0131n\u0131 yeni bir konuma kopyalamakt\u0131r. Bu, h\u0131zl\u0131 bir yedekleme y\u00f6ntemi olsa da, veritaban\u0131 \u00e7al\u0131\u015f\u0131rken yap\u0131lmamal\u0131d\u0131r.<\/li>\n<\/ul>\n<pre><code>\n    sudo rsync -av \/var\/lib\/postgresql\/14\/main \/yedekler\/pgdata_backup_$(date +%Y%m%d%H%M%S)\n  <\/code><\/pre>\n<p>Yedekleme dosyas\u0131n\u0131 farkl\u0131 bir disk b\u00f6l\u00fcm\u00fcnde veya uzak bir depolama alan\u0131nda saklad\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>Disk Alan\u0131 Kontrol\u00fc ve Hedef Dizin Olu\u015fturma<\/h3>\n<p>Yeni veri dizininizi bar\u0131nd\u0131racak hedef disk b\u00f6l\u00fcm\u00fcnde yeterli alan oldu\u011fundan emin olun. Mevcut veri dizininizin boyutunu \u00f6\u011frenmek i\u00e7in <code class=\"language-\">du -sh<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>\n    sudo du -sh \/var\/lib\/postgresql\/14\/main\n  <\/code><\/pre>\n<p>Yeni disk b\u00f6l\u00fcm\u00fcn\u00fczde uygun bir dizin yap\u0131s\u0131 olu\u015fturun. \u00d6rne\u011fin, <code class=\"language-\">\/mnt\/yeni_disk\/postgresql\/data<\/code> gibi bir yol belirleyebilirsiniz. Bu dizini olu\u015ftururken <code class=\"language-\">mkdir<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code>\n    sudo mkdir -p \/mnt\/yeni_disk\/postgresql\/data\n  <\/code><\/pre>\n<p>Vaka Analizi: Bir finansal teknoloji \u015firketinin analitik veritaban\u0131, mevcut sunucunun root diskinde yer kalmamas\u0131 nedeniyle s\u00fcrekli performans sorunlar\u0131 ya\u015f\u0131yordu. Yeni bir NVMe SSD eklenerek <code class=\"language-\">\/mnt\/nvme_data<\/code> dizini olu\u015fturuldu. Bu sayede, hem disk alan\u0131 geni\u015fletildi hem de I\/O performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131ld\u0131. Haz\u0131rl\u0131k a\u015famas\u0131nda, mevcut veritaban\u0131n\u0131n 2 TB boyutunda oldu\u011fu tespit edildi ve <code class=\"language-\">pg_dumpall<\/code> ile mant\u0131ksal yedekleme al\u0131nmas\u0131n\u0131n \u00e7ok uzun s\u00fcrece\u011fi anla\u015f\u0131ld\u0131. Bu nedenle, dosya sistemi kopyalama y\u00f6ntemi tercih edildi ve ek olarak anl\u0131k bir disk g\u00f6r\u00fcnt\u00fcs\u00fc (snapshot) al\u0131narak ek bir g\u00fcvenlik katman\u0131 olu\u015fturuldu. Bu sayede, ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda olas\u0131 bir hatada geri d\u00f6n\u00fc\u015f noktas\u0131 garanti alt\u0131na al\u0131nm\u0131\u015f oldu.<\/p>\n<h3>PostgreSQL Hizmetini Durdurma<\/h3>\n<p>Veri dizinini kopyalamadan veya ta\u015f\u0131madan \u00f6nce PostgreSQL hizmetini tamamen durdurmal\u0131s\u0131n\u0131z. Bu, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak ve kopyalama s\u0131ras\u0131nda dosya kilitlenmelerini \u00f6nlemek i\u00e7in kritik bir ad\u0131md\u0131r:<\/p>\n<pre><code>\n    sudo systemctl stop postgresql\n    sudo systemctl status postgresql\n  <\/code><\/pre>\n<p><code>status<\/code> komutu ile hizmetin ger\u00e7ekten durduruldu\u011funu do\u011frulay\u0131n. Hizmetin durdurulmas\u0131, veritaban\u0131na olan t\u00fcm ba\u011flant\u0131lar\u0131 kesecek ve ge\u00e7ici bir kesinti s\u00fcresine neden olacakt\u0131r. Bu nedenle, bu i\u015flemi genellikle d\u00fc\u015f\u00fck trafikli saatlerde veya planl\u0131 bak\u0131m pencerelerinde yapman\u0131z \u00f6nerilir.<\/p>\n<h2>PostgreSQL Veri Dizini Ad\u0131m Ad\u0131m Nas\u0131l Ta\u015f\u0131n\u0131r?<\/h2>\n<p>Haz\u0131rl\u0131k ad\u0131mlar\u0131n\u0131 tamamlad\u0131ktan sonra, PostgreSQL veri dizinini yeni konumuna ta\u015f\u0131maya ba\u015flayabiliriz. Bu s\u00fcre\u00e7, dikkatli bir \u015fekilde uyguland\u0131\u011f\u0131nda olduk\u00e7a sorunsuz ilerleyecektir.<\/p>\n<h3>Ad\u0131m 1: PostgreSQL Hizmetini Durdurma<\/h3>\n<p>Yukar\u0131da da belirtildi\u011fi gibi, ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce PostgreSQL hizmetinin tamamen durdurulmas\u0131 \u015fartt\u0131r. Bu, veri tutars\u0131zl\u0131klar\u0131n\u0131 ve olas\u0131 bozulmalar\u0131 \u00f6nler. Hizmeti durdurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>\n    sudo systemctl stop postgresql\n  <\/code><\/pre>\n<p>Hizmetin ba\u015far\u0131yla durduruldu\u011funu do\u011frulamak i\u00e7in durumunu kontrol edin:<\/p>\n<pre><code>\n    sudo systemctl status postgresql\n  <\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Active: inactive (dead)&#8221; ifadesini g\u00f6rmelisiniz. Bu, hizmetin kapal\u0131 oldu\u011fu anlam\u0131na gelir. E\u011fer hizmet hala aktif g\u00f6r\u00fcn\u00fcyorsa, sorun gidermeli ve durduruldu\u011fundan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<h3>Ad\u0131m 2: Mevcut Veri Dizininin Konumunu Bulma<\/h3>\n<p>PostgreSQL&#8217;in veri dizininin tam konumunu bilmek \u00f6nemlidir. Varsay\u0131lan olarak <code class=\"language-\">\/var\/lib\/postgresql\/&lt;s\u00fcr\u00fcm&gt;\/main<\/code> olsa da, bu durum sunucu yap\u0131land\u0131rmas\u0131na g\u00f6re de\u011fi\u015febilir. Mevcut <code class=\"language-\">data_directory<\/code> yolunu \u00f6\u011frenmek i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\n    sudo -u postgres psql -c \"SHOW data_directory;\"\n  <\/code><\/pre>\n<p>Bu komut, PostgreSQL&#8217;in kendi i\u00e7inden mevcut veri dizini yolunu d\u00f6nd\u00fcrecektir. Alternatif olarak, <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131n\u0131 da kontrol edebilirsiniz:<\/p>\n<pre><code>\n    sudo grep \"data_directory\" \/etc\/postgresql\/&lt;s\u00fcr\u00fcm&gt;\/main\/postgresql.conf\n  <\/code><\/pre>\n<p>Bu komutlardan ald\u0131\u011f\u0131n\u0131z yolu, kopyalama i\u015flemi i\u00e7in kullanacaks\u0131n\u0131z.<\/p>\n<h3>Ad\u0131m 3: Veri Dizini Kopyalama<\/h3>\n<p>Mevcut veri dizinini yeni konumuna kopyalamak i\u00e7in <code class=\"language-\">rsync<\/code> komutunu kullanmak en iyi y\u00f6ntemdir. <code class=\"language-\">rsync<\/code>, dosyalar\u0131 ve dizinleri kopyalarken izinleri, sahipli\u011fi ve zaman damgalar\u0131n\u0131 koruma avantaj\u0131na sahiptir. Ayr\u0131ca, b\u00fcy\u00fck dizinleri kopyalarken ilerleme durumunu g\u00f6sterir ve kesintiye u\u011fram\u0131\u015f bir kopyalamay\u0131 s\u00fcrd\u00fcrebilir.<\/p>\n<pre><code>\n    sudo rsync -av \/var\/lib\/postgresql\/14\/main \/mnt\/yeni_disk\/postgresql\/data\n  <\/code><\/pre>\n<p>Burada <code class=\"language-\">\/var\/lib\/postgresql\/14\/main<\/code> sizin mevcut veri dizininiz, <code class=\"language-\">\/mnt\/yeni_disk\/postgresql\/data<\/code> ise daha \u00f6nce olu\u015fturdu\u011funuz hedef dizindir. Kopyalama i\u015flemi, veritaban\u0131n\u0131z\u0131n boyutuna ve disklerinizin h\u0131z\u0131na ba\u011fl\u0131 olarak zaman alabilir. <code class=\"language-\">-a<\/code> (ar\u015fiv modu) ve <code class=\"language-\">-v<\/code> (ayr\u0131nt\u0131l\u0131 \u00e7\u0131kt\u0131) parametreleri, i\u015flemi daha g\u00fcvenli ve izlenebilir hale getirir. T\u00fcm dosyalar\u0131n hatas\u0131z bir \u015fekilde kopyaland\u0131\u011f\u0131ndan emin olmak i\u00e7in <code class=\"language-\">rsync<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 dikkatlice inceleyin.<\/p>\n<h3>Ad\u0131m 4: PostgreSQL Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme<\/h3>\n<p>PostgreSQL&#8217;in yeni veri dizini konumunu bilmesi i\u00e7in yap\u0131land\u0131rma dosyas\u0131n\u0131 g\u00fcncellemeniz gerekir. Ana yap\u0131land\u0131rma dosyas\u0131 genellikle <code class=\"language-\">\/etc\/postgresql\/&lt;s\u00fcr\u00fcm&gt;\/main\/postgresql.conf<\/code> yolundad\u0131r. Bu dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n (\u00f6rne\u011fin <code class=\"language-\">nano<\/code> veya <code class=\"language-\">vim<\/code>):<\/p>\n<pre><code>\n    sudo nano \/etc\/postgresql\/14\/main\/postgresql.conf\n  <\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7inde <code class=\"language-\">data_directory<\/code> parametresini bulun. Genellikle yorum sat\u0131r\u0131 olarak kal\u0131r ve varsay\u0131lan konum kullan\u0131l\u0131r. Bu sat\u0131r\u0131 bulup yorum i\u015faretini kald\u0131r\u0131n (<code class=\"language-\">#<\/code>) ve yeni dizin yolunu belirtin:<\/p>\n<pre><code>\n    #------------------------------------------------------------------------------\n    # FILE LOCATIONS\n    #------------------------------------------------------------------------------\n\n    # The default values of these variables are driven from the -D command-line\n    # option or PGDATA environment variable, cf. the file 'backend\/utils\/misc\/postgresql.conf.sample'.\n\n    data_directory = '\/mnt\/yeni_disk\/postgresql\/data' # use data in another directory\n  <\/code><\/pre>\n<p>Dosyay\u0131 kaydedip kapat\u0131n. Bu de\u011fi\u015fiklik, PostgreSQL&#8217;in bir sonraki ba\u015flat\u0131l\u0131\u015f\u0131nda yeni dizini kullanmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>Ad\u0131m 5: Sistemd Hizmet Dosyas\u0131n\u0131 G\u00fcncelleme (Opsiyonel ama \u00d6nemli)<\/h3>\n<p>Ubuntu&#8217;da PostgreSQL, <code class=\"language-\">systemd<\/code> taraf\u0131ndan y\u00f6netilir. <code class=\"language-\">systemd<\/code> hizmet dosyas\u0131, <code class=\"language-\">PGDATA<\/code> ortam de\u011fi\u015fkenini veya <code class=\"language-\">data_directory<\/code> parametresini do\u011frudan belirtebilir. Genellikle <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131n\u0131 g\u00fcncellemek yeterli olsa da, baz\u0131 durumlarda (\u00f6zellikle eski sistemlerde veya \u00f6zel kurulumlarda) <code class=\"language-\">systemd<\/code> hizmet dosyas\u0131nda da bir g\u00fcncelleme gerekebilir. Bu, daha sa\u011flam bir yap\u0131land\u0131rma sa\u011flar ve gelecekteki olas\u0131 sorunlar\u0131 \u00f6nler. Hizmet dosyas\u0131n\u0131 d\u00fczenlemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>\n    sudo systemctl edit postgresql@14-main.service\n  <\/code><\/pre>\n<p>Bu komut, <code class=\"language-\">\/etc\/systemd\/system\/postgresql@14-main.service.d\/<\/code> dizini alt\u0131nda yeni bir override dosyas\u0131 olu\u015fturur. Bu dosyaya a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code>\n    [Service]\n    Environment=PGDATA=\/mnt\/yeni_disk\/postgresql\/data\n  <\/code><\/pre>\n<p>Bu, <code class=\"language-\">systemd<\/code>&#8216;nin PostgreSQL hizmetini ba\u015flat\u0131rken <code class=\"language-\">PGDATA<\/code> ortam de\u011fi\u015fkenini belirledi\u011finiz yeni yola ayarlamas\u0131n\u0131 sa\u011flar. Dosyay\u0131 kaydedip kapat\u0131n. Ard\u0131ndan <code class=\"language-\">systemd<\/code> yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fckleyin:<\/p>\n<pre><code>\n    sudo systemctl daemon-reload\n  <\/code><\/pre>\n<p>Veya, daha basit bir y\u00f6ntem olarak, eski veri dizininin yerine yeni dizine i\u015faret eden bir sembolik ba\u011flant\u0131 (symlink) olu\u015fturabilirsiniz. Bu y\u00f6ntem daha az yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi gerektirir ancak baz\u0131 durumlarda performans veya hata ay\u0131klama a\u00e7\u0131s\u0131ndan dezavantajlar\u0131 olabilir:<\/p>\n<pre><code>\n    sudo mv \/var\/lib\/postgresql\/14\/main \/var\/lib\/postgresql\/14\/main_old\n    sudo ln -s \/mnt\/yeni_disk\/postgresql\/data \/var\/lib\/postgresql\/14\/main\n  <\/code><\/pre>\n<p>Bu durumda <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131nda <code class=\"language-\">data_directory<\/code> parametresini de\u011fi\u015ftirmeye gerek kalmaz, \u00e7\u00fcnk\u00fc PostgreSQL hala varsay\u0131lan yola bakacak, ancak bu yol sembolik ba\u011flant\u0131 arac\u0131l\u0131\u011f\u0131yla yeni dizini g\u00f6sterecektir.<\/p>\n<h3>Ad\u0131m 6: Dosya \u0130zinlerini Kontrol Etme<\/h3>\n<p>PostgreSQL&#8217;in yeni veri dizinine eri\u015febilmesi i\u00e7in do\u011fru dosya izinleri ve sahipli\u011fi kritik \u00f6neme sahiptir. Veri dizini ve i\u00e7indeki t\u00fcm dosyalar <code class=\"language-\">postgres<\/code> kullan\u0131c\u0131s\u0131 ve grubuna ait olmal\u0131 ve izinler <code class=\"language-\">700<\/code> (sadece sahibi okuyabilir, yazabilir ve \u00e7al\u0131\u015ft\u0131rabilir) olmal\u0131d\u0131r. <code class=\"language-\">rsync<\/code> genellikle izinleri korusa da, manuel kontrol ve d\u00fczeltme yapmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code>\n    sudo chown -R postgres:postgres \/mnt\/yeni_disk\/postgresql\/data\n    sudo chmod -R 0700 \/mnt\/yeni_disk\/postgresql\/data\n  <\/code><\/pre>\n<p>Bu komutlar, yeni veri dizininin sahipli\u011fini <code class=\"language-\">postgres<\/code> kullan\u0131c\u0131s\u0131na ve grubuna atar ve gerekli izinleri ayarlar. Yanl\u0131\u015f izinler, PostgreSQL&#8217;in ba\u015flat\u0131lamamas\u0131na veya \u00e7al\u0131\u015fma zaman\u0131 hatalar\u0131na neden olabilir.<\/p>\n<h3>Ad\u0131m 7: PostgreSQL Hizmetini Ba\u015flatma ve Kontrol Etme<\/h3>\n<p>T\u00fcm yap\u0131land\u0131rma de\u011fi\u015fikliklerini ve izin ayarlamalar\u0131n\u0131 yapt\u0131ktan sonra, PostgreSQL hizmetini yeniden ba\u015flatabilirsiniz:<\/p>\n<pre><code>\n    sudo systemctl start postgresql\n  <\/code><\/pre>\n<p>Hizmetin ba\u015far\u0131yla ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olmak i\u00e7in durumunu kontrol edin:<\/p>\n<pre><code>\n    sudo systemctl status postgresql\n  <\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Active: active (running)&#8221; ifadesini g\u00f6rmelisiniz. Ayr\u0131ca, PostgreSQL&#8217;in yeni veri dizinini kulland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code class=\"language-\">psql<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code>\n    sudo -u postgres psql -c \"SHOW data_directory;\"\n  <\/code><\/pre>\n<p>Bu komut, yeni dizin yolunu g\u00f6stermelidir. Herhangi bir hata durumunda, PostgreSQL&#8217;in log dosyalar\u0131n\u0131 kontrol etmeyi unutmay\u0131n. Log dosyalar\u0131 genellikle <code class=\"language-\">\/var\/log\/postgresql\/<\/code> dizininde bulunur ve sorun giderme i\u00e7in \u00f6nemli ipu\u00e7lar\u0131 i\u00e7erir. \u00d6rne\u011fin:<\/p>\n<pre><code>\n    sudo tail -f \/var\/log\/postgresql\/postgresql-14-main.log\n  <\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 dikkatlice takip ederek, PostgreSQL veri dizininizi Ubuntu \u00fczerinde g\u00fcvenli ve ba\u015far\u0131l\u0131 bir \u015fekilde ta\u015f\u0131yabilirsiniz.<\/p>\n<h2>Ta\u015f\u0131ma Sonras\u0131 Optimizasyonlar ve \u0130leri D\u00fczey \u0130pu\u00e7lar\u0131<\/h2>\n<p>PostgreSQL veri dizinini yeni bir konuma ta\u015f\u0131ma i\u015flemi tamamland\u0131\u011f\u0131nda, i\u015finiz bitmi\u015f say\u0131lmaz. Veritaban\u0131 performans\u0131n\u0131 maksimize etmek ve sistemin stabilitesini sa\u011flamak i\u00e7in baz\u0131 ek optimizasyonlar ve ileri d\u00fczey kontroller yapman\u0131z \u00f6nemlidir. Bu ad\u0131mlar, yeni depolama biriminizin potansiyelini tam olarak kullanman\u0131za ve olas\u0131 sorunlar\u0131 \u00f6nceden tespit etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Performans \u0130zleme ve Testler<\/h3>\n<p>Veri dizinini ta\u015f\u0131d\u0131ktan sonra, veritaban\u0131n\u0131z\u0131n performans\u0131n\u0131 yak\u0131ndan izlemelisiniz. Yeni depolama biriminin ger\u00e7ekten beklenen performans\u0131 sa\u011flay\u0131p sa\u011flamad\u0131\u011f\u0131n\u0131 anlamak i\u00e7in kar\u015f\u0131la\u015ft\u0131rmal\u0131 testler yap\u0131n. Kullanabilece\u011finiz ara\u00e7lar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong><code>pg_stat_statements<\/code>:<\/strong> PostgreSQL&#8217;in yerle\u015fik bir uzant\u0131s\u0131d\u0131r. En yava\u015f sorgular\u0131 ve bunlar\u0131n y\u00fcr\u00fctme s\u00fcrelerini izlemenizi sa\u011flar.<\/li>\n<li><strong><code>iostat<\/code> veya <code>atop<\/code>:<\/strong> Sistem d\u00fczeyinde disk I\/O performans\u0131n\u0131 izlemek i\u00e7in bu Linux ara\u00e7lar\u0131n\u0131 kullanabilirsiniz. Yeni diskinizin okuma\/yazma h\u0131zlar\u0131n\u0131 ve gecikme s\u00fcrelerini g\u00f6zlemleyin.<\/li>\n<li><strong>Prometheus ve Grafana:<\/strong> Daha geli\u015fmi\u015f bir izleme \u00e7\u00f6z\u00fcm\u00fc i\u00e7in, PostgreSQL exporter ile Prometheus&#8217;tan metrikleri toplay\u0131p Grafana ile g\u00f6rselle\u015ftirebilirsiniz. Bu, zaman i\u00e7indeki performans de\u011fi\u015fikliklerini izlemek i\u00e7in m\u00fckemmel bir y\u00f6ntemdir.<\/li>\n<\/ul>\n<p>Eski ve yeni konumlardaki performans verilerini kar\u015f\u0131la\u015ft\u0131rarak, ta\u015f\u0131ma i\u015fleminin beklenen faydalar\u0131 sa\u011flay\u0131p sa\u011flamad\u0131\u011f\u0131n\u0131 de\u011ferlendirin. E\u011fer performans beklentileri kar\u015f\u0131lam\u0131yorsa, yeni depolama biriminin yap\u0131land\u0131rmas\u0131n\u0131 (\u00f6rne\u011fin, RAID seviyeleri, dosya sistemi se\u00e7enekleri) veya PostgreSQL yap\u0131land\u0131rmas\u0131n\u0131 (<code class=\"language-\">wal_buffers<\/code>, <code class=\"language-\">shared_buffers<\/code> gibi parametreleri) g\u00f6zden ge\u00e7irmeniz gerekebilir.<\/p>\n<h3>Eski Veri Dizini ve G\u00fcvenlik<\/h3>\n<p>Yeni veri dizininin sorunsuz \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve t\u00fcm verilerin eri\u015filebilir oldu\u011fundan emin olduktan sonra bile, eski veri dizinini hemen silmeyin. Bir s\u00fcre boyunca (\u00f6rne\u011fin, birka\u00e7 g\u00fcn veya hafta) yedek olarak saklay\u0131n. Bu s\u00fcre zarf\u0131nda herhangi bir sorun ortaya \u00e7\u0131karsa, eski dizine geri d\u00f6nme \u015fans\u0131n\u0131z olur. Eski dizini silmeye karar verdi\u011finizde, bunu g\u00fcvenli bir \u015fekilde yap\u0131n:<\/p>\n<pre><code>\n    sudo rm -rf \/var\/lib\/postgresql\/14\/main_old\n  <\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce, <code class=\"language-\">main_old<\/code> dizininin ger\u00e7ekten eski ve gereksiz oldu\u011fundan emin olun. Ayr\u0131ca, sunucu g\u00fcvenlik duvar\u0131 (<code class=\"language-\">ufw<\/code> veya <code class=\"language-\">firewalld<\/code>) ayarlar\u0131n\u0131 kontrol edin. PostgreSQL&#8217;in yeni konumda dinledi\u011fi portun (varsay\u0131lan 5432) hala do\u011fru \u015fekilde a\u00e7\u0131k oldu\u011fundan ve d\u0131\u015far\u0131dan eri\u015fim kurallar\u0131n\u0131n (<code class=\"language-\">pg_hba.conf<\/code>) ge\u00e7erli oldu\u011fundan emin olun. <code class=\"language-\">pg_hba.conf<\/code> dosyas\u0131, veritaban\u0131na kimlerin ve nas\u0131l ba\u011flanabilece\u011fini kontrol eden kritik bir g\u00fcvenlik dosyas\u0131d\u0131r; ta\u015f\u0131ma i\u015flemi bu dosyan\u0131n i\u00e7eri\u011fini etkilemez ancak genel g\u00fcvenlik kontrol\u00fc yapmak her zaman iyidir.<\/p>\n<h3>Otomatik Yedekleme ve Kurtarma Komut Dosyalar\u0131n\u0131 G\u00fcncelleme<\/h3>\n<p>Veri dizininin konumu de\u011fi\u015fti\u011fi i\u00e7in, mevcut otomatik yedekleme komut dosyalar\u0131n\u0131z\u0131n veya felaket kurtarma planlar\u0131n\u0131z\u0131n g\u00fcncellenmesi gerekebilir. \u00d6rne\u011fin, dosya sistemi d\u00fczeyinde yedekleme yapan betikleriniz varsa, bunlar\u0131n yeni <code class=\"language-\">PGDATA<\/code> yolunu i\u015faret etti\u011finden emin olun. Mant\u0131ksal yedeklemeler (<code class=\"language-\">pg_dumpall<\/code>) genellikle bu t\u00fcr bir de\u011fi\u015fiklikten etkilenmez, ancak yedekleme \u00e7\u0131kt\u0131s\u0131n\u0131n kaydedildi\u011fi yolu da g\u00f6zden ge\u00e7irmek faydal\u0131 olacakt\u0131r. Ayr\u0131ca, bir felaket durumunda veritaban\u0131n\u0131 kurtarma ad\u0131mlar\u0131n\u0131 i\u00e7eren dok\u00fcmanlar\u0131n\u0131z\u0131 da g\u00fcncellemeyi unutmay\u0131n. Mobil uyumluluk a\u00e7\u0131s\u0131ndan, bu t\u00fcr kritik sistem y\u00f6netim g\u00f6revleri i\u00e7in geli\u015ftirilen ara\u00e7lar\u0131n veya kontrol panellerinin <code class=\"language-\">@media screen and (max-width: 768px)<\/code> gibi CSS kurallar\u0131yla mobil ekranlara uyumlu olmas\u0131, y\u00f6neticilerin her an her yerden sisteme eri\u015fim ve izleme yapabilmesi i\u00e7in \u00f6nemlidir.<\/p>\n<h3>Sembolik Ba\u011flant\u0131 (Symlink) Kullan\u0131m\u0131 ve Riskleri<\/h3>\n<p>Baz\u0131 y\u00f6neticiler, <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlemek yerine eski veri dizini yoluna yeni dizini g\u00f6steren bir sembolik ba\u011flant\u0131 olu\u015fturmay\u0131 tercih edebilir. Bu y\u00f6ntem, yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi miktar\u0131n\u0131 azalt\u0131r ve daha h\u0131zl\u0131 bir \u00e7\u00f6z\u00fcm gibi g\u00f6r\u00fcnebilir. Ancak, sembolik ba\u011flant\u0131lar\u0131n baz\u0131 dezavantajlar\u0131 ve riskleri vard\u0131r:<\/p>\n<ul>\n<li><strong>Karma\u015f\u0131kl\u0131k:<\/strong> \u00d6zellikle karma\u015f\u0131k dosya sistemlerinde veya birden fazla PostgreSQL k\u00fcmesi y\u00f6netirken, sembolik ba\u011flant\u0131lar takip edilmesi zor olabilir ve hata ay\u0131klamay\u0131 zorla\u015ft\u0131rabilir.<\/li>\n<li><strong>Sistemd Etkile\u015fimi:<\/strong> <code class=\"language-\">systemd<\/code> gibi hizmet y\u00f6neticileri, bazen sembolik ba\u011flant\u0131larla ilgili beklenmedik davran\u0131\u015flar sergileyebilir. Do\u011frudan <code class=\"language-\">PGDATA<\/code> ortam de\u011fi\u015fkenini veya <code class=\"language-\">data_directory<\/code> parametresini ayarlamak genellikle daha \u015feffaf ve g\u00fcvenilir bir y\u00f6ntemdir.<\/li>\n<li><strong>Performans:<\/strong> \u00c7o\u011fu modern dosya sisteminde sembolik ba\u011flant\u0131lar performans \u00fczerinde ihmal edilebilir bir etkiye sahip olsa da, a\u015f\u0131r\u0131 kullan\u0131m veya belirli senaryolarda k\u00fc\u00e7\u00fck bir ek y\u00fck getirebilir.<\/li>\n<\/ul>\n<p>Bu nedenle, m\u00fcmk\u00fcn oldu\u011funca <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131ndaki <code class=\"language-\">data_directory<\/code> parametresini do\u011frudan g\u00fcncellemek veya <code class=\"language-\">systemd<\/code> override dosyas\u0131 kullanmak daha iyi bir uygulama olarak kabul edilir. Sembolik ba\u011flant\u0131lar, h\u0131zl\u0131 testler veya ge\u00e7ici \u00e7\u00f6z\u00fcmler i\u00e7in uygun olabilir, ancak uzun vadeli, \u00fcretim ortamlar\u0131nda dikkatli kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve optimizasyonlar, PostgreSQL veri dizini ta\u015f\u0131ma i\u015fleminizin sadece teknik olarak ba\u015far\u0131l\u0131 olmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda operasyonel olarak da sa\u011flam ve performansl\u0131 olmas\u0131n\u0131 sa\u011flayacakt\u0131r. Unutmay\u0131n, sistem y\u00f6netimi sadece bir i\u015flemi tamamlamak de\u011fil, ayn\u0131 zamanda sistemin uzun vadeli sa\u011fl\u0131\u011f\u0131n\u0131 ve g\u00fcvenli\u011fini sa\u011flamakt\u0131r.<\/p>\n<h2>Vaka Analizi: Y\u00fcksek Trafikli Bir Web Uygulamas\u0131n\u0131n Veri Dizini Ta\u015f\u0131ma Deneyimi<\/h2>\n<p>Bir e-ticaret platformu olan &#8220;TrendyShop&#8221;, artan m\u00fc\u015fteri trafi\u011fi ve \u00fcr\u00fcn kataloglar\u0131 nedeniyle veritaban\u0131 performans\u0131nda ciddi d\u00fc\u015f\u00fc\u015fler ya\u015famaya ba\u015flam\u0131\u015ft\u0131. Mevcut sunucular\u0131nda PostgreSQL veritaban\u0131, i\u015fletim sisteminin kurulu oldu\u011fu ayn\u0131 standart HDD \u00fczerinde \u00e7al\u0131\u015f\u0131yordu. \u00d6zellikle kampanya d\u00f6nemlerinde ve yo\u011fun al\u0131\u015fveri\u015f saatlerinde, web sitesi yan\u0131t s\u00fcreleri uzuyor, sepet i\u015flemleri yava\u015fl\u0131yor ve genel kullan\u0131c\u0131 deneyimi olumsuz etkileniyordu. Sistem y\u00f6neticileri, performans izleme ara\u00e7lar\u0131 (Prometheus ve Grafana) kullanarak disk I\/O de\u011ferlerinin s\u00fcrekli olarak %90&#8217;\u0131n \u00fczerinde seyretti\u011fini ve CPU kullan\u0131m\u0131n\u0131n nispeten d\u00fc\u015f\u00fck olmas\u0131na ra\u011fmen veritaban\u0131 sorgular\u0131n\u0131n kuyrukta bekledi\u011fini tespit ettiler. Bu durum, a\u00e7\u0131k\u00e7a bir disk I\/O darbo\u011faz\u0131na i\u015faret ediyordu.<\/p>\n<p><strong>Sorun Tespiti:<\/strong> TrendyShop&#8217;un PostgreSQL veritaban\u0131 (<code class=\"language-\">\/var\/lib\/postgresql\/14\/main<\/code>), saniyede y\u00fczlerce okuma\/yazma i\u015flemi ger\u00e7ekle\u015ftiren bir e-ticaret uygulamas\u0131n\u0131n y\u00fck\u00fcn\u00fc kald\u0131ram\u0131yordu. Mevcut disk, saniyede ortalama 150-200 IOPS (Input\/Output Operations Per Second) sunarken, uygulaman\u0131n anl\u0131k olarak 500-600 IOPS&#8217;ye ihtiya\u00e7 duydu\u011fu g\u00f6zlemlendi. Bu yetersizlik, veritaban\u0131n\u0131n diskten veri okuma ve yazma h\u0131z\u0131n\u0131 s\u0131n\u0131rl\u0131yor, dolay\u0131s\u0131yla sorgular\u0131n tamamlanma s\u00fcresini uzat\u0131yordu.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Sistem y\u00f6neticileri, mevcut sunucuya iki adet y\u00fcksek performansl\u0131 NVMe SSD diski eklemeye karar verdiler. Bu diskler, RAID 1 (mirroring) yap\u0131land\u0131rmas\u0131nda birle\u015ftirilerek hem y\u00fcksek IOPS kapasitesi (yakla\u015f\u0131k 10.000-20.000 IOPS) hem de veri yedeklili\u011fi sa\u011fland\u0131. PostgreSQL veri dizini, bu yeni ve h\u0131zl\u0131 depolama birimine ta\u015f\u0131nacakt\u0131. Hedef dizin <code class=\"language-\">\/mnt\/nvme_data\/postgresql\/data<\/code> olarak belirlendi.<\/p>\n<p><strong>Uygulanan Ad\u0131mlar ve Kar\u015f\u0131la\u015f\u0131lan Zorluklar:<\/strong><\/p>\n<ol>\n<li><strong>Planlama ve Kesinti S\u00fcresi Y\u00f6netimi:<\/strong> TrendyShop, 7\/24 hizmet veren bir platform oldu\u011fundan, kesinti s\u00fcresini minimumda tutmak kritikti. Ta\u015f\u0131ma i\u015flemi, en d\u00fc\u015f\u00fck trafikli gece saatlerine (03:00-05:00 aras\u0131) planland\u0131. M\u00fc\u015fterilere \u00f6nceden bilgilendirme yap\u0131ld\u0131.<\/li>\n<li><strong>Yedekleme:<\/strong> Ta\u015f\u0131ma i\u015fleminden hemen \u00f6nce, 2 TB boyutundaki veritaban\u0131n\u0131n tam bir <code class=\"language-\">pg_dumpall<\/code> yede\u011fi al\u0131nd\u0131. Ayr\u0131ca, mevcut veri dizininin <code class=\"language-\">\/var\/lib\/postgresql\/14\/main_old<\/code> olarak h\u0131zl\u0131 bir \u015fekilde kopyas\u0131 olu\u015fturuldu. Bu, herhangi bir sorun ya\u015fanmas\u0131 durumunda an\u0131nda geri d\u00f6n\u00fc\u015f imkan\u0131 sa\u011flad\u0131.<\/li>\n<li><strong>PostgreSQL Hizmetini Durdurma:<\/strong> Planlanan saatte <code class=\"language-\">sudo systemctl stop postgresql<\/code> komutuyla hizmet durduruldu.<\/li>\n<li><strong>Veri Kopyalama:<\/strong> <code class=\"language-\">rsync<\/code> komutu, veri dizinini yeni NVMe disklere kopyalamak i\u00e7in kullan\u0131ld\u0131:\n<pre><code>\n        sudo rsync -av \/var\/lib\/postgresql\/14\/main \/mnt\/nvme_data\/postgresql\/data\n      <\/code><\/pre>\n<p>      Bu i\u015flem, 2 TB&#8217;l\u0131k veri i\u00e7in yakla\u015f\u0131k 45 dakika s\u00fcrd\u00fc. <code class=\"language-\">rsync<\/code>&#8216;in ilerleme g\u00f6stergesi sayesinde, y\u00f6neticiler s\u00fcrecin ne kadar kald\u0131\u011f\u0131n\u0131 takip edebildi.\n    <\/li>\n<li><strong>Yap\u0131land\u0131rma G\u00fcncellemesi:<\/strong> <code class=\"language-\">\/etc\/postgresql\/14\/main\/postgresql.conf<\/code> dosyas\u0131 d\u00fczenlenerek <code class=\"language-\">data_directory<\/code> parametresi <code class=\"language-\">\/mnt\/nvme_data\/postgresql\/data<\/code> olarak g\u00fcncellendi.<\/li>\n<li><strong>\u0130zin Ayarlar\u0131:<\/strong> Yeni dizin ve i\u00e7eri\u011fi i\u00e7in <code class=\"language-\">sudo chown -R postgres:postgres \/mnt\/nvme_data\/postgresql\/data<\/code> ve <code class=\"language-\">sudo chmod -R 0700 \/mnt\/nvme_data\/postgresql\/data<\/code> komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131larak do\u011fru izinler sa\u011fland\u0131.<\/li>\n<li><strong>Hizmeti Ba\u015flatma ve Kontrol:<\/strong> PostgreSQL hizmeti <code class=\"language-\">sudo systemctl start postgresql<\/code> ile ba\u015flat\u0131ld\u0131 ve <code class=\"language-\">psql -c \"SHOW data_directory;\"<\/code> ile yeni konum do\u011fruland\u0131. Log dosyalar\u0131 (<code class=\"language-\">\/var\/log\/postgresql\/postgresql-14-main.log<\/code>) kontrol edilerek herhangi bir hata olup olmad\u0131\u011f\u0131na bak\u0131ld\u0131.<\/li>\n<\/ol>\n<p><strong>Elde Edilen Kazan\u00e7lar:<\/strong> Ta\u015f\u0131ma i\u015flemi ba\u015far\u0131yla tamamland\u0131ktan sonra, TrendyShop platformunda an\u0131nda bir performans art\u0131\u015f\u0131 g\u00f6zlemlendi. Disk I\/O darbo\u011faz\u0131 tamamen ortadan kalkt\u0131. Sorgu s\u00fcreleri ortalama %70 oran\u0131nda k\u0131sald\u0131. Web sitesi yan\u0131t s\u00fcreleri 500 ms&#8217;den 150 ms&#8217;ye d\u00fc\u015ft\u00fc. \u00d6zellikle kampanya d\u00f6nemlerindeki yo\u011funlukta bile sistemin stabil \u00e7al\u0131\u015ft\u0131\u011f\u0131 ve kullan\u0131c\u0131 deneyiminin \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015fti\u011fi g\u00f6r\u00fcld\u00fc. Bu vaka analizi, do\u011fru planlama ve h\u0131zl\u0131 depolama \u00e7\u00f6z\u00fcmleriyle veri dizini ta\u015f\u0131man\u0131n, y\u00fcksek trafikli uygulamalar i\u00e7in ne kadar kritik bir performans iyile\u015ftirmesi sa\u011flayabilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Bu t\u00fcr operasyonlar\u0131 planlarken, mobil cihazlardan izleme ve y\u00f6netme kolayl\u0131\u011f\u0131 i\u00e7in responsive tasar\u0131ma sahip ara\u00e7lar kullanmak \u00f6nemlidir. \u00d6rne\u011fin, y\u00f6netim panelleri veya log g\u00f6r\u00fcnt\u00fcleyiciler, <code class=\"language-\">@media screen and (max-width: 768px)<\/code> gibi CSS kurallar\u0131yla mobil ekranlara uyum sa\u011flayabilir, b\u00f6ylece y\u00f6neticiler acil durumlarda bile h\u0131zl\u0131ca m\u00fcdahale edebilirler.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>PostgreSQL veri dizinini Ubuntu \u00fczerinde ta\u015f\u0131mak, dikkat ve \u00f6zen gerektiren ancak do\u011fru ad\u0131mlar izlendi\u011finde olduk\u00e7a y\u00f6netilebilir bir i\u015flemdir. Bu kapsaml\u0131 rehberde ele ald\u0131\u011f\u0131m\u0131z gibi, ta\u015f\u0131ma i\u015flemi genellikle disk alan\u0131 yetersizli\u011fi, performans iyile\u015ftirmesi veya daha iyi yedekleme stratejileri gibi \u00f6nemli operasyonel ihtiya\u00e7lardan do\u011far. Ba\u015far\u0131l\u0131 bir ta\u015f\u0131ma s\u00fcreci, titiz bir haz\u0131rl\u0131k a\u015famas\u0131 (yedekleme, hedef dizin olu\u015fturma), ad\u0131m ad\u0131m veri kopyalama ve yap\u0131land\u0131rma g\u00fcncellemeleri, do\u011fru izin ayarlar\u0131 ve ta\u015f\u0131ma sonras\u0131 kapsaml\u0131 testler ile m\u00fcmk\u00fcnd\u00fcr. Unutulmamal\u0131d\u0131r ki, veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve sistem g\u00fcvenli\u011fi her zaman en \u00f6ncelikli konulard\u0131r. Bu nedenle, her ad\u0131m\u0131n do\u011fru bir \u015fekilde uyguland\u0131\u011f\u0131ndan ve olas\u0131 risklerin minimize edildi\u011finden emin olmak i\u00e7in dikkatli olmak esast\u0131r. Veritaban\u0131 performans\u0131n\u0131 art\u0131rmak ve sisteminizin uzun vadeli sa\u011fl\u0131\u011f\u0131n\u0131 g\u00fcvence alt\u0131na almak i\u00e7in bu t\u00fcr operasyonlar\u0131 do\u011fru bir \u015fekilde ger\u00e7ekle\u015ftirmek, her sistem y\u00f6neticisinin yetkinlikleri aras\u0131nda yer almal\u0131d\u0131r. Bu rehberin, PostgreSQL veri dizini ta\u015f\u0131ma s\u00fcrecini anlaman\u0131za ve ba\u015far\u0131l\u0131 bir \u015fekilde uygulaman\u0131za yard\u0131mc\u0131 olmas\u0131n\u0131 umuyoruz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<dl>\n<dt>S1: Ta\u015f\u0131ma s\u0131ras\u0131nda veri kayb\u0131 riski var m\u0131?<\/dt>\n<dd>C1: Evet, e\u011fer yedekleme yapmazsan\u0131z veya ad\u0131mlar\u0131 yanl\u0131\u015f uygularsan\u0131z veri kayb\u0131 riski vard\u0131r. Ancak, bu rehberde belirtilen t\u00fcm ad\u0131mlar\u0131 (\u00f6zellikle yedekleme) dikkatlice takip ederseniz, veri kayb\u0131 riski minimuma iner.<\/dd>\n<dt>S2: Ta\u015f\u0131ma i\u015flemi ne kadar s\u00fcrer?<\/dt>\n<dd>C2: Ta\u015f\u0131ma s\u00fcresi, veritaban\u0131n\u0131z\u0131n boyutuna, mevcut ve hedef disklerinizin h\u0131z\u0131na ba\u011fl\u0131d\u0131r. K\u00fc\u00e7\u00fck bir veritaban\u0131 birka\u00e7 dakika s\u00fcrerken, terabaytlarca veri i\u00e7eren bir veritaban\u0131 saatler s\u00fcrebilir. <code class=\"language-\">rsync<\/code> komutunun ilerleme g\u00f6stergesi, tahmini s\u00fcreyi anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/dd>\n<dt>S3: Eski veri dizinini ne zaman silebiliriz?<\/dt>\n<dd>C3: Yeni veri dizininin sorunsuz \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve veritaban\u0131 uygulaman\u0131z\u0131n beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra, eski dizini silebilirsiniz. Genellikle, yeni kurulumu birka\u00e7 g\u00fcn veya bir hafta boyunca g\u00f6zlemlemek iyi bir uygulamad\u0131r. G\u00fcvenli oldu\u011funuzdan emin olana kadar eski dizini bir yedek olarak saklay\u0131n.<\/dd>\n<dt>S4: Sembolik ba\u011flant\u0131 (symlink) kullanmak iyi bir fikir mi?<\/dt>\n<dd>C4: Sembolik ba\u011flant\u0131lar, h\u0131zl\u0131 ve ge\u00e7ici \u00e7\u00f6z\u00fcmler i\u00e7in uygun olabilir. Ancak, \u00fcretim ortamlar\u0131nda genellikle <code class=\"language-\">postgresql.conf<\/code> dosyas\u0131ndaki <code class=\"language-\">data_directory<\/code> parametresini do\u011frudan g\u00fcncellemek veya <code class=\"language-\">systemd<\/code> override dosyas\u0131 kullanmak daha g\u00fcvenilir ve \u015feffaf bir y\u00f6ntemdir. Symlinkler, hata ay\u0131klamay\u0131 zorla\u015ft\u0131rabilir ve beklenmedik davran\u0131\u015flara yol a\u00e7abilir.<\/dd>\n<dt>S5: PostgreSQL&#8217;in farkl\u0131 s\u00fcr\u00fcmleri aras\u0131nda veri dizini ta\u015f\u0131yabilir miyim?<\/dt>\n<dd>C5: Hay\u0131r, PostgreSQL&#8217;in farkl\u0131 ana s\u00fcr\u00fcmleri aras\u0131nda veri dizinini do\u011frudan ta\u015f\u0131yamazs\u0131n\u0131z. Her ana s\u00fcr\u00fcm\u00fcn kendi veri format\u0131 ve dizin yap\u0131s\u0131 vard\u0131r. S\u00fcr\u00fcm y\u00fckseltmeleri i\u00e7in <code class=\"language-\">pg_upgrade<\/code> gibi \u00f6zel ara\u00e7lar\u0131 veya mant\u0131ksal yedekleme\/geri y\u00fckleme (<code class=\"language-\">pg_dumpall<\/code>\/<code class=\"language-\">psql<\/code>) y\u00f6ntemlerini kullanman\u0131z gerekir. Bu rehber, ayn\u0131 PostgreSQL s\u00fcr\u00fcm\u00fc i\u00e7inde veri dizini konumunu de\u011fi\u015ftirmeyi ama\u00e7lamaktad\u0131r.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu&#8217;da PostgreSQL Veri Dizini Ta\u015f\u0131ma: Kapsaml\u0131 Rehber Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz? Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n&hellip;","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":[644],"tags":[],"class_list":{"0":"post-41315","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","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>Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?<\/title>\n<meta name=\"description\" content=\"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.\" \/>\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\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?\" \/>\n<meta property=\"og:description\" content=\"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-01T11:02:08+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=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?\",\"datePublished\":\"2026-04-01T11:02:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\"},\"wordCount\":4066,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\",\"name\":\"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-04-01T11:02:08+00:00\",\"description\":\"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?\"}]},{\"@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":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?","description":"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.","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\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?","og_description":"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.","og_url":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-04-01T11:02:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?","datePublished":"2026-04-01T11:02:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/"},"wordCount":4066,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/","name":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-04-01T11:02:08+00:00","description":"Ubuntu sunucular\u0131nda \u00e7al\u0131\u015fan PostgreSQL veritaban\u0131n\u0131z\u0131n veri dizinini ta\u015f\u0131mak, ilk bak\u0131\u015fta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, sistem y\u00f6neticileri i\u00e7in hayati \u00f6neme sahip bir i\u015flemdir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/neden-postgresql-veri-dizini-tasimak-isteyesiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Neden PostgreSQL Veri Dizini Ta\u015f\u0131mak \u0130steyesiniz?"}]},{"@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\/41315","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=41315"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}