SQL Server Backup Türleri ,İşlem Mantığı ve Stratejisi

SQL Server, birçok işletmenin verilerini sakladığı ve işlem yürüttüğü kritik bir veri tabanı yönetim sistemidir. Bu nedenle, herhangi bir sistem çökmesi, yanlışlıkla silme veya veri kaybı durumunda kurtarma için yedekleme işlemi hayati önem taşır. Bu makalede, SQL Server veri tabanlarının backup (yedekleme) türleri , backup (yedekleme)  işlemi mantığı ve backup (yedekleme)  stratejisi hakkında bilmeniz gerekenleri anlatacağız. SQL Server Yedekleme Türleri SQL Server’da, yedekleme işlemini gerçekleştirmek için üç farklı yöntem vardır: 1) Full Backup (Tam Yedekleme) Tam yedekleme, veri tabanının tamamının yedeklenmesi işlemidir. Bu işlem sırasında, veri tabanındaki tüm veriler ve nesneler yedeklenir ve veri tabanı bir bütün olarak geri yüklenebilir. Burada Full Backup bittiği andaki databasenin bir yedeğini oluşturur, Full Backup işlemleri databasenin boyutuna göre işlemlerin süresi değişebilir. 2) Differential Backup (Fark Yedekleme) Fark yedekleme, son tam yedekleme işleminden sonra yapılan değişikliklerin yedeklenmesi işlemidir. Bu işlem, tam yedeklemenin ardından yapılan değişikliklerin yedeklenmesiyle gerçekleştirilir ve bu sayede veri tabanının geri yüklenmesi […]

SQL Server Backup Türleri ,İşlem Mantığı ve Stratejisi

SQL Server, birçok işletmenin verilerini sakladığı ve işlem yürüttüğü kritik bir veri tabanı yönetim sistemidir. Bu nedenle, herhangi bir sistem çökmesi, yanlışlıkla silme veya veri kaybı durumunda kurtarma için yedekleme işlemi hayati önem taşır. Bu makalede, SQL Server veri tabanlarının backup (yedekleme) türleri , backup (yedekleme)  işlemi mantığı ve backup (yedekleme)  stratejisi hakkında bilmeniz gerekenleri anlatacağız.

SQL Server Yedekleme Türleri

SQL Server’da, yedekleme işlemini gerçekleştirmek için üç farklı yöntem vardır:

1) Full Backup (Tam Yedekleme)

Tam yedekleme, veri tabanının tamamının yedeklenmesi işlemidir. Bu işlem sırasında, veri tabanındaki tüm veriler ve nesneler yedeklenir ve veri tabanı bir bütün olarak geri yüklenebilir. Burada Full Backup bittiği andaki databasenin bir yedeğini oluşturur, Full Backup işlemleri databasenin boyutuna göre işlemlerin süresi değişebilir.

2) Differential Backup (Fark Yedekleme)

Fark yedekleme, son tam yedekleme işleminden sonra yapılan değişikliklerin yedeklenmesi işlemidir. Bu işlem, tam yedeklemenin ardından yapılan değişikliklerin yedeklenmesiyle gerçekleştirilir ve bu sayede veri tabanının geri yüklenmesi daha hızlı bir şekilde yapılabilir. Dikkat edilmesi gereken önemli husus her Differential backup son tam yedekleme işlemi ile Differential Backup bittiği ana kadar ki yedekleme işlemidir. Diğer önemli bir hususta Differential Backup son tam yedekleme(full)  işlemine bağlı olduğundan Full Backup bir arza meydana gelmesi durumunda Differential Backup bir anlam ifade etmeyecektir ve geri yükleme kullanılamayacaktır. Differential Backup işlemleri databasenin boyutuna göre işlemleri süresi değişebilir.

 

3) Transaction Log Backup(İşlem Günlüğü Yedekleme)

İşlem günlüğü yedeklemesi, bir veri tabanındaki işlem günlüğünün yedeklenmesi işlemidir. Bu yedekleme yöntemi, veri tabanındaki değişikliklerin takibini yaparak veri kaybını en aza indirir. İşlem günlüğü yedeklemesi, fark yedeklemesiyle birlikte kullanılarak veri kaybı riskini minimuma indirir. Transaction Log Backuplar zincir mantığı vardır. Zincirlerden birin kopması durumunda koptuğu yerden sonrasındaki Log Backuplar bir anlam ifade etmeyecek en son koptuğu yerdeki Log Backup anına dönülebilecektir.

 

SQL Server Yedekleme İşlemi Mantığı

