{"id":1322,"date":"2025-11-04T17:21:47","date_gmt":"2025-11-04T14:21:47","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/mysql-mariadb-yedekleme-stratejileri-mysqldump-mi-xtrabackup-mi-ve-point%e2%80%91in%e2%80%91time-recovery-ne-zaman\/"},"modified":"2025-11-04T17:21:47","modified_gmt":"2025-11-04T14:21:47","slug":"mysql-mariadb-yedekleme-stratejileri-mysqldump-mi-xtrabackup-mi-ve-point%e2%80%91in%e2%80%91time-recovery-ne-zaman","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/mysql-mariadb-yedekleme-stratejileri-mysqldump-mi-xtrabackup-mi-ve-point%e2%80%91in%e2%80%91time-recovery-ne-zaman\/","title":{"rendered":"MySQL\/MariaDB Yedekleme Stratejileri: mysqldump m\u0131, XtraBackup m\u0131 ve Point\u2011in\u2011Time Recovery Ne Zaman?"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><p>Bir sabah, kahvemi al\u0131p sunucu ekran\u0131na bakt\u0131\u011f\u0131mda \u015funu g\u00f6rd\u00fcm: veritaban\u0131 boyutu gece sessizce b\u00fcy\u00fcm\u00fc\u015f, sorgular da daha a\u011f\u0131r \u00e7al\u0131\u015f\u0131yor. O an, akl\u0131ma ayn\u0131 ekibin \u00f6nceki haftalarda ya\u015fad\u0131\u011f\u0131 talihsiz bir tablo silme olay\u0131 geldi. Kendi kendime, yedeklerin varl\u0131\u011f\u0131 kadar nas\u0131l al\u0131nd\u0131\u011f\u0131 ve nas\u0131l geri d\u00f6n\u00fclece\u011finin de \u00f6nemli oldu\u011funu tekrar hat\u0131rlad\u0131m. Bu yaz\u0131da sana, MySQL\/MariaDB i\u00e7in yedekleme stratejilerini; s\u0131cak ve anla\u015f\u0131l\u0131r bir dille, g\u00fcndelik ya\u015fad\u0131\u011f\u0131m\u0131z hatalar\u0131 ve kurtulu\u015f yollar\u0131n\u0131 d\u00fc\u015f\u00fcnerek anlatmak istiyorum. Hi\u00e7 ba\u015f\u0131na geldi mi, bir tabloyu yanl\u0131\u015fl\u0131kla silip saniyeler i\u00e7inde geri almak istedin ama elindeki yedek sadece geceye ait oldu\u011fu i\u00e7in \u00e7aresiz kald\u0131n?<\/p>\n<p>\u0130\u015fte tam burada iki dosttan s\u00f6z edece\u011fim: biri mant\u0131\u011f\u0131 anlatan, her \u015feyi sat\u0131rlara d\u00f6ken klasik yol; di\u011feri ise motorun i\u00e7inden bir kopya \u00e7ekip sistemi pek yormadan i\u015fini yapan \u00e7evik bir yol. \u0130lki mysqldump. Di\u011feri XtraBackup (ve MariaDB taraf\u0131nda Mariabackup). Bir de ikisinin \u00fczerine kremay\u0131 s\u00fcren, \u00e7o\u011fu zaman g\u00fcn\u00fc kurtaran bir y\u00f6ntem var: <strong>Point\u2011in\u2011Time Recovery<\/strong>, yani belirli bir zamana kadar geri d\u00f6nme. Yaz\u0131n\u0131n sonunda, hangi senaryoda hangisinin g\u00f6nl\u00fcn\u00fc alman gerekti\u011fini, pratik ipu\u00e7lar\u0131yla beraber, ger\u00e7ek hayatta i\u015fe yarayan bir strateji olarak cebine koyman\u0131 istiyorum.<\/p>\n<div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Yedek_dedigin_sadece_dosya_degildir_Once_neyi_korudugunu_bil\"><span class=\"toc_number toc_depth_1\">1<\/span> Yedek dedi\u011fin sadece dosya de\u011fildir: \u00d6nce neyi korudu\u011funu bil<\/a><\/li><li><a href=\"#mysqldump_ile_mantiksal_yedek_Basit_guvenilir_ama_sabirli_olmali\"><span class=\"toc_number toc_depth_1\">2<\/span> mysqldump ile mant\u0131ksal yedek: Basit, g\u00fcvenilir, ama sab\u0131rl\u0131 olmal\u0131<\/a><\/li><li><a href=\"#XtraBackup_ve_Mariabackup_ile_sicak_yedek_Sistem_nefes_alirken_kopyayi_almak\"><span class=\"toc_number toc_depth_1\">3<\/span> XtraBackup ve Mariabackup ile s\u0131cak yedek: Sistem nefes al\u0131rken kopyay\u0131 almak<\/a><\/li><li><a href=\"#PointinTime_Recovery_Yanlis_bir_adimi_saate_bakarak_geri_almak\"><span class=\"toc_number toc_depth_1\">4<\/span> Point\u2011in\u2011Time Recovery: Yanl\u0131\u015f bir ad\u0131m\u0131, saate bakarak geri almak<\/a><\/li><li><a href=\"#Gercek_hayatta_strateji_kurmak_Kucuk_blog_mu_yogun_magaza_mi\"><span class=\"toc_number toc_depth_1\">5<\/span> Ger\u00e7ek hayatta strateji kurmak: K\u00fc\u00e7\u00fck blog mu, yo\u011fun ma\u011faza m\u0131?<\/a><\/li><li><a href=\"#Geri_donus_provasi_kucuk_nuanslar_ve_sik_yapilan_hatalar\"><span class=\"toc_number toc_depth_1\">6<\/span> Geri d\u00f6n\u00fc\u015f provas\u0131, k\u00fc\u00e7\u00fck n\u00fcanslar ve s\u0131k yap\u0131lan hatalar<\/a><\/li><li><a href=\"#mysqldump_ve_XtraBackupi_ayni_mutfakta_bulusturmak\"><span class=\"toc_number toc_depth_1\">7<\/span> mysqldump ve XtraBackup\u2019\u0131 ayn\u0131 mutfakta bulu\u015fturmak<\/a><\/li><li><a href=\"#Otomasyon_bildirim_ve_kucuk_konforlar\"><span class=\"toc_number toc_depth_1\">8<\/span> Otomasyon, bildirim ve k\u00fc\u00e7\u00fck konforlar<\/a><\/li><li><a href=\"#Test_senaryosu_yazmak_ve_ekibe_anlatmak\"><span class=\"toc_number toc_depth_1\">9<\/span> Test senaryosu yazmak ve ekibe anlatmak<\/a><\/li><li><a href=\"#Kapanis_En_iyi_yedek_dun_gece_test_ettigin_yedektir\"><span class=\"toc_number toc_depth_1\">10<\/span> Kapan\u0131\u015f: En iyi yedek, d\u00fcn gece test etti\u011fin yedektir<\/a><\/li><\/ul><\/div>\n<h2 id='section-1'><span id=\"Yedek_dedigin_sadece_dosya_degildir_Once_neyi_korudugunu_bil\">Yedek dedi\u011fin sadece dosya de\u011fildir: \u00d6nce neyi korudu\u011funu bil<\/span><\/h2>\n<p>Baz\u0131 tak\u0131mlarda yedek, otomatik bir g\u00f6rev planlay\u0131c\u0131n\u0131n haftalard\u0131r sessizce \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131 bir komut dosyas\u0131ndan ibaret g\u00f6r\u00fcn\u00fcyor. Ama yedek dedi\u011fin, asl\u0131nda geceleri rahat uyuman\u0131 sa\u011flayan bir hik\u00e2ye. \u0130\u00e7inde tutarl\u0131l\u0131k, geri d\u00f6n\u00fc\u015f plan\u0131, eri\u015fim izinleri ve hatta pani\u011fe kap\u0131lmadan ataca\u011f\u0131n ad\u0131mlar var. Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn: k\u00fc\u00e7\u00fck bir blog i\u00e7in gece al\u0131nan tek bir tam yedek belki uzun s\u00fcre i\u015fini g\u00f6r\u00fcr. Ama canl\u0131 sipari\u015f alan bir e\u2011ticaret sitesinde ayn\u0131 yakla\u015f\u0131m, \u00f6\u011flen saatlerinde yanl\u0131\u015f bir g\u00fcncelleme yap\u0131ld\u0131\u011f\u0131nda seni eski g\u00fcne hapseder. Bu y\u00fczden yede\u011fin dosya de\u011fil, bir <strong>strateji<\/strong> oldu\u011funu ak\u0131lda tutmak gerekiyor.<\/p>\n<p>Bir ba\u015fka a\u00e7\u0131dan bakal\u0131m. Yedekleme bir sigorta poli\u00e7esine benzer, ama poli\u00e7eyi okudu\u011funu varsayars\u0131n. Oysa ger\u00e7ek hayatta, geri d\u00f6n\u00fc\u015f\u00fc denemeden hi\u00e7bir yedek tamam de\u011fildir. Yedek almay\u0131 \u00e7\u00f6zmek kadar, onu geri d\u00f6nmeyi prova etmek de gerekir. Zaman zaman bir test sunucusu kurup geriye d\u00f6nmeyi, indirdi\u011fin dosyan\u0131n ger\u00e7ekten a\u00e7\u0131ld\u0131\u011f\u0131n\u0131 ve tablolardaki verinin bekledi\u011fin gibi oldu\u011funu g\u00f6rmek, gecenin bir vakti al\u0131nacak en g\u00fczel nefes olur. Bu arada, uzak lokasyonda saklama, \u00e7oklu kopya ve otomasyon gibi pratikleri tek bir \u00e7at\u0131 alt\u0131nda anlatan \u015fu yaz\u0131ya g\u00f6z atmak fena olmaz: <a href='https:\/\/www.dchost.com\/blog\/3-2-1-yedekleme-stratejisi-neden-ise-yariyor-cpanel-plesk-ve-vpste-otomatik-yedekleri-nasil-kurarsin\/'>3\u20112\u20111 yedekleme stratejisi ve otomatik yedekler \u00fczerine s\u0131cak bir rehber<\/a>.<\/p>\n<h2 id='section-2'><span id=\"mysqldump_ile_mantiksal_yedek_Basit_guvenilir_ama_sabirli_olmali\">mysqldump ile mant\u0131ksal yedek: Basit, g\u00fcvenilir, ama sab\u0131rl\u0131 olmal\u0131<\/span><\/h2>\n<p>mysqldump, veritaban\u0131n\u0131 sat\u0131r sat\u0131r okur ve bunu tekrar i\u00e7eri aktarabilece\u011fin bir dosyaya d\u00f6ker. Bunu, bir k\u00fct\u00fcphanedeki t\u00fcm kitaplar\u0131n \u00f6zetini yaz\u0131p g\u00fcvenli bir \u00e7ekmeceye koymak gibi d\u00fc\u015f\u00fcnebilirsin. K\u00fc\u00e7\u00fck ve orta boy veritabanlar\u0131nda, \u00f6zellikle \u015fema de\u011fi\u015fiklikleri s\u0131k oluyorsa ve tablo yap\u0131s\u0131n\u0131 da beraberinde ta\u015f\u0131mak istiyorsan ger\u00e7ekten pratik olur. Aktarmas\u0131 kolayd\u0131r; yeni bir ortama ta\u015f\u0131rken de rahat ettirir. \u00c7\u00fcnk\u00fc i\u00e7eride ne varsa, metin d\u00fcnyas\u0131nda anla\u015f\u0131l\u0131r bir dile d\u00f6nm\u00fc\u015ft\u00fcr.<\/p>\n<p>Bir \u00f6rnekle ak\u0131lda kals\u0131n. InnoDB kullanan bir veritaban\u0131nda servis kesmeden daha tutarl\u0131 bir mant\u0131ksal yedek almak i\u00e7in tek oturumluk bir yakla\u015f\u0131m i\u015f g\u00f6r\u00fcr. Pek \u00e7ok ki\u015finin i\u015fine yarayan bir komut \u015f\u00f6yle bir g\u00f6vdeye benzer: mysqldump &#8211;single-transaction &#8211;routines &#8211;triggers &#8211;events &#8211;hex-blob &#8211;default-character-set=utf8mb4. Burada hedef, yede\u011fin tutarl\u0131 olmas\u0131 ve d\u00f6nd\u00fc\u011f\u00fcnde s\u00fcrpriz ya\u015famamakt\u0131r. \u00d6zellikle tek oturum kullanmak, i\u015flem yap\u0131lan tablolarda kilitlenme ya\u015fatmadan o an\u0131n tutarl\u0131 bir anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc yazd\u0131rmana yard\u0131mc\u0131 olur. Elbette her ortam\u0131n k\u00fc\u00e7\u00fck ayarlar\u0131 olur, ama iskelet bu y\u00f6ndedir.<\/p>\n<p>mysqldump ile geri d\u00f6nmek de genelde rahatt\u0131r. Dosyay\u0131 i\u00e7eri okutursun, \u015fema olu\u015fur, veriler akar ve bir s\u00fcre sonra sistem aya\u011fa kalkar. Ama burada kabul etmemiz gereken bir ger\u00e7ek var: dosya b\u00fcy\u00fcd\u00fck\u00e7e, bu ak\u0131\u015f yava\u015flar. Yedek alma s\u00fcresi uzayabilir, geri d\u00f6n\u00fc\u015f de bekledi\u011finden uzun s\u00fcrebilir. B\u00f6yle zamanlarda, canl\u0131 trafi\u011fi \u00e7ok etkiliyorsa pencere belirlemek, replikaya ba\u011flan\u0131p oradan almak veya dilimleyerek yedeklemek gibi k\u00fc\u00e7\u00fck \u00e7\u00f6z\u00fcmler devreye girer. Yani mysqldump seni kolayl\u0131ktan yana mutlu eder, ama b\u00fcy\u00fcd\u00fck\u00e7e sab\u0131r ister.<\/p>\n<h2 id='section-3'><span id=\"XtraBackup_ve_Mariabackup_ile_sicak_yedek_Sistem_nefes_alirken_kopyayi_almak\">XtraBackup ve Mariabackup ile s\u0131cak yedek: Sistem nefes al\u0131rken kopyay\u0131 almak<\/span><\/h2>\n<p>Bir de i\u015fin fiziksel taraf\u0131 var. XtraBackup (ve MariaDB d\u00fcnyas\u0131nda Mariabackup), veritaban\u0131n\u0131 dosya seviyesinde kopyalar. Bu yakla\u015f\u0131m, \u00e7al\u0131\u015fan motorun i\u00e7inden ge\u00e7ip veri dosyalar\u0131n\u0131 al\u0131rken, sistemi m\u00fcmk\u00fcn oldu\u011funca kilitlemez. Canl\u0131 bir ma\u011fazada raflar\u0131 sayarken m\u00fc\u015fterileri i\u00e7eri almaya devam etmek gibidir; i\u015fler akarken arka tarafta say\u0131m yap\u0131l\u0131r. B\u00fcy\u00fck verilerde, k\u0131s\u0131tl\u0131 bak\u0131m pencerelerinde ve d\u00fc\u015f\u00fck gecikmenin kritik oldu\u011fu ortamlarda nefes ald\u0131r\u0131r.<\/p>\n<p>Buradaki sihir, haz\u0131rl\u0131k ad\u0131mlar\u0131nda gizlidir. \u0130lk al\u0131nan tam yedekten sonra art\u0131ml\u0131 yedeklerle aray\u0131 doldurmak m\u00fcmk\u00fcnd\u00fcr, b\u00f6ylece her seferinde t\u00fcm ma\u011fazay\u0131 ba\u015ftan saymazs\u0131n. Yedekten geri d\u00f6nerken, \u00f6nce ald\u0131\u011f\u0131n kopyay\u0131 haz\u0131rlars\u0131n; \u00fczerinde k\u00fc\u00e7\u00fck bir d\u00fczeltme yap\u0131l\u0131r ve tutarl\u0131 hale getirilir. Bu haz\u0131rl\u0131k, geri d\u00f6n\u00fc\u015fe giden k\u00f6pr\u00fcd\u00fcr. Sonra verileri hedef dizine yerle\u015ftirir, sunucuyu a\u00e7ars\u0131n. B\u00fcy\u00fck verilerde bile, sistemin nefesini \u00e7ok kesmeden bu yol rahatlat\u0131r. Hangi ana hatlar\u0131n ge\u00e7erli oldu\u011funu g\u00f6rmek istersen, <a href=\"https:\/\/www.percona.com\/doc\/percona-xtrabackup\/LATEST\/index.html\" rel=\"nofollow noopener\" target=\"_blank\">Percona XtraBackup belgeleri<\/a> k\u0131sa s\u00fcrede y\u00f6n\u00fcn\u00fc bulmana yard\u0131m eder.<\/p>\n<p>\u015eu ayr\u0131m\u0131 da ak\u0131lda tutmak iyi olur. XtraBackup, MySQL ve Percona Server d\u00fcnyas\u0131nda do\u011fal vatanda\u015f gibidir. MariaDB taraf\u0131nda ise benzer mant\u0131\u011f\u0131 ta\u015f\u0131yan Mariabackup kullan\u0131l\u0131r. \u0130kisi de ayn\u0131 aileden gelen, farkl\u0131 mutfaklara uyarlanm\u0131\u015f usuller gibi d\u00fc\u015f\u00fcn\u00fclebilir. MariaDB\u2019ye \u00f6zel detaylar\u0131 merak edersen, <a href=\"https:\/\/mariadb.com\/kb\/en\/mariabackup\/\" rel=\"nofollow noopener\" target=\"_blank\">MariaDB\u2019nin Mariabackup sayfas\u0131<\/a> seni bekliyor. \u00d6zetle, canl\u0131da zorlama yaratmadan kopya almak istiyorsan ve veri boyutu b\u00fcy\u00fcd\u00fcyse, bu s\u0131cak yedek yakla\u015f\u0131m\u0131 g\u00fcn\u00fcn\u00fc g\u00fczelle\u015ftirir. Ama ilk kez kullan\u0131yorsan, k\u00fc\u00e7\u00fck bir test ortam\u0131nda prova yapmak moralini y\u00fckseltir.<\/p>\n<h2 id='section-4'><span id=\"PointinTime_Recovery_Yanlis_bir_adimi_saate_bakarak_geri_almak\">Point\u2011in\u2011Time Recovery: Yanl\u0131\u015f bir ad\u0131m\u0131, saate bakarak geri almak<\/span><\/h2>\n<p>Gelelim hepimizin i\u00e7ini ferahlatan, ama i\u015f ba\u015fa gelmeden pek kurulmaya yana\u015fmad\u0131\u011f\u0131m\u0131z o g\u00fczel y\u00f6nteme: <strong>Point\u2011in\u2011Time Recovery<\/strong>. Bunu g\u00fcndelik bir \u00f6rnekle anlatay\u0131m. Diyelim ki sabah 09:00\u2019da eksiksiz bir tam yede\u011fin var. 12:37\u2019de de bir arkada\u015f\u0131n, sipari\u015f tablosunda istemeden bir silme yapt\u0131. E\u011fer veritaban\u0131 de\u011fi\u015fikliklerini ad\u0131m ad\u0131m kaydeden g\u00fcnl\u00fckler (binary log) a\u00e7\u0131ksa, 12:37\u2019ye kadar olan t\u00fcm iyi hareketleri, 12:36:59\u2019a dek \u00e7al\u0131nan bir kaset gibi geri oynatabilirsin. Bu sayede, sabah\u0131n huzurunu \u00f6\u011flene ta\u015f\u0131m\u0131\u015f olursun.<\/p>\n<p>Ad\u0131mlar\u0131n ruhu basit. \u00d6nce g\u00fcnl\u00fck kayd\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olursun ki her de\u011fi\u015fim kayda ge\u00e7sin. Sonra d\u00fczenli bir tam yedek al\u0131rs\u0131n; ister mysqldump ile mant\u0131ksal, ister XtraBackup\/Mariabackup ile fiziksel. Bir sorun ya\u015fand\u0131\u011f\u0131nda, \u00f6nce o tam yede\u011fi geri y\u00fcklersin. Ard\u0131ndan g\u00fcnl\u00fck dosyalar\u0131n\u0131 s\u0131rayla i\u015fleyip belirledi\u011fin zamana kadar olan de\u011fi\u015fiklikleri uygulayarak sistemi o ana getirirsin. Saat bilgisini ya da belirli bir i\u015flem numaras\u0131n\u0131 baz almak m\u00fcmk\u00fcn. Bu ak\u0131\u015f\u0131n ana hatlar\u0131, <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/point-in-time-recovery.html\" rel=\"nofollow noopener\" target=\"_blank\">MySQL rehberindeki zaman noktas\u0131na kadar kurtarma anlat\u0131m\u0131nda<\/a> da \u00e7ok net durur.<\/p>\n<p>Pratikte, saati ve olay\u0131 iyi yakalamak \u00f6nemlidir. Olay\u0131n ne zaman ger\u00e7ekle\u015fti\u011fini loglardan, uygulama hatalar\u0131ndan veya ekip arkada\u015f\u0131n\u0131n att\u0131\u011f\u0131 mesajdan \u00f6\u011frenirsin. Birka\u00e7 dakikal\u0131k tampon pay b\u0131rakmak \u00e7o\u011fu zaman i\u015fe yarar; yani 12:37\u2019de hata olduysa 12:36\u2019ya kadar geri almak daha g\u00fcvenlidir. Mant\u0131ksal yedekle geri d\u00f6n\u00fc\u015fte g\u00fcnl\u00fckleri oynatmak, dosyalar\u0131 i\u00e7eri okurken komutun ucuna \u2018\u015fu zamana kadar uygula\u2019 demen gibidir. Fiziksel yedekte ise sistem aya\u011fa kalkt\u0131ktan sonra g\u00fcnl\u00fckleri betiklerle s\u0131raya koyup uygulars\u0131n. \u0130kisi de ayn\u0131 fikri payla\u015f\u0131r: iyi olan\u0131 tut, hataya gelmeden dur.<\/p>\n<h2 id='section-5'><span id=\"Gercek_hayatta_strateji_kurmak_Kucuk_blog_mu_yogun_magaza_mi\">Ger\u00e7ek hayatta strateji kurmak: K\u00fc\u00e7\u00fck blog mu, yo\u011fun ma\u011faza m\u0131?<\/span><\/h2>\n<p>Yedek stratejisini masa ba\u015f\u0131nda de\u011fil, aya\u011fa kalk\u0131p sistemi izlerken kurmak gerekir. Mesela k\u00fc\u00e7\u00fck bir blogun varsa ve i\u00e7erik g\u00fcnde bir iki kez de\u011fi\u015fiyorsa, gece al\u0131nan tek bir mant\u0131ksal tam yedek, \u00fcst\u00fcne de g\u00fcnl\u00fcklerin a\u00e7\u0131k olmas\u0131 \u00e7o\u011fu zaman yeter. B\u00f6ylece bir yanl\u0131\u015fl\u0131k olursa, sabah yede\u011fine d\u00f6ner, g\u00fcnl\u00fckleri hataya gelmeden \u00f6nceki ana kadar uygulars\u0131n. Bu yakla\u015f\u0131m d\u00fc\u015f\u00fck maliyetli, basit ve anla\u015f\u0131l\u0131rd\u0131r. Hatta yeni bir sunucuya ge\u00e7erken ayn\u0131 dosyay\u0131 kullanarak ta\u015f\u0131may\u0131 da kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Yo\u011fun bir e\u2011ticaret ma\u011fazas\u0131 i\u00e7in i\u015fin tad\u0131 biraz de\u011fi\u015fir. Canl\u0131 sistemde kap\u0131ya kilit vurmak istemezsin. Burada fiziksel tam yedekle i\u015fe ba\u015flamak, g\u00fcn i\u00e7inde art\u0131ml\u0131 yedeklerle devam etmek, g\u00fcnl\u00fckleri a\u00e7\u0131k tutmak ve ak\u015fam saatlerinde k\u0131sa prova geri d\u00f6n\u00fc\u015fleri yapmak i\u00e7i rahatlat\u0131r. Bu ak\u0131\u015fla, kap\u0131 hi\u00e7 kapanmadan raflar\u0131 sayars\u0131n; hata oldu\u011funda da elindeki g\u00fcnl\u00fckleri oynatarak en az veri kayb\u0131yla g\u00fcn\u00fc kurtar\u0131rs\u0131n. Bazen sadece veri de\u011fil, \u015feman\u0131n de\u011fi\u015fti\u011fi anlar da olur; versiyonlamay\u0131 ciddiye almak, yedekle beraber \u015fema de\u011fi\u015fikliklerini takip etmek, ileride kafan\u0131 a\u011fr\u0131tmaz.<\/p>\n<p>Baz\u0131 tak\u0131mlar i\u00e7in geri d\u00f6n\u00fc\u015f s\u00fcresi kadar, kaybedilebilecek veri miktar\u0131 da kritik bir \u00f6l\u00e7\u00fcd\u00fcr. Basit\u00e7e s\u00f6ylemek gerekirse, sistemin ne kadar s\u00fcre kapal\u0131 kalabilece\u011fini ve en fazla ne kadar verinin kaybolmas\u0131na raz\u0131 oldu\u011funu netle\u015ftirmek gerekir. Bu iki cevab\u0131 ald\u0131ktan sonra plan netle\u015fir. Kapanma s\u00fcresi d\u00fc\u015f\u00fck, veri kayb\u0131 kabul\u00fc minimumsa, s\u0131cak yedek ve s\u0131k art\u0131ml\u0131 kopyalarla g\u00fcnl\u00fcklerin g\u00fcc\u00fcnden yararlan\u0131rs\u0131n. Kapanma s\u00fcresi sorun de\u011filse, mant\u0131ksal yolun sadeli\u011fi ve ta\u015f\u0131nabilirli\u011fi seni mutlu eder.<\/p>\n<h2 id='section-6'><span id=\"Geri_donus_provasi_kucuk_nuanslar_ve_sik_yapilan_hatalar\">Geri d\u00f6n\u00fc\u015f provas\u0131, k\u00fc\u00e7\u00fck n\u00fcanslar ve s\u0131k yap\u0131lan hatalar<\/span><\/h2>\n<p>\u0130\u015fin en \u00e7ok atlanan yeri, prova. Bir test sunucusu a\u00e7\u0131p, elindeki yede\u011fi geri d\u00f6nmek ve uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmek kadar rahatlatan az \u015fey var. Dosyalar sa\u011flam m\u0131, karakter setleri yerli yerinde mi, tablolar ve ili\u015fkiler bekledi\u011fin gibi mi, hepsini bu provada g\u00f6r\u00fcrs\u00fcn. Mant\u0131ksal yedekte, prosed\u00fcrler, tetikleyiciler ve zamanlanm\u0131\u015f g\u00f6revler i\u00e7in uygun bayraklar\u0131 eklemeyi unutmamak gerekir; aksi halde geri d\u00f6n\u00fc\u015fte bir \u015feylerin eksik oldu\u011funu fark etmek moral bozabilir. Fiziksel yedekte ise haz\u0131rl\u0131k ad\u0131m\u0131n\u0131 (apply\/prepare) atlamamak, dosyalar\u0131n tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flaman\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>Bir ba\u015fka n\u00fcans, eri\u015fim izinleri ve kullan\u0131c\u0131 haklar\u0131. Baz\u0131 ortamlarda kullan\u0131c\u0131 ve yetkiler ayr\u0131 yerde saklanabilir ya da beklenmedik \u015fekilde geri d\u00f6n\u00fc\u015fte \u00e7\u0131plak kalabilir. Bu y\u00fczden s\u0131k s\u0131k \u015funu yapar\u0131m: yede\u011fin i\u00e7ine bu bilgileri de dahil edecek k\u00fc\u00e7\u00fck bir dokunu\u015f eklerim, ya da en az\u0131ndan geri d\u00f6n\u00fc\u015f senaryosunda bu haklar\u0131n nas\u0131l yeniden tesis edilece\u011fini not ederim. Geri d\u00f6n\u00fc\u015f betiklerinin ba\u015f\u0131na k\u00fc\u00e7\u00fck hat\u0131rlatmalar eklemek, panik an\u0131nda b\u00fcy\u00fck savunmad\u0131r.<\/p>\n<p>Versiyon uyumu da sessiz ama etkili bir konu. Yedek ald\u0131\u011f\u0131n s\u00fcr\u00fcmle geri d\u00f6nd\u00fc\u011f\u00fcn s\u00fcr\u00fcm\u00fcn \u00e7ok farkl\u0131 olmamas\u0131 i\u015fleri kolayla\u015ft\u0131r\u0131r. \u00d6zellikle b\u00fcy\u00fck s\u00fcr\u00fcm ge\u00e7i\u015flerinde, \u00f6nce test ortam\u0131nda denemek ve yeni s\u00fcr\u00fcm\u00fcn beklentilerini g\u00f6rmek, geri d\u00f6n\u00fc\u015f\u00fc ak\u0131\u015fkan hale getirir. MariaDB ve MySQL\u2019in baz\u0131 konularda ayr\u0131 yollara gitti\u011fi anlar olabilir; bu y\u00fczden belgelere bir g\u00f6z atmak, bo\u015fluklar\u0131 doldurur. K\u00fc\u00e7\u00fck notlar, b\u00fcy\u00fck panikleri \u00f6nler.<\/p>\n<p>G\u00fcnl\u00fcklerin saklama s\u00fcresi de bir ba\u015fka denge i\u015fidir. \u00c7ok k\u0131sa tutarsan, hataya kadar geri oynatma \u015fans\u0131n\u0131 kaybedebilirsin. \u00c7ok uzun tutarsan, depolama plan\u0131n zorlan\u0131r. \u0130yi bir orta yol bulmak i\u00e7in sistemin de\u011fi\u015fim h\u0131z\u0131na bakar\u0131m; yo\u011fun sistemde daha s\u0131k art\u0131mla desteklerim ve g\u00fcnl\u00fck saklamay\u0131 birka\u00e7 ad\u0131m geriden ama ula\u015f\u0131labilir tutar\u0131m. B\u00f6ylece felakete d\u00f6n\u00fc\u015fmeden \u00f6nce \u00e7o\u011fu hatay\u0131, belirli bir zamana d\u00f6n\u00fcp telafi etmek m\u00fcmk\u00fcn olur.<\/p>\n<h2 id='section-7'><span id=\"mysqldump_ve_XtraBackupi_ayni_mutfakta_bulusturmak\">mysqldump ve XtraBackup\u2019\u0131 ayn\u0131 mutfakta bulu\u015fturmak<\/span><\/h2>\n<p>Baz\u0131 ekipler, tek bir y\u00f6nteme ba\u011flanmak yerine ikisini birlikte kullanmay\u0131 tercih ediyor. Mant\u0131ksal yedek, ta\u015f\u0131nabilirlik ve okunabilirlik sa\u011flarken; fiziksel yedek, canl\u0131y\u0131 zorlamadan b\u00fcy\u00fck verileri g\u00fcvene al\u0131yor. \u0130kisini ayn\u0131 takvimde bulu\u015fturdu\u011funda, mesela haftada bir fiziksel tam yedek, aralara art\u0131ml\u0131lar ve her gece mant\u0131ksal bir paket koydu\u011funda, hem h\u0131zdan hem esneklikten pay alm\u0131\u015f olursun. \u00dczerine g\u00fcnl\u00fckleri a\u00e7\u0131k tutmak da, zamana kadar geri d\u00f6n\u00fc\u015f\u00fc garantiler.<\/p>\n<p>Burada k\u00fc\u00e7\u00fck bir an\u0131m\u0131 payla\u015fay\u0131m. Bir projede, ay\u0131n ilk g\u00fcn\u00fc fiziksel tam yedek al\u0131yorduk. Her gece mant\u0131ksal paket yarat\u0131p ar\u015fivliyorduk. G\u00fcn boyunca art\u0131ml\u0131 fiziksel kopyalarla aray\u0131 dolduruyor, g\u00fcnl\u00fckleri de ayr\u0131 bir kasaya koyuyorduk. Bir g\u00fcn \u00f6\u011fleden sonra bir toplu g\u00fcncelleme hatas\u0131 oldu. Takvimdeki en yak\u0131n fiziksel kopyaya d\u00f6n\u00fcp g\u00fcnl\u00fckleri oynatarak hatay\u0131 a\u015ft\u0131k; ama i\u015fin as\u0131l ho\u015f yan\u0131, ba\u015fka bir analizin gerektirdi\u011fi ufak bir tabloyu da mant\u0131ksal dosyadan h\u0131zl\u0131ca \u00e7ekip \u00e7\u0131karmam\u0131z oldu. \u0130ki y\u00f6ntemin bir arada \u00e7al\u0131\u015fmas\u0131, o g\u00fcn bize hem h\u0131z\u0131 hem esnekli\u011fi verdi.<\/p>\n<h2 id='section-8'><span id=\"Otomasyon_bildirim_ve_kucuk_konforlar\">Otomasyon, bildirim ve k\u00fc\u00e7\u00fck konforlar<\/span><\/h2>\n<p>Yedek \u00e7al\u0131\u015fan bir maraton ise, otomasyon onun d\u00fczenli nefesidir. Zamanlanm\u0131\u015f g\u00f6revler, basit betikler ve k\u00fc\u00e7\u00fck denetimler, her g\u00fcn ayn\u0131 ritmi tutturmana yard\u0131m eder. Ben \u00e7o\u011fu zaman yedek i\u015finin sonunda k\u00fc\u00e7\u00fck bir kontrol yapt\u0131r\u0131r\u0131m: dosya boyutu makul m\u00fc, kontrol toplam\u0131 do\u011fru mu, dizine d\u00fc\u015fen dosya say\u0131s\u0131 beklenen kadar m\u0131? Varsa bir sorun, bildirim kanal\u0131na k\u0131sa bir not d\u00fc\u015fer. K\u00fc\u00e7\u00fck bildirimler, b\u00fcy\u00fck aksakl\u0131klar\u0131 b\u00fcy\u00fcmeden yakalar.<\/p>\n<p>\u015eifreleme ve uzak kopya, g\u00f6z ard\u0131 edilmemeli. Yedek, i\u00e7indeki verinin mahremiyetini s\u0131rt\u0131nda ta\u015f\u0131r. Depoya giderken ve depoda dururken \u015fifreli olmas\u0131, i\u015fin vicdan\u0131 gibidir. Uzak kopya ise tek seferde hepsini kaybetmeme sigortas\u0131d\u0131r. Bir de a\u011f i\u00e7inde s\u0131k\u0131\u015ft\u0131rma ve bant geni\u015fli\u011fi verimlili\u011fini d\u00fc\u015f\u00fcnmek, \u00f6zellikle art\u0131ml\u0131 kopyalarda rahatlat\u0131c\u0131 olur. K\u00fc\u00e7\u00fck ayarlar, g\u00fcn\u00fcn sonunda b\u00fcy\u00fck zaman kazand\u0131r\u0131r.<\/p>\n<h2 id='section-9'><span id=\"Test_senaryosu_yazmak_ve_ekibe_anlatmak\">Test senaryosu yazmak ve ekibe anlatmak<\/span><\/h2>\n<p>Geri d\u00f6n\u00fc\u015f senaryosunun bir sayfal\u0131k k\u0131sa bir ak\u0131\u015f \u015femas\u0131, ekipte bir \u00e7arpan etkisi yarat\u0131r. Bir arkada\u015f\u0131n izindeyken de s\u00fcre\u00e7 aksamaz. \u015e\u00f6yle bir ak\u0131\u015f d\u00fc\u015f\u00fcn: \u00f6nce hangi yede\u011fe d\u00f6n\u00fclece\u011fi kararla\u015ft\u0131r\u0131l\u0131r, ortam haz\u0131rlan\u0131r, yedek geri y\u00fcklenir, g\u00fcnl\u00fckler belirlenen ana kadar uygulan\u0131r ve uygulama \u00fczerinden basit bir sa\u011fl\u0131k kontrol\u00fc yap\u0131l\u0131r. Bu ak\u0131\u015f ad\u0131m ad\u0131m yaz\u0131l\u0131p payla\u015f\u0131ld\u0131\u011f\u0131nda, pani\u011fi cebinden \u00e7\u0131kar\u0131p masan\u0131n \u00fcst\u00fcne koyars\u0131n; herkes g\u00f6r\u00fcr, herkes ayn\u0131 sayfada olur.<\/p>\n<p>Bu t\u00fcr ak\u0131\u015flar\u0131 anlat\u0131rken benzer konulara da denk geliriz. Mesela i\u00e7erik da\u011f\u0131t\u0131m\u0131 yapan sitelerde, \u00f6nbellek katman\u0131 ve kenar ayarlar\u0131 olay\u0131 h\u0131zla etkiler. Yedekten d\u00f6n\u00fcnce \u00f6nbelle\u011fi bo\u015faltmak m\u0131 gerekir, yoksa belirli sayfalar\u0131 g\u00fcncellemek mi? Bu tip yan sorular\u0131 da ak\u0131\u015f\u0131n sonlar\u0131na k\u00fc\u00e7\u00fck notlarla eklemek, geri d\u00f6n\u00fc\u015f\u00fcn ard\u0131ndan \u201cher \u015fey yolunda m\u0131\u201d sorusunu h\u0131zl\u0131 cevaplamana yard\u0131m eder.<\/p>\n<h2 id='section-10'><span id=\"Kapanis_En_iyi_yedek_dun_gece_test_ettigin_yedektir\">Kapan\u0131\u015f: En iyi yedek, d\u00fcn gece test etti\u011fin yedektir<\/span><\/h2>\n<p>Bu yolculu\u011fu toplarken, akl\u0131mda tek bir c\u00fcmle kal\u0131yor: en iyi yedek, d\u00fcn gece test etti\u011fin yedektir. mysqldump sana sadelik ve ta\u015f\u0131nabilirlik sunar; k\u00fc\u00e7\u00fck ve orta boy verilerde h\u0131zl\u0131ca nefes ald\u0131r\u0131r. XtraBackup ve Mariabackup ise canl\u0131 sistemdeki y\u00fck\u00fc art\u0131rmadan b\u00fcy\u00fck verileri g\u00fcvenceye al\u0131r; art\u0131ml\u0131 yakla\u015f\u0131mla g\u00fcn i\u00e7inde s\u00fcrekli g\u00fcvende kal\u0131rs\u0131n. \u00dczerine <strong>Point\u2011in\u2011Time Recovery<\/strong> ekledi\u011finde, hatay\u0131 saatine bakarak geri al\u0131rs\u0131n. Hepsini bir araya getirince, dosyalar\u0131n de\u011fil, plan\u0131n g\u00fcvende oldu\u011funu hissedersin.<\/p>\n<p>Pratik \u00f6nerilerle bitireyim. G\u00fcnl\u00fckleri a\u00e7\u0131k tut, d\u00fczenli tam yedek al, aralara art\u0131ml\u0131 kopyalar serpi\u015ftir, k\u00fc\u00e7\u00fck bir test ortam\u0131nda geri d\u00f6n\u00fc\u015f\u00fc ayda en az bir kez prova et. Yedekleri \u015fifrele, uzak bir kasada sakla, bildirim ve kontrol ad\u0131mlar\u0131 ekle. Ve en \u00f6nemlisi, ekibe bu hik\u00e2yeyi anlat; \u00e7\u00fcnk\u00fc bir ak\u015fam arand\u0131\u011f\u0131nda, telefondaki ses yaln\u0131z sen olmayabilirsin. Umar\u0131m bu yaz\u0131, yar\u0131n sabah kahveni biraz daha sakin yudumlamana yard\u0131m eder. Bir dahaki yaz\u0131da g\u00f6r\u00fc\u015fmek \u00fczere.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Bir sabah, kahvemi al\u0131p sunucu ekran\u0131na bakt\u0131\u011f\u0131mda \u015funu g\u00f6rd\u00fcm: veritaban\u0131 boyutu gece sessizce b\u00fcy\u00fcm\u00fc\u015f, sorgular da daha a\u011f\u0131r \u00e7al\u0131\u015f\u0131yor. O an, akl\u0131ma ayn\u0131 ekibin \u00f6nceki haftalarda ya\u015fad\u0131\u011f\u0131 talihsiz bir tablo silme olay\u0131 geldi. Kendi kendime, yedeklerin varl\u0131\u011f\u0131 kadar nas\u0131l al\u0131nd\u0131\u011f\u0131 ve nas\u0131l geri d\u00f6n\u00fclece\u011finin de \u00f6nemli oldu\u011funu tekrar hat\u0131rlad\u0131m. Bu yaz\u0131da sana, MySQL\/MariaDB i\u00e7in yedekleme [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1323,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1322","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1322"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1322\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1323"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}