1. Ana Sayfa
  2. SQL Server
  3. SQL Server Transaction Log Backup ile İstenilen Zamana Nasıl geri Dönülür?

SQL Server Transaction Log Backup ile İstenilen Zamana Nasıl geri Dönülür?

Bu konumuz içerisinde SQL Server tarafında Log Backup yardımı ile istenilen zamana restore etme işleminden bahsedeceğim.

SQL Server’da 3 şekilde Backup alabilirsiniz.

  1. Full Backup
  2. Differential  Backup
  3. Transaction Backup


Resim-1

Konumuz itibari ile ben sizlere 3′ü madde olan Transaction Backup’ı anlatacağım. Her Transaction’ın işlem bilgilerini içeren Transaction Log Backup ile istenilen bir ana dönmek mümkündür.

Şimdi örneğimize başlayalım;

— Örnek bir Database Create Ediyoruz

CREATE DATABASE TRLogBackup

— Oluşturduğumuz Database Recovery Model bilgisini Full olarak değiştiriyoruz Log Backup Alabilmemiz için Full olmak zorunda.

ALTER DATABASE TRLogBackup SET RECOVERY FULL

— Oluşturduğumuz Backup seçiyoruz

Use TRLogBackup

GO

— TblTarih isiminde Tarih ve deger bilgisi barındıran bir tablo oluşturuyoruz.

Create table TblTarih(Tarih datetime, Deger int)

Log Backup’ların restore edilebilmesi için ilk olarak bir Full Backup’ın restore edilmesi gerekmektedir. O yüzden işlemlere başlamadan önce bir Full Backup alıyorum.

–İşlemlere başlamadan önce Full Backup alıyorum

Backup database TRLogBackup to disk=’D:\TRLogBackup_Full.bak’

Şimdi Farklı zamanlarda 5 Adet Kayıt girişi yapıyorum..

— Farklı zamanlarda 5 kayıt girişi yapıyorum

INSERT INTO TblTarih VALUES (GETDATE(),1)

INSERT INTO TblTarih VALUES (GETDATE(),2)

INSERT INTO TblTarih VALUES (GETDATE(),3)

INSERT INTO TblTarih VALUES (GETDATE(),4)

INSERT INTO TblTarih VALUES (GETDATE(),5)

Oluşturdum Kayıtları Kontrol ediyorum.

— Girilen Kayıtları kontrol ediyorum.

SELECT * FROM TblTarih


Resim-2

Şimdi ise Log Backup Alıyorum.

–Insert işlemlerinden sonra Log Backup alıyorum

Backup Log TRLogBackup to disk=’D:\TRLogBackup_Log.trn’

Evet şimdiye kadar herhangi bir sıkıntı olmadan kayıtlarımızı oluşturduk. Kayıt girişlerimizi de gerçekleştirdik. Bir sebepten dolayı 14:50:00 zamanına geri dönülmesi gerekti.Bu durumda benim TblTarih isimli tablom da sadece 2 kayıt olması gerekiyor.

Şimdi bu işlemi nasıl yapacağız buna bakalım.

Restore işleminde ilk olarak Full Backup’ı restore edip daha sonra Log Backup’ı restore edeceğim. Eğer birden fazla Log Backup var ise istediğim ana gelene kadar bütün Log Backup’ları sırası ile restore etmem lazım. Ben 1 adet Log Backup almıştım.

    use master

GO

–Önce Full Backup’ı restore ediyorum.

–Bu işlemden sonra Log Backup’ı da restore edeceğim için.

— WITH NORECOVERY seçeneğini kullanıyorum.

RESTORE DATABASE [TRLogBackup] FROM DISK = N’D:\TRLogBackup_Full.bak’

WITH NORECOVERY, REPLACE

GO

–Şimdi Log Backup’ı restore ediyorum.

–İstenilen bir ana dönmek için STOPAT seçeneğini kullanıyorum

RESTORE LOG [TRLogBackup] FROM DISK = N’D:\TRLogBackup_Log.trn’

WITH STOPAT = ‘2013-07-25 14:50:00.000’

GO

Sonuç;


Resim-3

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim. Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yorum Yap