SQL Server 2012 cadangan selalu aktif, lengkap vs hanya salinan

8

Saya memerlukan klarifikasi cepat tentang pencadangan hanya salinan vs pencadangan penuh karena ini berkaitan dengan penomoran log transaksi dan pengembalian jika diperlukan.

Saya memiliki pengaturan SQL Server 2012 dengan selalu aktif untuk beberapa database. Grup ketersediaan diatur dengan cadangan pilihan di replika.

hanya salinan saja dan pencadangan log transaksi yang dimungkinkan pada replika. Apakah ini berarti saya perlu melakukan pencadangan penuh pada primer jika diperlukan pengembalian log transaksi?

Terima kasih

Debbie
sumber

Jawaban:

2

hanya salinan saja dan pencadangan log transaksi yang dimungkinkan pada replika

Benar.

Apakah ini berarti saya perlu melakukan pencadangan penuh pada primer jika diperlukan pengembalian log transaksi?

Jawaban singkat YA .

Dari BOL :

Rantai log yang konsisten dipastikan di seluruh cadangan log yang diambil pada replika mana pun (primer atau sekunder), terlepas dari mode ketersediaannya (sinkron-komit atau asinkron-komit).

Jadi untuk menjawab pertanyaan Anda, cadangan COPY_ONLY tidak dapat menjadi bagian dari pemulihan yang melibatkan cadangan T-log (melakukan pengembalian point-in-time). Intinya adalah memiliki set cadangan di luar rantai cadangan reguler TIDAK memengaruhi urutan pemulihan.

Cadangan lengkap harus dilakukan pada basis data primer (bukan cadangan copy_only).

Hanya cadangan T-log (seperti yang disebutkan di atas) yang dapat dilakukan pada primer atau sekunder dengan CAVEAT yang tidak akan mengacaukan LSN pada PRIMARY yaitu akan menjaga LSN konsisten - terlepas dari mana Anda mengambil cadangan log dalam grup yang tersedia .

Yang terbaik adalah memeriksa sys.fn_hadr_backup_is_preferred_replicasehingga cadangan log akan menggunakan preferensi cadangan grup Availablity untuk cadangan Log.

Lihat: Melakukan Pencadangan Log Transaksi menggunakan AlwaysOn Availability Group Replika Hanya-Baca Sekunder - Bagian 1

Kin Shah
sumber
2
Anda tentu dapat menggunakan cadangan lengkap COPY_ONLY dan menerapkan log transaksi di atasnya. Cadangan lengkap COPY_ONLY secara struktural sama dengan cadangan lengkap lainnya. Satu-satunya perbedaan adalah bahwa itu tidak mengatur ulang bitmap diferensial. Setelah mengembalikan COPY_ONLY lengkap, Anda dapat mulai memulihkan dengan log transaksi yang berisi LSN terakhir dari cadangan COPY_ONLY, kemudian lanjutkan dengan rantai log seperti biasa.
AMtwo
6

Apakah ini berarti saya perlu melakukan pencadangan penuh pada primer jika diperlukan pengembalian log transaksi?

TIDAK - Anda dapat menambahkan cadangan t-log ke pemulihan cadangan COPY_ONLY

pengguna42163
sumber
2

Anda dapat memulihkan log transaksi di atas cadangan lengkap hanya salinan - ini berarti Anda dapat menggunakan cadangan salinan saja dari replika sekunder bersama dengan log transaksi, dan mencapai pemulihan point-in-time.

Namun, jika Anda hanya melakukan pencadangan hanya salinan pada replika sekunder, Anda tidak akan memiliki cadangan "nyata" untuk mereset bitmap diferensial pada replika primer. Jika cadangan diferensial adalah bagian dari strategi pemulihan Anda, maka Anda perlu mengambil cadangan penuh pada primer. Jika Anda setiap ingin menggunakan cadangan diferensial, Anda perlu mengambil cadangan penuh pada replika utama untuk digunakan sebagai basis diferensial.

AMtwo
sumber
2

Saya telah berhasil menguji menggunakan cadangan hanya salinan dan cadangan log yang menjangkau hanya salinan hingga ke titik waktu yang diinginkan. Anda harus memiliki semua cadangan log. Jadi, jika Anda memiliki beberapa replika yang Anda gunakan untuk melakukan pencadangan (kegagalan misalnya terjadi), Anda perlu memastikan dan melacaknya. Dalam pengujian saya, saya cukup mengatur semuanya sehingga semua cadangan pergi ke lokasi pusat. SQL mempertahankan rantai log untuk cadangan log di semua node di AG. Artikel yang bagus di sini ... http://info.tricoresolutions.com/blog/understanding-backups-with-sql-server-alwayson-high-avability-mirrors

JohnH
sumber
1

Saya punya banyak kebingungan di sekitar topik - Dalam klaster AG mengembalikan cadangan Log berikut dengan Salin - hanya cadangan penuh.

Sekarang berfungsi dengan baik. Kita dapat menggunakan hanya salinan cadangan dari replika sekunder:

USE [master]
RESTORE DATABASE [xxxxx_testDB] FROM  
DISK = N'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_FULL_COPY_ONLY.bak' 
WITH  FILE = 1, 
MOVE N'xxxxx_testDB' TO N'D:\testdb\xxxxx_testDB.mdf',  
MOVE N'xxxxx_testDB_log' TO N'D:\testdb\xxxxx_testDB.ldf',  
NORECOVERY

GO


RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_1.trn'
WITH NORECOVERY; 
GO

RESTORE LOG xxxxx_testDB
FROM DISK = 'D:\Backups\FULL_COPY_ONLY\xxxxx_testDB_LOG_2.trn'
WITH NORECOVERY; 
GO


RESTORE DATABASE xxxxx_testDB WITH RECOVERY
JAYAKUMAR SINNAPILLAI
sumber