{"id":3,"date":"2024-11-21T10:00:00","date_gmt":"2024-11-21T07:00:00","guid":{"rendered":"https:\/\/www.hasangultekin.com\/2024\/11\/21\/backup-restore-drills-for-small-teams\/"},"modified":"2024-11-21T10:00:00","modified_gmt":"2024-11-21T07:00:00","slug":"backup-restore-drills-for-small-teams","status":"publish","type":"post","link":"https:\/\/www.hasangultekin.com\/tr\/2024\/11\/21\/backup-restore-drills-for-small-teams\/","title":{"rendered":"Bir yedekleme, ancak geri y\u00fckleme ba\u015far\u0131l\u0131 olursa i\u015fe yarar"},"content":{"rendered":"<p>Ba\u015far\u0131l\u0131 bir yedekleme i\u015flemi, bir i\u015flemin tamamland\u0131\u011f\u0131n\u0131 g\u00f6sterir. Ancak uygulaman\u0131n kurtar\u0131labilir olup olmad\u0131\u011f\u0131n\u0131 g\u00f6stermez. Bu fark, as\u0131l sunucu eri\u015filemez hale geldi\u011finde ve \u015fifreleme anahtar\u0131n\u0131n nerede sakland\u0131\u011f\u0131n\u0131 kimse hat\u0131rlamad\u0131\u011f\u0131nda ac\u0131 bir \u015fekilde ortaya \u00e7\u0131kar.<\/p>\n<p>K\u00fc\u00e7\u00fck bir ekip i\u00e7in, ba\u015fka bir m\u00fchendisin bask\u0131 alt\u0131nda bile uygulayabilece\u011fi bir kurtarma plan\u0131 istiyorum. Plan, i\u015flemlerin s\u0131ras\u0131n\u0131 ve uygulaman\u0131n tekrar kullan\u0131labilir hale geldi\u011fini belirlemek i\u00e7in gerekli kan\u0131tlar\u0131 a\u00e7\u0131klamal\u0131d\u0131r.<\/p>\n<h2>\u0130ki i\u015f sorusuyla ba\u015flay\u0131n<\/h2>\n<p>\u0130\u015fletme, son d\u00f6nemde toplanan verilerin ne kadar\u0131n\u0131 kaybetmeyi g\u00f6ze alabilir ve hizmet ne kadar s\u00fcreyle kullan\u0131lamaz durumda kalabilir? Bu sorular\u0131n yan\u0131tlar\u0131, kurtarma noktas\u0131 ve kurtarma s\u00fcresi hedeflerini belirler. Bu hedefler, uygulamaya ba\u011f\u0131ml\u0131 olan ki\u015filerle mutab\u0131k kal\u0131nmal\u0131d\u0131r.<\/p>\n<p>G\u00fcnl\u00fck bir veritaban\u0131 kopyalamas\u0131, kurum i\u00e7i bir raporlama arac\u0131 i\u00e7in uygun olabilirken, yo\u011fun bir sipari\u015f sistemi i\u00e7in kabul edilemez olabilir. Benzer \u015fekilde, geri y\u00fcklemesi saatler s\u00fcren bir yedekleme, teknik a\u00e7\u0131dan ge\u00e7erli olsa da i\u015f gereksinimlerini kar\u015f\u0131layamayabilir.<\/p>\n<p>Hedefin temelini olu\u015fturan varsay\u0131mlar\u0131 not al\u0131yorum: veri hacmi, mevcut altyap\u0131, operat\u00f6re eri\u015fim ve kurtarma i\u015fleminin ayn\u0131 sa\u011flay\u0131c\u0131da ger\u00e7ekle\u015ftirilip ger\u00e7ekle\u015ftirilmeyece\u011fi. Orijinal sunucunun \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu varsayan bir kurtarma tahmini, s\u00f6z konusu sunucu ar\u0131zal\u0131 bile\u015fen oldu\u011funda bir anlam ifade etmez.<\/p>\n<h2>Veritaban\u0131n\u0131n ba\u011fl\u0131 oldu\u011fu her \u015feyi listeleyin<\/h2>\n<p>Uygulaman\u0131n kurtar\u0131lmas\u0131 i\u00e7in genellikle tablolar\u0131n \u00f6tesinde unsurlar gerekir. Y\u00fcklenen dosyalar, \u015fifreleme anahtarlar\u0131, yap\u0131land\u0131rma, \u015fema ge\u00e7i\u015fleri, kimlik ayarlar\u0131 ve da\u011f\u0131t\u0131m \u00f6\u011feleri, geri y\u00fcklenen verilerin yorumlanmas\u0131 veya kullan\u0131lmas\u0131 i\u00e7in gerekli olabilir.<\/p>\n<p>S\u0131rlar\u0131 s\u0131radan uygulama dosyalar\u0131ndan ayr\u0131 tutuyorum, ancak kurtarma prosed\u00fcr\u00fc i\u00e7in yine de bunlar\u0131 geri alabilmenin yetkili bir yoluna ihtiya\u00e7 var. \u201cAnahtarlar\u0131n g\u00fcvenli olmas\u0131\u201d ile \u201canahtarlar\u0131n kurtar\u0131labilir olmas\u0131\u201d birbirinden ayr\u0131 \u00f6zelliklerdir.<\/p>\n<p>Envanterde, harici \u00f6deme durumu gibi yedeklemeye dahil edilmeyen ba\u011f\u0131ml\u0131l\u0131klar da kaydedilmelidir. Kurtarma i\u015fleminden sonra, uygulaman\u0131n her iki sistemin de ayn\u0131 anda durdu\u011funu varsaymak yerine, yerel kay\u0131tlar\u0131n\u0131 bir sa\u011flay\u0131c\u0131yla kar\u015f\u0131la\u015ft\u0131rmas\u0131 gerekebilir.<\/p>\n<h2>\u0130zole edilmi\u015f bir ortama geri y\u00fckle<\/h2>\n<p>Bir deneme, \u00e7al\u0131\u015fan veritaban\u0131n\u0131n elveri\u015fli bir kopyas\u0131ndan de\u011fil, depolanm\u0131\u015f yedekten ba\u015flamal\u0131d\u0131r. Bu al\u0131\u015ft\u0131rman\u0131n eri\u015fim, \u015fifre \u00e7\u00f6zme, aktar\u0131m, geri y\u00fckleme ve uygulaman\u0131n ba\u015flat\u0131lmas\u0131n\u0131 test etmesini istiyorum.<\/p>\n<p>Yeniden devreye al\u0131nan uygulama, m\u00fc\u015fterilere e-posta g\u00f6ndermemeli, canl\u0131 \u00f6deme i\u015flemleri ger\u00e7ekle\u015ftirmemeli veya giden webhook\u2019lar\u0131 tekrar \u00e7al\u0131\u015ft\u0131rmamal\u0131d\u0131r. \u0130\u015flemcileri ba\u015flatmadan \u00f6nce, bu entegrasyonlar\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131yorum ya da kimlik bilgilerini test yap\u0131land\u0131rmas\u0131yla de\u011fi\u015ftiriyorum. Aksi takdirde, bir kurtarma tatbikat\u0131 kendi ba\u015f\u0131na bir \u00fcretim kesintisine yol a\u00e7abilir.<\/p>\n<p>PostgreSQL\u2019in <a href=\"https:\/\/www.postgresql.org\/docs\/16\/backup-dump.html\" target=\"_blank\" rel=\"noopener\">SQL d\u00f6k\u00fcm\u00fc belgeleri<\/a> mant\u0131ksal yedeklemelerin i\u015fleyi\u015fini ve s\u0131n\u0131rlamalar\u0131n\u0131 a\u00e7\u0131klar. Bir yedekleme y\u00f6ntemi se\u00e7erken veritaban\u0131n\u0131n boyutu ve kurtarma gereksinimleri g\u00f6z \u00f6n\u00fcnde bulundurulmal\u0131d\u0131r; mant\u0131ksal d\u00f6k\u00fcm, her i\u015f y\u00fck\u00fc i\u00e7in otomatik olarak en uygun tasar\u0131m de\u011fildir.<\/p>\n<h2>Sadece sat\u0131r say\u0131s\u0131n\u0131 de\u011fil, davran\u0131\u015f\u0131 da do\u011frulay\u0131n<\/h2>\n<p>Uygulama d\u00fczeyinde k\u0131sa bir kurtarma kontrol listesi kullan\u0131yorum:<\/p>\n<ul>\n<li>Yetkili bir kullan\u0131c\u0131 oturum a\u00e7abilir mi?<\/li>\n<li>Uygulama, hem g\u00fcncel hem de daha eski kay\u0131tlardan \u00f6rnek niteli\u011finde olanlar\u0131 okuyabilir mi?<\/li>\n<li>Y\u00fcklenen varl\u0131klar ve bunlar\u0131n veritaban\u0131 referanslar\u0131 birbiriyle uyumlu mu?<\/li>\n<li>G\u00fcvenli bir test i\u015flemi ba\u015far\u0131yla tamamlanabilir mi?<\/li>\n<li>Arka plan \u00e7al\u0131\u015fanlar\u0131, istenmeyen ge\u00e7mi\u015f i\u015flemleri y\u00fcr\u00fctmeden haz\u0131r m\u0131?<\/li>\n<li>Geri y\u00fcklemeden sonra kirac\u0131 s\u0131n\u0131rlar\u0131 h\u00e2l\u00e2 ge\u00e7erli mi?<\/li>\n<\/ul>\n<p>Say\u0131mlar ve sa\u011flama toplamlar\u0131, eksik verilerin tespit edilmesine yard\u0131mc\u0131 olur; ancak uygulaman\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kan\u0131tlamaz. Ayr\u0131ca, ger\u00e7ek kurtarma s\u00fcresini ve operat\u00f6r\u00fcn belgelenmemi\u015f bilgiye ihtiya\u00e7 duydu\u011fu durumlar\u0131 da kaydediyorum.<\/p>\n<h2>S\u00fcrprizleri bak\u0131m i\u015flerine d\u00f6n\u00fc\u015ft\u00fcr\u00fcn<\/h2>\n<p>Bir sorunu ortaya \u00e7\u0131karan bir prova, amac\u0131na ula\u015fm\u0131\u015f demektir. Eksik izinler, g\u00fcncelli\u011fini yitirmi\u015f talimatlar ve uyumsuz uygulama s\u00fcr\u00fcmlerini, \u00fcretim ortam\u0131 sorunsuz \u00e7al\u0131\u015f\u0131rken tespit etmek daha az maliyetlidir.<\/p>\n<p>\u00c7al\u0131\u015fma k\u0131lavuzunu hemen g\u00fcncelliyorum, ard\u0131ndan ba\u015far\u0131s\u0131z olan k\u0131sm\u0131 tekrarl\u0131yorum. Kay\u0131tta yedekleme tan\u0131mlay\u0131c\u0131s\u0131, uygulama s\u00fcr\u00fcm\u00fc, kurtarma ortam\u0131, sonu\u00e7 ve kalan eksiklikler yer almal\u0131d\u0131r.<\/p>\n<p>Bir yede\u011fe olan g\u00fcvenim, yak\u0131n zamanda ger\u00e7ekle\u015ftirilmi\u015f ve tekrarlanabilir bir geri y\u00fckleme i\u015fleminden kaynaklan\u0131yor. Zamanlanm\u0131\u015f g\u00f6rev, gerekli verileri olu\u015fturur; prova ise ekibin bu verileri yeniden bir hizmete d\u00f6n\u00fc\u015ft\u00fcrebilip d\u00f6n\u00fc\u015ft\u00fcremeyece\u011fini g\u00f6sterir.<\/p>\n<p class=\"hg-editorial-note\"><small>25 Eyl\u00fcl 2026 tarihinde g\u00fcncellenmi\u015ftir.<\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>K\u00fc\u00e7\u00fck yaz\u0131l\u0131m ekipleri i\u00e7in yedeklemelere y\u00f6nelik \u201c\u00f6nce geri y\u00fckleme\u201d yakla\u015f\u0131m\u0131; bu yakla\u015f\u0131m, kurtarma hedeflerini, ba\u011f\u0131ml\u0131l\u0131klar\u0131, kimlik bilgilerini ve ger\u00e7ek\u00e7i do\u011frulama s\u00fcre\u00e7lerini kapsamaktad\u0131r.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[150],"tags":[157,162,181],"class_list":["post-3","post","type-post","status-publish","format-standard","hentry","category-platform-operations","tag-backups","tag-devops","tag-postgresql"],"_links":{"self":[{"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/posts\/3","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/comments?post=3"}],"version-history":[{"count":0,"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/posts\/3\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/media?parent=3"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/categories?post=3"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hasangultekin.com\/tr\/wp-json\/wp\/v2\/tags?post=3"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}