Olağanüstü durum kurtarma için en uygun yedekleme türlerini seçmek çok önemlidir. Bir veri tabanı yedekleme planı tanımlarken üç temel soru şunlardır:

  1. Verilerin önemi nedir?

  • Verilerin önemine bağlı olarak, optimum bir yedekleme stratejisi tanımlayabilirsiniz. Finans veya bankacılıkla ilgili verileriniz varsa, hiçbir veri kaybı tolere edilemez.
  • Öte yandan, bazı anket verileriniz veya coğrafi verileriniz varsa, bazı veri kayıpları tolere edilebilir veya bunları çevrimiçi kaynaklardan geri almamız bizim için daha kolay olabilir.
  • Bu nedenle, verileriniz çok önemliyse ve herhangi bir veri kaybına tahammül edemiyorsanız, stratejiniz olarak üç SQL Server yedekleme türünün (Tam Yedekleme + Differential Yedekleme + Log Yedekleme) bir kombinasyonunu seçmelisiniz.
  • Verileriniz çok önemli değilse ve bir miktar veri kaybı tolere edilebilirse, haftalık veya günlük gibi belirli bir aralıkta tam veri tabanı yedeklemeyi tercih edebilirsiniz.

 

  1. Herhangi bir veri kaybı tolere edilebilir mi?

  • Bir önceki noktada tartıştığımız gibi, verileriniz çok önemliyse ve hiçbir veri kaybı tolere edilmiyorsa, Full + Differential + Log yedeklemesini tercih edebilirsiniz. Bir tür veri kaybına izin veriliyorsa, Full + Differential veya yalnızca tam veritabanı yedeklemesini seçebilirsiniz. Veri tabanınızı zamanında geri yüklemek istiyorsanız, Log bir yedekleme almalı ve bunları geri yüklemelisiniz.

 

  1. Veri tabanınız ne kadar büyük?

Boyut ayrıca en uygun yedekleme sürecini seçmede de önemlidir.

  • Küçük bir veri tabanınız varsa, küçük veri tabanları için yer sorunu olmayacağından, periyodik olarak tam veri tabanı yedeği alabilirsiniz.
  • Orta ölçekli bir veri tabanınız varsa full + Differential yedekler alabilirsiniz.
  • Daha büyük veri tabanları için, tam veri tabanı yedeklerinden daha fazla işlem ve fark yedeklemesi almalısınız; aksi halde yer sorunu yaşarsınız.

 

Şimdi bir örnekle backup stratejimizi kontrol edelim.

*Normalde bu backupların hepsinin bir LSN numaralı olur, ancak biz bu makalemizde o konuya değinmeyeceğiz.

Not: SQL Server’da, “Log Sequence Number” (LSN) olarak adlandırılan benzersiz bir sayı dizisi, LSN değerleri bir veri tabanı yönetim sistemi tarafından kullanılan benzersiz bir tanımlayıcıdır. Detay bilgi için LSN makalemizi okuyabilirsiniz.

Backupların Alınma saatleri ve 2 haftalık bir backup stratejimizi var sonra siliniyor.

Full backup: Saat 01.00     Diff backup: Saat 02.00     Log backup: Her 10 dk bir

Seneryo1’de şu anki tarih:13.05.2023 saat 15:30 ve bizim dönmek istediğimiz tarih 06.05.2023 saat 16:00 dönmek istiyoruz.

Yöntem1: 01.05.2023 full + 05.05.2023 Differential+log(en hızlı)

Yöntem2: 01.05.2023 full + 03.05.2023 Differential+log

Yöntem3: 01.05.2023 full +log

Bu 3 yöntemle de restore işlemi yapılabilir. Dikkat edilmesi gereken husus ne kadar hızlı restore yapacağıdır.

Seneryo2’de şu anki tarih:13.05.2023 saat 15:30 ve bizim dönmek istediğimiz tarih 12.05.2023 saat 01:00 dönmek istiyoruz.

Yöntem1: 08.05.2023full + 10.05.2023Differential+log(en hızlı)(dönmek istediğimiz saat 12.05.2023 Differential backuptan önce olduğu için alınmasına rağmen kullanamıyoruz)

Yöntem2: 08.05.2023 full +log

Yöntem3: 01.05.2023 full + 07.05.2023 Differential+log

Yöntem4: 01.05.2023 full + 05.05.2023 Differential+log

Yöntem5: 01.05.2023 full + 03.05.2023 Differential+log

Yöntem6: 01.05.2023 full +log

Aynı örnek için 11.05.2023 saat 11:00 log backup hasar oluştu kopma meydana geldi bu durum dönebileceğim en son nokta 11.05.2023 saat 11:00 olur.

Benzer Yazılar

SQL SERVER RIGHT-LEFT PARTITION

SQL Server 5 gün önce

