Anlaması kolay olmayan bir durum var ve başkalarının önerileri olup olmadığını bu forumda soracağımı düşündüm.
SQL Server 2008 R2 Standard SP3'ü Windows Server 2008R2 Enterprise üzerinde çalıştırıyorum.
Bir veritabanının bakım ihtiyacı vardı ve aslında başka bir sunucuya geri yüklemem gerekti. COPY_ONLY artı 4 tlog yedek bir dizi ile yapılan tam bir db yedekleme var.
- başlamadan önce tlogbackup1 oluşturun
- değiştirmek
FULL
içinBULK_LOGGED
kurtarma modeli - yeni dosya grubu ekle
- newfilegroup'a dosya ekle
- newfilegroup'u varsayılan olarak ayarla
- tabloya seç (newfilegroup üzerinde)
- orijinal tablo bırak
- orijinal dosyayı sil
- orijinal dosya grubunu sil
- yeni tablonun adını orijinal tabloyla eşleşecek şekilde değiştir
- newfilegroup dosya adını orijinal dosya grubuyla eşleşecek şekilde değiştirme
- katalogdaki dosya adını orijinal dosya adıyla eşleşecek şekilde değiştirme
- OS düzeyinde dosya adını orijinal dosya adıyla eşleşecek şekilde değiştirme
- varsayılan dosya grubunu orijinal olarak ayarla
- db'yi çevrimiçi getir
- değiştirmek
BULK_LOGGED
içinFULL
kurtarma modeli - Tüm adımlar tamamlandıktan sonra tlogbackup2 oluşturun
Geri yükleme sunucusundaki sürücü harfi değişiklikleri nedeniyle tüm yedeklerin geri yüklenmesi WITH MOVE kullanmalıdır.
Kurtarma adımları:
RESTORE database SomeDB FROM DISK = 'D:\REPRO\SomeDB.bak'
WITH
MOVE 'SystemData' TO 'D:\SQLDATA\SomeDB.mdf'
,MOVE 'SystemDataPDS' TO 'D:\SqlData\SomeDB.ndf'
,MOVE 'SystemData_log' TO 'D:\SQLLogs\SomeDB.LDF'
,NORECOVERY
,stats = 1
RESTORE LOG SomeDB FROM DISK = 'D:\REPRO\tlogbackup1.trn'
WITH
MOVE 'SystemData' TO 'D:\SQLDATA\SomeDB.mdf'
,MOVE 'SystemDataPDS' TO 'D:\SqlData\SomeDB.ndf'
,MOVE 'SystemData_log' TO 'D:\SQLLogs\SomeDB.LDF'
,NORECOVERY
,stats = 1
RESTORE LOG SomeDB FROM DISK = 'D:\REPRO\tlogbackup2.trn'
WITH
MOVE 'SystemData' TO 'D:\SQLDATA\SomeDB.mdf'
,MOVE 'SystemDataPDS' TO 'D:\SqlData\SomeDB.ndf'
,MOVE 'SystemData_log' TO 'D:\SQLLogs\SomeDB.LDF'
,NORECOVERY
,stats = 1
Son tlog geri yüklemesi% 100'e ulaşır ve ardından 3456 hatasıyla başarısız olur:
'SomeDB' veritabanı için 368 sayfa işlendi, dosya 1'deki 'SystemData' dosyası.
'SomeDB' veritabanı için 7656520 sayfa işlendi, dosya 1'deki 'SystemDataPDS' dosyası.
'SomeDB' veritabanı için 172430 sayfa işlendi, dosya 1'de 'SystemData_log' dosyası.
Msg 3456, Seviye 16, Durum 1, Hat 1
Günlük kaydı (210388: 123648: 232), işlem kimliği için (0: 1016710921), sayfa (4: 8088), veritabanı 'SomeDB' (veritabanı kimliği 6) . Sayfa: LSN = (0: 0: 1), = 11 yazın. Günlük: OpCode = 4, bağlam 11, PrevPageLSN: (210388: 122007: 1). Veritabanının bir yedekten geri yükleyin veya veritabanını onarın. Msg 3013, Seviye 16, Durum 1, Satır 1 RESTORE LOG anormal olarak sona eriyor.
Sadece tam db yedekleme tamam olduğunu doğrulamak için, o geri yüklendi CHECKDB
ve hiçbir hata yoktu.
Tüm geri bildirimler memnuniyetle karşılandı.
Şimdiden teşekkürler,
Ned Otter