{"id":33942,"date":"2025-11-09T04:40:51","date_gmt":"2025-11-09T01:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33942"},"modified":"2025-11-09T04:40:51","modified_gmt":"2025-11-09T01:40:51","slug":"mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/","title":{"rendered":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, veri her i\u015fletmenin en de\u011ferli varl\u0131klar\u0131ndan biridir. Bu verilerin g\u00fcvenli\u011fi, eri\u015filebilirli\u011fi ve b\u00fct\u00fcnl\u00fc\u011f\u00fc, bir felaket an\u0131nda i\u015f s\u00fcreklili\u011fini sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. \u00d6zellikle NoSQL veritabanlar\u0131 aras\u0131nda pop\u00fclerli\u011fini art\u0131ran MongoDB gibi dinamik ve \u00f6l\u00e7eklenebilir sistemlerde, sa\u011flam bir yedekleme, geri y\u00fckleme ve ta\u015f\u0131ma stratejisi olu\u015fturmak hayati bir gerekliliktir. Bu kapsaml\u0131 teknik makale, Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir MongoDB veritaban\u0131n\u0131n nas\u0131l g\u00fcvenli bir \u015fekilde yedeklenece\u011fini, olas\u0131 bir veri kayb\u0131 durumunda nas\u0131l geri y\u00fcklenece\u011fini ve farkl\u0131 sunucular veya ortamlar aras\u0131nda nas\u0131l ta\u015f\u0131naca\u011f\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r.<\/p>\n<p>Veri kayb\u0131, donan\u0131m ar\u0131zas\u0131, yaz\u0131l\u0131m hatalar\u0131, yanl\u0131\u015fl\u0131kla yap\u0131lan silme i\u015flemleri veya k\u00f6t\u00fc niyetli sald\u0131r\u0131lar gibi bir\u00e7ok nedenden kaynaklanabilir. Bu t\u00fcr senaryolara haz\u0131rl\u0131kl\u0131 olmak, yaln\u0131zca verilerinizi korumakla kalmaz, ayn\u0131 zamanda i\u015finizin kesintiye u\u011framadan devam etmesini de garanti eder. Ayr\u0131ca, veritabanlar\u0131n\u0131 daha g\u00fc\u00e7l\u00fc donan\u0131mlara, farkl\u0131 veri merkezlerine veya bulut ortamlar\u0131na ta\u015f\u0131mak (migrasyon) da s\u0131k kar\u015f\u0131la\u015f\u0131lan bir operasyonel ihtiya\u00e7t\u0131r. Bu rehber, hem basit <code>mongodump<\/code>\/<code>mongorestore<\/code> ara\u00e7lar\u0131n\u0131 kullanarak hem de daha geli\u015fmi\u015f dosya sistemi anl\u0131k g\u00f6r\u00fcnt\u00fcleri ve MongoDB&#8217;nin kendi replica set \u00f6zelliklerini kullanarak bu i\u015flemleri g\u00fcvenli ve verimli bir \u015fekilde ger\u00e7ekle\u015ftirmenize yard\u0131mc\u0131 olacakt\u0131r. Ubuntu 18.04, uzun s\u00fcreli destek (LTS) sa\u011flayan ve MongoDB sunucular\u0131 i\u00e7in yayg\u0131n olarak kullan\u0131lan stabil bir platform oldu\u011fundan, bu rehberin odak noktas\u0131 olacakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehberdeki ad\u0131mlar\u0131 ba\u015far\u0131yla uygulayabilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirilmi\u015f olmas\u0131 gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu<\/strong>: MongoDB kurulu ve \u00e7al\u0131\u015fan bir Ubuntu 18.04 sunucusuna SSH eri\u015fiminiz olmal\u0131d\u0131r.<br \/>\n*   <strong>MongoDB Kurulumu<\/strong>: Sunucunuzda MongoDB Community Edition veya Enterprise Edition kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmal\u0131d\u0131r.<br \/>\n*   <strong>Y\u00f6netici Yetkileri<\/strong>: <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131ya veya <code>root<\/code> eri\u015fimine sahip olman\u0131z gerekmektedir.<br \/>\n*   <strong>Temel Linux Bilgisi<\/strong>: Temel Linux komutlar\u0131 (dizin i\u015flemleri, dosya kopyalama, izin y\u00f6netimi vb.) hakk\u0131nda bilgi sahibi olmak faydal\u0131 olacakt\u0131r.<br \/>\n*   <strong>Yeterli Disk Alan\u0131<\/strong>: Yedekleme i\u015flemleri i\u00e7in veritaban\u0131 boyutunun en az iki kat\u0131 kadar bo\u015f disk alan\u0131na sahip olman\u0131z \u00f6nerilir.<\/p>\n<h3>MongoDB Yedekleme Y\u00f6ntemleri<\/h3>\n<p>MongoDB veritabanlar\u0131n\u0131 yedeklemek i\u00e7in birka\u00e7 farkl\u0131 y\u00f6ntem bulunmaktad\u0131r. Her y\u00f6ntemin kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 vard\u0131r ve se\u00e7iminiz veritaban\u0131n\u0131z\u0131n boyutu, i\u015f y\u00fck\u00fc, kesinti s\u00fcresi tolerans\u0131 ve kurtarma noktas\u0131 hedeflerine (RPO\/RTO) ba\u011fl\u0131 olacakt\u0131r.<\/p>\n<h4>1. <code>mongodump<\/code> Kullanarak Yedekleme<\/h4>\n<p><code>mongodump<\/code> arac\u0131, MongoDB&#8217;nin kendi b\u00fcnyesinde gelen ve en yayg\u0131n kullan\u0131lan mant\u0131ksal yedekleme y\u00f6ntemidir. Veritaban\u0131n\u0131n ikili (BSON) format\u0131nda bir kopyas\u0131n\u0131 olu\u015fturur ve koleksiyon baz\u0131nda veya veritaban\u0131 baz\u0131nda yedeklemeye olanak tan\u0131r. <code>mongodump<\/code> ile al\u0131nan yedekler, <code>mongorestore<\/code> arac\u0131 ile kolayca geri y\u00fcklenebilir.<\/p>\n<h5>a. T\u00fcm Veritaban\u0131n\u0131 Yedekleme<\/h5>\n<p>Varsay\u0131lan olarak, <code>mongodump<\/code> MongoDB sunucusundaki t\u00fcm veritabanlar\u0131n\u0131 yedekler. \u00c7\u0131kt\u0131 dizini belirtilmedi\u011finde, mevcut dizinde her veritaban\u0131 i\u00e7in ayr\u0131 bir klas\u00f6r olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">mongodump --out \/yedekler\/mongodb_yedek_$(date +%Y%m%d%H%M%S)<\/code><\/pre>\n<p>Bu komut, <code>\/yedekler\/<\/code> dizini alt\u0131na, o anki tarih ve saati i\u00e7eren bir klas\u00f6r (\u00f6rne\u011fin, <code>mongodb_yedek_20231027153000<\/code>) olu\u015fturacak ve t\u00fcm veritabanlar\u0131n\u0131 bu klas\u00f6re yedekleyecektir.<\/p>\n<h5>b. Belirli Bir Veritaban\u0131n\u0131 Yedekleme<\/h5>\n<p>Sadece belirli bir veritaban\u0131n\u0131 yedeklemek isterseniz <code>--db<\/code> veya <code>-d<\/code> parametresini kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">mongodump --db veritabani_adi --out \/yedekler\/veritabani_adi_yedek<\/code><\/pre>\n<p>Bu komut, <code>veritabani_adi<\/code> isimli veritaban\u0131n\u0131 <code>\/yedekler\/veritabani_adi_yedek\/veritabani_adi<\/code> dizinine yedekleyecektir.<\/p>\n<h5>c. Belirli Bir Koleksiyonu Yedekleme<\/h5>\n<p>Daha da gran\u00fcler bir yedekleme i\u00e7in, belirli bir veritaban\u0131 i\u00e7indeki tek bir koleksiyonu yedekleyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">mongodump --db veritabani_adi --collection koleksiyon_adi --out \/yedekler\/koleksiyon_adi_yedek<\/code><\/pre>\n<p>Bu komut, <code>veritabani_adi<\/code> i\u00e7indeki <code>koleksiyon_adi<\/code> koleksiyonunu <code>\/yedekler\/koleksiyon_adi_yedek\/veritabani_adi<\/code> dizinine yedekleyecektir. \u00c7\u0131kt\u0131 olarak <code>koleksiyon_adi.bson<\/code> ve <code>koleksiyon_adi.metadata.json<\/code> dosyalar\u0131 olu\u015facakt\u0131r.<\/p>\n<h5>d. Kimlik Do\u011frulama (Authentication) ile Yedekleme<\/h5>\n<p>E\u011fer MongoDB sunucunuzda kimlik do\u011frulama etkinse, <code>mongodump<\/code> komutuna kullan\u0131c\u0131 ad\u0131, parola ve kimlik do\u011frulama veritaban\u0131n\u0131 belirtmeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">mongodump --host localhost --port 27017 --username admin --password \"sifre\" --authenticationDatabase admin --out \/yedekler\/guvenli_yedek<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>admin<\/code> kullan\u0131c\u0131s\u0131 ve belirtilen parola ile <code>admin<\/code> veritaban\u0131 \u00fczerinden kimlik do\u011frulamas\u0131 yap\u0131l\u0131r.<\/p>\n<h5>e. Replica Set&#8217;ten Yedekleme (Secondary \u00dcye)<\/h5>\n<p>\u00dcretim ortamlar\u0131nda, <code>mongodump<\/code> i\u015flemini birincil (primary) sunucudan yapmak performans\u0131 etkileyebilir. Bu nedenle, replica set&#8217;in ikincil (secondary) \u00fcyelerinden birinden yedek almak daha iyi bir uygulamad\u0131r. Bu, birincil sunucunun i\u015f y\u00fck\u00fcn\u00fc azalt\u0131r ve uygulaman\u0131n performans\u0131n\u0131 etkilemez.<\/p>\n<pre><code class=\"language-bash\">mongodump --host replset_adi\/secondary_host_ip:27017 --readPreference secondary --out \/yedekler\/replset_yedek<\/code><\/pre>\n<p>Burada <code>replset_adi<\/code>, replica set&#8217;inizin ad\u0131d\u0131r ve <code>secondary_host_ip<\/code> yedekleme yapaca\u011f\u0131n\u0131z ikincil \u00fcyenin IP adresidir. <code>--readPreference secondary<\/code> parametresi, okuma i\u015flemlerinin ikincil \u00fcyeden yap\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h5>f. S\u0131k\u0131\u015ft\u0131rma ile Yedekleme<\/h5>\n<p>Yedekleme boyutunu azaltmak ve disk alan\u0131 tasarrufu sa\u011flamak i\u00e7in <code>--gzip<\/code> parametresini kullanarak yedekleri s\u0131k\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">mongodump --gzip --out \/yedekler\/s\u0131k\u0131st\u0131r\u0131lm\u0131s_yedek<\/code><\/pre>\n<p>Bu komut, BSON dosyalar\u0131n\u0131 gzip format\u0131nda s\u0131k\u0131\u015ft\u0131r\u0131r. Geri y\u00fckleme yaparken <code>mongorestore<\/code> da <code>--gzip<\/code> parametresini destekler.<\/p>\n<h4>2. Dosya Sistemi Anl\u0131k G\u00f6r\u00fcnt\u00fcleri (Filesystem Snapshots) ile Yedekleme<\/h4>\n<p>Dosya sistemi anl\u0131k g\u00f6r\u00fcnt\u00fcleri (\u00f6rne\u011fin, LVM anl\u0131k g\u00f6r\u00fcnt\u00fcleri veya bulut sa\u011flay\u0131c\u0131lar\u0131n (AWS EBS, Azure Disk) anl\u0131k g\u00f6r\u00fcnt\u00fcleri), veritaban\u0131n\u0131n belirli bir zamandaki fiziksel bir kopyas\u0131n\u0131 olu\u015fturur. Bu y\u00f6ntem, \u00f6zellikle \u00e7ok b\u00fcy\u00fck veritabanlar\u0131 i\u00e7in <code>mongodump<\/code>&#8216;tan daha h\u0131zl\u0131 olabilir ve genellikle t\u00fcm veri dizinini tek bir i\u015flemde yedekler.<\/p>\n<p><strong>\u00d6nemli Not<\/strong>: MongoDB&#8217;nin veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in anl\u0131k g\u00f6r\u00fcnt\u00fc almadan \u00f6nce veritaban\u0131n\u0131n tutarl\u0131 bir durumda olmas\u0131 gerekir. WiredTiger depolama motoru kullanan MongoDB s\u00fcr\u00fcmleri (3.2 ve \u00fczeri) i\u00e7in, <code>fsyncLock()<\/code> komutu kullan\u0131larak veritaban\u0131 yazma i\u015flemleri kilitlenmeli, anl\u0131k g\u00f6r\u00fcnt\u00fc al\u0131nd\u0131ktan sonra kilit a\u00e7\u0131lmal\u0131d\u0131r. Replica Set ortamlar\u0131nda ise bu i\u015flem, birincil sunucuyu etkilememek i\u00e7in ikincil \u00fcyelerde yap\u0131lmal\u0131d\u0131r.<\/p>\n<h5>a. Ad\u0131mlar (Tekil MongoDB \u0130\u00e7in)<\/h5>\n<p>1.  <strong>MongoDB&#8217;yi Kilitleme<\/strong>: T\u00fcm yazma i\u015flemlerini durdurmak i\u00e7in MongoDB&#8217;yi kilitler. Bu, veritaban\u0131n\u0131 tutarl\u0131 bir duruma getirir.<\/p>\n<pre><code class=\"language-bash\">mongo --eval \"db.fsyncLock()\"<\/code><\/pre>\n<p>    Bu komut, <code>mongo<\/code> kabu\u011funu kullanarak <code>fsyncLock<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131r ve ba\u015far\u0131l\u0131 olursa bir JSON \u00e7\u0131kt\u0131s\u0131 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>2.  <strong>Dosya Sistemi Anl\u0131k G\u00f6r\u00fcnt\u00fcs\u00fc Alma<\/strong>: Veritaban\u0131 veri dizininin (varsay\u0131lan olarak <code>\/var\/lib\/mongodb<\/code>) bulundu\u011fu mant\u0131ksal birimin (Logical Volume) bir anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc al\u0131n.<\/p>\n<pre><code class=\"language-bash\"># LVM kullanan bir sistemde \u00f6rnek komut:\n    sudo lvcreate --size 10G --snapshot --name mongodb_snap \/dev\/vg_name\/lv_name\n    # Burada 10G anl\u0131k g\u00f6r\u00fcnt\u00fcn\u00fcn boyutunu, mongodb_snap ad\u0131n\u0131, vg_name ve lv_name ise MongoDB veri dizininin bulundu\u011fu LVM birimini temsil eder.<\/code><\/pre>\n<p>3.  <strong>MongoDB Kilidini A\u00e7ma<\/strong>: Anl\u0131k g\u00f6r\u00fcnt\u00fc al\u0131nd\u0131ktan sonra MongoDB&#8217;nin yazma i\u015flemlerine devam etmesine izin verin.<\/p>\n<pre><code class=\"language-bash\">mongo --eval \"db.fsyncUnlock()\"<\/code><\/pre>\n<h5>b. Replica Set Ortam\u0131nda Anl\u0131k G\u00f6r\u00fcnt\u00fcler<\/h5>\n<p>Replica Set ortam\u0131nda, birincil sunucuyu etkilememek i\u00e7in anl\u0131k g\u00f6r\u00fcnt\u00fc alma i\u015flemi a\u015fa\u011f\u0131daki gibi yap\u0131lmal\u0131d\u0131r:<br \/>\n1.  Replica Set&#8217;teki bir ikincil \u00fcyeyi ge\u00e7ici olarak durdurun veya <code>rs.freeze()<\/code> komutu ile senkronizasyonunu dondurun.<br \/>\n2.  \u0130kincil \u00fcyenin MongoDB servisini durdurun (<code>sudo systemctl stop mongod<\/code>).<br \/>\n3.  Veri dizininin bir anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc al\u0131n.<br \/>\n4.  MongoDB servisini tekrar ba\u015flat\u0131n (<code>sudo systemctl start mongod<\/code>).<br \/>\n5.  E\u011fer <code>rs.freeze()<\/code> kulland\u0131ysan\u0131z, s\u00fcresi dolduktan sonra senkronizasyon otomatik devam edecektir.<\/p>\n<p>Bu y\u00f6ntem, b\u00fcy\u00fck veritabanlar\u0131 i\u00e7in h\u0131zl\u0131 yedekleme sa\u011flar ancak geri y\u00fckleme i\u015flemi genellikle t\u00fcm sunucunun veya veri dizininin eski haline getirilmesini gerektirir.<\/p>\n<h3>MongoDB Geri Y\u00fckleme Y\u00f6ntemleri<\/h3>\n<p>Yedekleme kadar, yedeklerin ba\u015far\u0131yla geri y\u00fcklenebilmesi de kritik \u00f6neme sahiptir. MongoDB yedeklerini geri y\u00fcklemek i\u00e7in de kullan\u0131lan yedekleme y\u00f6ntemine g\u00f6re farkl\u0131 yakla\u015f\u0131mlar mevcuttur.<\/p>\n<h4>1. <code>mongorestore<\/code> Kullanarak Geri Y\u00fckleme<\/h4>\n<p><code>mongorestore<\/code> arac\u0131, <code>mongodump<\/code> ile olu\u015fturulan BSON yedeklerini bir MongoDB sunucusuna geri y\u00fcklemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h5>a. T\u00fcm Veritaban\u0131n\u0131 Geri Y\u00fckleme<\/h5>\n<p><code>mongodump<\/code> ile al\u0131nan bir yedek dizinini oldu\u011fu gibi geri y\u00fcklemek i\u00e7in hedef dizini belirtmeniz yeterlidir.<\/p>\n<pre><code class=\"language-bash\">mongorestore \/yedekler\/mongodb_yedek_20231027153000<\/code><\/pre>\n<p>Bu komut, <code>\/yedekler\/mongodb_yedek_20231027153000<\/code> dizinindeki t\u00fcm veritabanlar\u0131n\u0131, orijinal adlar\u0131yla mevcut MongoDB sunucusuna geri y\u00fckleyecektir. E\u011fer bu veritabanlar\u0131 zaten varsa, yeni veriler mevcut verilerle birle\u015ftirilir (upsert).<\/p>\n<h5>b. Belirli Bir Veritaban\u0131n\u0131 Geri Y\u00fckleme<\/h5>\n<p>Yedekten sadece belirli bir veritaban\u0131n\u0131 geri y\u00fcklemek isterseniz, <code>mongodump<\/code> \u00e7\u0131kt\u0131s\u0131ndaki ilgili veritaban\u0131 dizinini belirtmeli ve <code>--db<\/code> parametresiyle hedef veritaban\u0131 ad\u0131n\u0131 verebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">mongorestore --db yeni_veritabani_adi \/yedekler\/veritabani_adi_yedek\/veritabani_adi<\/code><\/pre>\n<p>Bu komut, <code>veritabani_adi<\/code> yedek dizininden verileri okuyacak ve bunlar\u0131 MongoDB sunucusunda <code>yeni_veritabani_adi<\/code> olarak adland\u0131r\u0131lan bir veritaban\u0131na geri y\u00fckleyecektir. E\u011fer <code>yeni_veritabani_adi<\/code> belirtilmezse, orijinal veritaban\u0131 ad\u0131yla geri y\u00fcklenir.<\/p>\n<h5>c. Belirli Bir Koleksiyonu Geri Y\u00fckleme<\/h5>\n<p>Sadece belirli bir koleksiyonu geri y\u00fcklemek i\u00e7in <code>--collection<\/code> parametresini kullan\u0131n ve BSON dosyas\u0131n\u0131n yolunu belirtin.<\/p>\n<pre><code class=\"language-bash\">mongorestore --db hedef_veritabani --collection hedef_koleksiyon \/yedekler\/koleksiyon_adi_yedek\/veritabani_adi\/koleksiyon_adi.bson<\/code><\/pre>\n<p>Bu komut, <code>koleksiyon_adi.bson<\/code> dosyas\u0131ndaki verileri <code>hedef_veritabani<\/code> i\u00e7indeki <code>hedef_koleksiyon<\/code>&#8216;a geri y\u00fckleyecektir.<\/p>\n<h5>d. Mevcut Veriyi Silerek Geri Y\u00fckleme (<code>--drop<\/code>)<\/h5>\n<p>Geri y\u00fckleme yapmadan \u00f6nce hedef veritaban\u0131ndaki veya koleksiyondaki mevcut verileri silmek isterseniz <code>--drop<\/code> parametresini kullanabilirsiniz. Bu, temiz bir geri y\u00fckleme sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">mongorestore --drop \/yedekler\/mongodb_yedek_20231027153000<\/code><\/pre>\n<p>Bu komut, geri y\u00fcklenecek her veritaban\u0131 veya koleksiyon i\u00e7in \u00f6nce mevcut olan\u0131 siler, ard\u0131ndan yede\u011fi geri y\u00fckler. <strong>Dikkatli kullan\u0131lmal\u0131d\u0131r!<\/strong><\/p>\n<h5>e. S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f Yedekten Geri Y\u00fckleme<\/h5>\n<p><code>--gzip<\/code> parametresi ile s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f bir yedekten geri y\u00fckleme yapmak i\u00e7in <code>mongorestore<\/code>&#8216;a ayn\u0131 parametreyi eklemeniz yeterlidir.<\/p>\n<pre><code class=\"language-bash\">mongorestore --gzip \/yedekler\/s\u0131k\u0131st\u0131r\u0131lm\u0131s_yedek<\/code><\/pre>\n<p><code>mongorestore<\/code> s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyalar\u0131 otomatik olarak a\u00e7acakt\u0131r.<\/p>\n<h4>2. Dosya Sistemi Anl\u0131k G\u00f6r\u00fcnt\u00fclerinden Geri Y\u00fckleme<\/h4>\n<p>Dosya sistemi anl\u0131k g\u00f6r\u00fcnt\u00fclerinden geri y\u00fckleme, genellikle t\u00fcm veri dizinini veya hatta t\u00fcm sunucuyu anl\u0131k g\u00f6r\u00fcnt\u00fcn\u00fcn al\u0131nd\u0131\u011f\u0131 zamanki durumuna d\u00f6nd\u00fcrmeyi i\u00e7erir. Bu y\u00f6ntem, <code>mongodump<\/code>\/<code>mongorestore<\/code>&#8216;dan farkl\u0131 olarak, veritaban\u0131n\u0131 mant\u0131ksal olarak de\u011fil, fiziksel olarak eski haline getirir.<\/p>\n<h5>a. Ad\u0131mlar<\/h5>\n<p>1.  <strong>MongoDB Servisini Durdurma<\/strong>: Geri y\u00fckleme i\u015flemine ba\u015flamadan \u00f6nce MongoDB servisini durdurun. Bu, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar ve \u00e7ak\u0131\u015fmalar\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop mongod<\/code><\/pre>\n<p>2.  <strong>Veri Dizinini Eski Haline Getirme<\/strong>: Anl\u0131k g\u00f6r\u00fcnt\u00fcy\u00fc orijinal veri dizininin \u00fczerine geri y\u00fckleyin. Bu ad\u0131m, kulland\u0131\u011f\u0131n\u0131z dosya sistemi veya bulut sa\u011flay\u0131c\u0131s\u0131na g\u00f6re de\u011fi\u015fiklik g\u00f6sterecektir.<\/p>\n<pre><code class=\"language-bash\"># LVM kullanan bir sistemde anl\u0131k g\u00f6r\u00fcnt\u00fcy\u00fc birle\u015ftirmek i\u00e7in \u00f6rnek komut:\n    sudo lvconvert --merge \/dev\/vg_name\/mongodb_snap\n    # Bu komut, mongodb_snap anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc orijinal mant\u0131ksal birimle birle\u015ftirerek verileri geri y\u00fckler.<\/code><\/pre>\n<p>    Bulut ortamlar\u0131nda (AWS EBS, Azure Disk), anl\u0131k g\u00f6r\u00fcnt\u00fcden yeni bir disk olu\u015fturup bunu sunucuya ba\u011flayabilir veya mevcut diski anl\u0131k g\u00f6r\u00fcnt\u00fcden geri y\u00fckleyebilirsiniz.<\/p>\n<p>3.  <strong>MongoDB Servisini Ba\u015flatma<\/strong>: Veri dizini ba\u015far\u0131yla geri y\u00fcklendikten sonra MongoDB servisini ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongod<\/code><\/pre>\n<p>    MongoDB, veri dosyalar\u0131n\u0131 kontrol edecek ve herhangi bir tutars\u0131zl\u0131k durumunda kurtarma (recovery) s\u00fcrecini otomatik olarak ba\u015flatacakt\u0131r.<\/p>\n<h3>MongoDB Veritaban\u0131 Ta\u015f\u0131ma (Migration)<\/h3>\n<p>Veritaban\u0131 ta\u015f\u0131ma, mevcut bir MongoDB kurulumundaki verileri yeni bir konuma veya farkl\u0131 bir sunucuya aktarma i\u015flemidir. Bu i\u015flem, genellikle donan\u0131m y\u00fckseltmeleri, veri merkezi ge\u00e7i\u015fleri veya bulut ge\u00e7i\u015fleri gibi senaryolarda gereklidir.<\/p>\n<h4>1. Ayn\u0131 Sunucu \u00dczerinde Veri Dizinini Ta\u015f\u0131ma<\/h4>\n<p>Bazen, MongoDB&#8217;nin veri dosyalar\u0131n\u0131n depoland\u0131\u011f\u0131 dizini de\u011fi\u015ftirmek isteyebilirsiniz (\u00f6rne\u011fin, daha b\u00fcy\u00fck veya daha h\u0131zl\u0131 bir diske ta\u015f\u0131mak i\u00e7in).<\/p>\n<h5>a. Ad\u0131mlar<\/h5>\n<p>1.  <strong>MongoDB Servisini Durdurma<\/strong>: Veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in MongoDB servisini durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop mongod<\/code><\/pre>\n<p>2.  <strong>Veri Dizinini Kopyalama\/Ta\u015f\u0131ma<\/strong>: Mevcut veri dizinini yeni konuma kopyalay\u0131n. <code>rsync<\/code> komutu, dosya izinlerini ve sahipliklerini koruyarak kopyalama i\u00e7in idealdir.<\/p>\n<pre><code class=\"language-bash\">sudo rsync -avP \/var\/lib\/mongodb \/yeni\/dizin\/mongodb\n    # \/var\/lib\/mongodb MongoDB'nin varsay\u0131lan veri dizinidir.\n    # \/yeni\/dizin\/mongodb ise yeni veri dizininizin yoludur.<\/code><\/pre>\n<p>3.  <strong>Yeni Dizin \u0130zinlerini Ayarlama<\/strong>: Kopyalanan dizinin ve dosyalar\u0131n\u0131n <code>mongodb<\/code> kullan\u0131c\u0131s\u0131na ait oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R mongodb:mongodb \/yeni\/dizin\/mongodb<\/code><\/pre>\n<p>4.  <strong>MongoDB Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme<\/strong>: MongoDB yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/mongod.conf<\/code>) d\u00fczenleyerek yeni veri dizinini belirtin.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongod.conf<\/code><\/pre>\n<p>    <code>storage:<\/code> b\u00f6l\u00fcm\u00fcnde <code>dbPath:<\/code> sat\u0131r\u0131n\u0131 bulun ve yeni yolu girin:<\/p>\n<pre><code class=\"language-yaml\">storage:\n      dbPath: \/yeni\/dizin\/mongodb\n      journal:\n        enabled: true<\/code><\/pre>\n<p>5.  <strong>MongoDB Servisini Ba\u015flatma<\/strong>: De\u011fi\u015fiklikleri kaydettikten sonra MongoDB servisini ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongod<\/code><\/pre>\n<p>    Servisin ba\u015far\u0131yla ba\u015flad\u0131\u011f\u0131n\u0131 ve yeni veri dizinini kulland\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h4>2. Farkl\u0131 Bir Sunucuya Ta\u015f\u0131ma (Ubuntu 18.04&#8217;ten Ubuntu 18.04&#8217;e)<\/h4>\n<p>Veritaban\u0131n\u0131 tamamen yeni bir sunucuya ta\u015f\u0131mak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler mevcuttur. Se\u00e7im, kesinti s\u00fcresi tolerans\u0131n\u0131za ve veritaban\u0131n\u0131n boyutuna ba\u011fl\u0131d\u0131r.<\/p>\n<h5>a. <code>mongodump<\/code> ve <code>mongorestore<\/code> Kullanarak Ta\u015f\u0131ma<\/h5>\n<p>Bu y\u00f6ntem, k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli veritabanlar\u0131 i\u00e7in basit ve etkili bir \u00e7\u00f6z\u00fcmd\u00fcr, ancak ta\u015f\u0131ma s\u00fcresince bir kesinti s\u00fcresi gerektirir.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><br \/>\n1.  <strong>Kaynak Sunucuda Yedek Alma<\/strong>: Eski sunucuda <code>mongodump<\/code> kullanarak veritaban\u0131n\u0131n bir yede\u011fini al\u0131n.<\/p>\n<pre><code class=\"language-bash\"># Kaynak sunucuda\n    mongodump --out \/tmp\/mongodb_yedek_tasima<\/code><\/pre>\n<p>2.  <strong>Yede\u011fi Hedef Sunucuya Aktarma<\/strong>: Al\u0131nan yede\u011fi <code>scp<\/code> veya <code>rsync<\/code> gibi ara\u00e7lar kullanarak yeni sunucuya kopyalay\u0131n.<\/p>\n<pre><code class=\"language-bash\"># Kaynak sunucudan hedef sunucuya\n    scp -r \/tmp\/mongodb_yedek_tasima user@hedef_sunucu_ip:\/tmp\/\n    # Alternatif olarak rsync:\n    # rsync -avP \/tmp\/mongodb_yedek_tasima\/ user@hedef_sunucu_ip:\/tmp\/mongodb_yedek_tasima\/<\/code><\/pre>\n<p>3.  <strong>Hedef Sunucuda Geri Y\u00fckleme<\/strong>: Yeni sunucuda MongoDB kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmal\u0131d\u0131r. Yede\u011fi <code>mongorestore<\/code> ile geri y\u00fckleyin.<\/p>\n<pre><code class=\"language-bash\"># Hedef sunucuda\n    mongorestore \/tmp\/mongodb_yedek_tasima<\/code><\/pre>\n<p>    Geri y\u00fckleme tamamland\u0131\u011f\u0131nda, veritaban\u0131n\u0131z yeni sunucuda kullan\u0131ma haz\u0131r olacakt\u0131r.<\/p>\n<h5>b. Replica Set \u00dcyeli\u011fi ile Ta\u015f\u0131ma (Minimum Kesinti S\u00fcresi)<\/h5>\n<p>\u00dcretim ortamlar\u0131 i\u00e7in bu y\u00f6ntem, minimum kesinti s\u00fcresiyle ta\u015f\u0131ma yapman\u0131n en g\u00fcvenli ve \u00f6nerilen yoludur. Mevcut bir replica set&#8217;e yeni bir sunucu ekleyerek ve eski sunucuyu \u00e7\u0131kararak ger\u00e7ekle\u015ftirilir.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><br \/>\n1.  <strong>Yeni Sunucuya MongoDB Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/strong>: Hedef sunucuya MongoDB&#8217;yi kurun ve <code>mongod.conf<\/code> dosyas\u0131nda <code>replSet<\/code> yap\u0131land\u0131rmas\u0131n\u0131 mevcut replica set ad\u0131yla ayarlay\u0131n. Servisi ba\u015flat\u0131n ancak hen\u00fcz bir replica set&#8217;e \u00fcye olarak eklemeyin.<\/p>\n<pre><code class=\"language-yaml\"># \/etc\/mongod.conf dosyas\u0131nda\n    replication:\n      replSetName: your_replica_set_name<\/code><\/pre>\n<p>    Ard\u0131ndan MongoDB servisini ba\u015flat\u0131n: <code>sudo systemctl start mongod<\/code>.<\/p>\n<p>2.  <strong>Yeni Sunucuyu Replica Set&#8217;e Secondary \u00dcye Olarak Ekleme<\/strong>: Mevcut replica set&#8217;in primary \u00fcyesi \u00fczerinden <code>mongo<\/code> kabu\u011funa ba\u011flan\u0131n ve yeni sunucuyu ekleyin.<\/p>\n<pre><code class=\"language-bash\">mongo\n    rs.add(\"yeni_sunucu_ip:27017\")\n    rs.status() # Durumu kontrol edin<\/code><\/pre>\n<p>    Yeni \u00fcye, mevcut verileri primary&#8217;den otomatik olarak senkronize etmeye ba\u015flayacakt\u0131r. Bu i\u015flem, veritaban\u0131n\u0131n boyutuna ve a\u011f h\u0131z\u0131na ba\u011fl\u0131 olarak zaman alabilir.<\/p>\n<p>3.  <strong>Veri Senkronizasyonunu Bekleme<\/strong>: <code>rs.status()<\/code> komutunu kullanarak veya MongoDB loglar\u0131n\u0131 izleyerek yeni \u00fcyenin senkronizasyonunun tamamlanmas\u0131n\u0131 bekleyin. Yeni \u00fcyenin <code>stateStr<\/code> de\u011feri &#8220;SECONDARY&#8221; olmal\u0131d\u0131r.<\/p>\n<p>4.  <strong>Eski Sunucuyu Replica Set&#8217;ten \u00c7\u0131karma (\u0130ste\u011fe Ba\u011fl\u0131)<\/strong>: Verilerin ba\u015far\u0131yla senkronize edildi\u011finden ve yeni sunucunun stabil \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra, eski sunucuyu replica set&#8217;ten \u00e7\u0131karabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">rs.remove(\"eski_sunucu_ip:27017\")<\/code><\/pre>\n<p>5.  <strong>Gerekirse Yeni Sunucuyu Primary Yapma (Failover)<\/strong>: E\u011fer ta\u015f\u0131d\u0131\u011f\u0131n\u0131z sunucu, replica set&#8217;in tek \u00fcyesi veya primary olmas\u0131n\u0131 istedi\u011finiz bir \u00fcye ise, <code>rs.stepDown()<\/code> komutu ile mevcut primary&#8217;nin primary rol\u00fcn\u00fc b\u0131rakmas\u0131n\u0131 sa\u011flayabilir ve yeni sunucunun primary olmas\u0131n\u0131 bekleyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">rs.stepDown()<\/code><\/pre>\n<p>    Bu komut, mevcut primary&#8217;nin secondary olmas\u0131na neden olur ve replica set yeni bir primary se\u00e7er. E\u011fer yeni sunucu uygun bir aday ise, primary rol\u00fcn\u00fc \u00fcstlenebilir.<\/p>\n<h5>c. Dosya Sistemi Kopyalama ile Ta\u015f\u0131ma (\u00d6zel Durumlar)<\/h5>\n<p>Bu y\u00f6ntem, <code>mongodump<\/code>\/<code>mongorestore<\/code>&#8216;dan daha h\u0131zl\u0131 olabilir, ancak veritaban\u0131 kopyalan\u0131rken her iki sunucuda da MongoDB&#8217;nin durdurulmas\u0131n\u0131 gerektirir. Bu nedenle, genellikle daha k\u00fc\u00e7\u00fck veritabanlar\u0131 veya kesinti s\u00fcresinin kabul edilebilir oldu\u011fu test\/geli\u015ftirme ortamlar\u0131 i\u00e7in uygundur.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><br \/>\n1.  <strong>Her \u0130ki Sunucuda MongoDB&#8217;yi Durdurma<\/strong>: Kaynak ve hedef sunucularda MongoDB servisini durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop mongod<\/code><\/pre>\n<p>2.  <strong>Kaynak Sunucudan Veri Dizinini Kopyalama<\/strong>: <code>rsync<\/code> komutunu kullanarak kaynak sunucunun veri dizinini hedef sunucuya kopyalay\u0131n.<\/p>\n<pre><code class=\"language-bash\"># Kaynak sunucuda\n    sudo rsync -avP \/var\/lib\/mongodb\/ user@hedef_sunucu_ip:\/var\/lib\/mongodb\/<\/code><\/pre>\n<p>    <code>P<\/code> bayra\u011f\u0131 ilerlemeyi g\u00f6sterir, <code>a<\/code> ar\u015fivi modu (izinler, sahiplikler vb. korunur), <code>v<\/code> ise detayl\u0131 \u00e7\u0131kt\u0131d\u0131r.<\/p>\n<p>3.  <strong>Hedef Sunucuda \u0130zinleri Ayarlama<\/strong>: Kopyalanan veri dizininin ve dosyalar\u0131n\u0131n <code>mongodb<\/code> kullan\u0131c\u0131s\u0131na ait oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\"># Hedef sunucuda\n    sudo chown -R mongodb:mongodb \/var\/lib\/mongodb<\/code><\/pre>\n<p>4.  <strong>Hedef Sunucuda MongoDB&#8217;yi Ba\u015flatma<\/strong>: Veriler kopyaland\u0131ktan ve izinler ayarland\u0131ktan sonra, hedef sunucuda MongoDB servisini ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongod<\/code><\/pre>\n<p>    MongoDB, veri dosyalar\u0131n\u0131 kontrol edecek ve servisi ba\u015flatacakt\u0131r.<\/p>\n<h3>Geli\u015fmi\u015f Hususlar ve En \u0130yi Uygulamalar<\/h3>\n<p>Veritaban\u0131 yedekleme, geri y\u00fckleme ve ta\u015f\u0131ma s\u00fcre\u00e7leri sadece komut \u00e7al\u0131\u015ft\u0131rmaktan ibaret de\u011fildir. Sa\u011flam bir strateji, baz\u0131 geli\u015fmi\u015f hususlar\u0131 ve en iyi uygulamalar\u0131 da i\u00e7ermelidir.<\/p>\n<h4>1. Yedekleme Otomasyonu<\/h4>\n<p>Manuel yedeklemeler zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k olabilir. <code>cron<\/code> i\u015fleri veya otomasyon ara\u00e7lar\u0131 kullanarak d\u00fczenli yedeklemeleri otomatikle\u015ftirin. \u00d6rne\u011fin, g\u00fcnl\u00fck yedekleme ve eski yedekleri temizleme i\u00e7in bir <code>cron<\/code> i\u015fi:<\/p>\n<pre><code class=\"language-bash\"># \/etc\/cron.d\/mongodb_backup veya crontab -e ile ekle\n0 2 <em> <\/em> * mongodump --gzip --out \/yedekler\/mongodb_yedek_$(date +\\%Y\\%m\\%d\\%H\\%M\\%S) && find \/yedekler -type d -mtime +7 -exec rm -rf {} \\; > \/var\/log\/mongodb_backup.log 2>&1<\/code><\/pre>\n<p>Bu komut, her g\u00fcn saat 02:00&#8217;de s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f bir yedek al\u0131r ve 7 g\u00fcnden eski yedek dizinlerini siler. \u00c7\u0131kt\u0131 ve hatalar <code>\/var\/log\/mongodb_backup.log<\/code> dosyas\u0131na y\u00f6nlendirilir.<\/p>\n<h4>2. Yedeklerin Do\u011frulanmas\u0131<\/h4>\n<p>Bir yede\u011fin var olmas\u0131 yeterli de\u011fildir; kritik olan, o yede\u011fin ba\u015far\u0131yla geri y\u00fcklenebilir olmas\u0131d\u0131r. Yedeklerinizi d\u00fczenli olarak test ortamlar\u0131nda geri y\u00fckleyerek do\u011frulu\u011funu ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc kontrol edin. Bu, felaket kurtarma plan\u0131n\u0131z\u0131n i\u015fe yarad\u0131\u011f\u0131ndan emin olman\u0131n tek yoludur.<\/p>\n<h4>3. G\u00fcvenlik<\/h4>\n<p>Yedekleriniz de ana veritaban\u0131n\u0131z kadar hassast\u0131r. Yedekleme dizinlerine eri\u015fimi k\u0131s\u0131tlay\u0131n, yedekleri \u015fifreleyin (disk \u015fifrelemesi veya yedekleme arac\u0131 \u015fifrelemesi ile) ve hassas verileri i\u00e7eren yedekleri g\u00fcvenli bir \u015fekilde saklay\u0131n. Kimlik do\u011frulama ile yedekleme yaparken parola y\u00f6netimine dikkat edin.<\/p>\n<h4>4. Uzak Depolama<\/h4>\n<p>Yerel diskte tutulan yedekler, sunucu ar\u0131zas\u0131 veya fiziksel felaket durumunda kaybolabilir. Yedeklerinizi farkl\u0131 bir fiziksel konumdaki uzak depolama alan\u0131na (\u00f6rne\u011fin, AWS S3, Azure Blob Storage, Google Cloud Storage, NAS veya ba\u015fka bir veri merkezi) ta\u015f\u0131y\u0131n.<\/p>\n<h4>5. Replica Set Kullan\u0131m\u0131n\u0131n \u00d6nemi<\/h4>\n<p>\u00dcretim ortamlar\u0131nda, tekil (standalone) bir MongoDB sunucusu yerine her zaman bir replica set kullan\u0131n. Replica set&#8217;ler, y\u00fcksek eri\u015filebilirlik, otomatik failover ve veri yedeklili\u011fi sa\u011flar. Ayr\u0131ca, yedekleme i\u015flemlerini birincil sunucunun performans\u0131n\u0131 etkilemeden ikincil \u00fcyelerden yapma imkan\u0131 sunar.<\/p>\n<h4>6. Depolama Motoru Se\u00e7imi (WiredTiger)<\/h4>\n<p>MongoDB 3.2 ve sonraki s\u00fcr\u00fcmlerde varsay\u0131lan depolama motoru olan WiredTiger, \u00e7\u00f6kme tutarl\u0131l\u0131\u011f\u0131 (crash-consistency) ve dok\u00fcman seviyesinde kilitleme gibi \u00f6zellikler sunar. Bu, \u00f6zellikle dosya sistemi anl\u0131k g\u00f6r\u00fcnt\u00fcleri al\u0131rken veritaban\u0131n\u0131n daha tutarl\u0131 bir durumda olmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Oplog (operation log), replica set&#8217;ler i\u00e7in kritik bir bile\u015fendir ve nokta-zaman (point-in-time) kurtarma yetenekleri sa\u011flar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>MongoDB veritaban\u0131n\u0131z\u0131n yedeklenmesi, geri y\u00fcklenmesi ve ta\u015f\u0131nmas\u0131, her veri y\u00f6neticisinin ve sistem m\u00fchendisinin temel sorumluluklar\u0131ndan biridir. Ubuntu 18.04 \u00fczerinde bu i\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in <code>mongodump<\/code>, <code>mongorestore<\/code> gibi yerle\u015fik ara\u00e7lardan, dosya sistemi anl\u0131k g\u00f6r\u00fcnt\u00fclerine ve replica set&#8217;lerin geli\u015fmi\u015f \u00f6zelliklerine kadar bir\u00e7ok g\u00fc\u00e7l\u00fc y\u00f6ntem mevcuttur.<\/p>\n<p>Bu rehber, size bu y\u00f6ntemlerin nas\u0131l uygulanaca\u011f\u0131na dair kapsaml\u0131 bir yol haritas\u0131 sunmu\u015ftur. Ancak unutulmamal\u0131d\u0131r ki, en iyi yedekleme ve kurtarma stratejisi, veritaban\u0131n\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131na, i\u015f y\u00fck\u00fcn\u00fcze, b\u00fct\u00e7enize ve kesinti s\u00fcresi tolerans\u0131n\u0131za g\u00f6re \u015fekillendirilir. Yedeklerinizi d\u00fczenli olarak test etmek, otomasyonu benimsemek, g\u00fcvenli\u011fi sa\u011flamak ve yedekleri uzak bir konumda saklamak, felaket an\u0131nda veri kayb\u0131n\u0131 en aza indirmek ve i\u015f s\u00fcreklili\u011fini garantilemek i\u00e7in at\u0131lacak en \u00f6nemli ad\u0131mlard\u0131r. Sa\u011flam bir strateji ile verileriniz g\u00fcvende olacak ve i\u015finiz kesintisiz bir \u015fekilde devam edebilecektir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda","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-33942","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>MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve 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\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi\" \/>\n<meta property=\"og:description\" content=\"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-09T01:40:51+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi\",\"datePublished\":\"2025-11-09T01:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\"},\"wordCount\":3069,\"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\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\",\"name\":\"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-09T01:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve 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":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve 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\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi","og_description":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda","og_url":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-09T01:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi","datePublished":"2025-11-09T01:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/"},"wordCount":3069,"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\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/","name":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-09T01:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-veritabanini-ubuntu-18-04-uzerinde-yedekleme-geri-yukleme-ve-tasima-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MongoDB Veritaban\u0131n\u0131 Ubuntu 18.04 \u00dczerinde Yedekleme, Geri Y\u00fckleme ve 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\/33942","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=33942"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33942\/revisions"}],"predecessor-version":[{"id":33943,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33942\/revisions\/33943"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}