SQL Server’da partitioning, büyük veritabanı tablolarını daha yönetilebilir ve performanslı hale getirmek amacıyla kullanılan bir tekniktir. Bu teknik, tablonun verilerini fiziksel olarak değil, mantıksal olarak parçalara ayırır. Veriler, belirli bir partition function ve partition scheme kullanılarak farklı bölümlere yönlendirilir. Partitioning, özellikle büyük veri kümeleriyle çalışan veri tabanlarında sorgu performansını artırır ve veri yönetimini kolaylaştırır. Partition Function ve Partition Scheme nedir? Partition Function: Verilerin hangi kriterlere göre bölüneceğini belirler. Örneğin, bir tarih aralığına göre verileri ayırmak. Partition Scheme: Verilerin hangi filegroup’larda depolanacağını belirler.   Örnek olarak Range LEFT ve Range RIGHT olmak üzere iki ayrı tabloda partition nasıl yapılır sizlere göstereceğim. İlk olarak Range LEFT olan partition yapısından başlayacağım. Öncelikle Veri tabanıma yeni filegroup ve file ekliyorum Şimdi sıra FUNCTION ve SCHEME oluşturmakta ben tablomu yıllık olarak partition yaptım sizler ihtiyaçlarınız doğrultusunda aylık,günlük vs yapabilirsiniz. LEFT partition dediğimiz olay vermiş olduğunuz tarih aralığına eşit bir veri geldiğinde bu veriyi solundaki partition […]

Veritabanı Recovery Pending Durumu ve Düzeltme Seçenekleri

SQL Server 2 hafta önce

İçindekilerVeritabanı Recovery Pending Durumu Nedir?Veritabanı Neden Recover Pending Duruma Düşer?Recovery Pending Durumu Nasıl Çözülür?SonuçKaynaklarVeritabanı Recovery Pending Durumu Nedir? SQL Server’da veritabanları bazı nedenlere bağlı olarak “Recovery Pending” (Kurtarma Bekleme)  moduna geçebilir. Veritabanın düzgün bir şekilde kapatılmaması, eksik veya bozuk log dosyaları, disk depolama sorunları, sistemde yaşanan anormal şekilde çökmeler veya MS SQL Server’daki hatalar bu duruma sebep olabilir. Recovery durumu, aslında veritabanını tekrar kullanılabilir hale getirmek için bir kurtarma işlemi yürüttüğünü ifade eder ve üç aşamadan oluşur; Analysis (Analiz): Transaction log incelemesi yapılması ve işlemlerin tamamlanma (Commit) durumunun kontrol edilmesi, Redo (Yeniden İşleme): Tamamlanmış (Commit) ancak henüz diske yazılamamış olan işlemlerin yeniden işlenmesi, Undo (Geri Alma): Başlamış (Begin) ancak tamamlanmamış (Commit) işlemlerin  geri alınmasıdır.   Veritabanı Neden Recover Pending Duruma Düşer? SQL Server Restart Süreci SQL Server servisi restart edildiğinde üzerinde bulunan tüm veritabanları tutarlılığın sağlanması için otomatik olarak recovery moduna girer ve redo/undo işlemleri sürecince devam eder. Ani Sistem […]

SQL Server DMV ve DMF – 6

SQL Server 2 hafta önce

Bu yazımızda DMV ve DMF Serimizin 6.sına devam edeceğiz. Bir önceki seride Memory’ye ilişkin DMV ve DMF’leri ele almıştık. Bu yazıda Memory konusunda devam edeceğiz. SQL server’da Memory kavramı en önemli kavramlardan biridir. Özellikle tüm transaction işlemlerinin önce Buffer sonra disk üzerinden devam ettiğini düşünürsek buffer’ın oynadığı kritik rolü daha iyi anlayabiliriz. Bu yazıda Memory’nin durumunu ve monitör edilmesine bakacağız. Özellikle Performans sorunlarında memory konusunda sorun yaşandığı durumda nasıl okumak gerektiği önemli rol oynamaktadır. Hangi database’de, hangi tablo’da sorun yaşandığına ilişkin bilgilere bu paylaşım sonrasında görebileceğiz. SQL Server’ın Memory kullanım durumunu incelediğimde; select physical_memory_in_use_kb/1048576.0 AS ‘physical_memory_in_use (GB)’, locked_page_allocations_kb/1048576.0 AS ‘locked_page_allocations (GB)’, virtual_address_space_committed_kb/1048576.0 AS ‘virtual_address_space_committed (GB)’, available_commit_limit_kb/1048576.0 AS ‘available_commit_limit (GB)’, page_fault_count as ‘page_fault_count’ from  sys.dm_os_process_memory; Görsel – 1   Physical_memory_in_use: Kullanımda olan Fiziksel Memory miktarını gösterir. locked_page_allocations: Memory’de lock’lanmış olan Page’lerin miktarını belirtir. virtual_address_space_contained: SQL Server VAS(Virtual Adress Space) için ayrılan miktarı belirtir. available_commit_limit: SQL Server tarafından kullanılabilecek Memory Miktarını gösterir. […]

Yorum Yaz

Rastgele