Saat mencoba mirror database menggunakan perintah berikut
ALTER AVAILABILITY GROUP SQLAlwaysonGroup ADD DATABASE test0916aj8CJ
Saya mendapatkan kesalahan berikut
Msg 1475, Level 16,
Status 105, Baris 1 Basis Data "test0916aj8CJ" mungkin berisi perubahan log massal yang belum dicadangkan. Ambil cadangan log pada basis data utama atau basis data primer. Kemudian kembalikan cadangan ini baik pada database cermin untuk mengaktifkan mirroring basis data atau pada setiap database sekunder agar Anda dapat bergabung dengan grup ketersediaan.
Bisakah ini dilakukan tanpa mendukung database? Atau haruskah saya mencadangkan dan membuang cadangannya. Ini untuk db yang baru dibuat, jadi saya tidak perlu cadangan lagi pada saat ini.
Saya sudah mencoba yang berikut ...
BACKUP
DATABASE [test0916aj8CJ] TO DISK = N’NUL’
WITH COPY_ONLY, NOFORMAT, INIT,
NAME = N’test-Full Database Backup’,
SKIP, NOREWIND, NOUNLOAD
GO
tetapi metode di atas tidak berhasil juga.
Terima kasih
sql-server
t-sql
alter-database
Tagihan
sumber
sumber
Jawaban:
Mudah untuk mengulang kesalahan yang Anda dapatkan
Di bawah ini adalah kesalahan yang akan Anda dapatkan:
Mari kita mengerti apa kesalahan itu:
Anda mengkonfigurasi database Anda dalam mode pemulihan LENGKAP dan berpikir bahwa database memang dalam mode pemulihan LENGKAP.
Di atas tidak benar. Setelah membuat database, jika Anda tidak melakukan backup FULL, meskipun database berada dalam mode pemulihan FULL, itu dalam pemulihan semu-SIMPLE
Anda dapat dengan mudah memverifikasi menggunakan dbcc dbinfo-> dbi_dbbackupLSNmemiliki nilai 0:0:0(0x00000000:00000000:0000)atau menggunakan skrip Paul Randal
Sunting: Bahkan mengambil cadangan penuh pertama dengan
COPY_ONLY
opsi tidak membuat rantai cadangan jugadbcc dbinfo-> dbi_dbbackupLSNmasih memiliki nilai 0:0:0(0x00000000:00000000:0000). Ini berarti basis data masih dalam mode pemulihan semu-sederhana.
Apa yang perlu Anda lakukan untuk mengatasi kesalahan di atas?
Anda perlu mengambil cadangan penuh + satu cadangan log transaksi pada primer dan kemudian mengembalikannya pada basis data sekunder
with norecovery
dan kemudian bergabung dengan basis data dalam grup AG atau Mirroring.Sebagai catatan tambahan dan untuk kelengkapan, untuk penulisan skrip Anda
backup to NUL
, baca posting blog ini oleh Gail Shaw.sumber
Saya tidak mengerti mengapa Anda menggunakan
TO DISK = N’NUL’
:Jika Anda melakukannya, cadangan disimpan ke
NUL
, (mis. = Ke mana-mana / tidak ada) dan tidak dapat digunakan karena file-nya tidak ada.Meskipun
NUL
juga dapat digunakan sebagai tujuan untuk LOG Backups, itu juga tidak boleh digunakan, terutama pada server Prod karena LOGs akan hilang dan rantai Backup akan rusak. (~ mirip dengan aSHRINKFILE
)Sebelum menambahkan DB ke grup, Anda harus menyiapkannya. Saat Anda ingin menyiapkan DB sekunder, setidaknya 1 Log Transaksi cadangan harus diambil dan dipulihkan. Mirror menggunakannya untuk mengetahui transaksi mana yang sudah disinkronkan pada DB sekunder dan transaksi mana yang belum disinkronkan dengan DB primer.
Karenanya Anda harus Mencadangkan Log Transaksi pada DB utama:
The
COPY_ONLY
pilihan harus digunakan. Itu memastikan bahwa Log tidak terpotong pada akhir cadangan LOG.Namun, Anda tidak dapat memulihkan cadangan log saja, artinya tanpa rantai cadangan (lihat juga jawaban Kin). Ini berarti bahwa cadangan Log Transaksi harus diambil setelah Cadangan Database LENGKAP (+ Diferensial opsional jika diperlukan) telah diambil.
Karena
COPY_ONLY
opsi tidak memutus rantai cadangan, itu juga tidak membuat rantai cadangan. TheCOPY_ONLY
pilihan tidak dapat digunakan untuk Database Backup.Cadangkan secara berurutan:
COPY_ONLY
opsiCOPY_ONLY
opsiMaka Backup Database harus dikembalikan (+ Diferensial) pada yang sekunder.
Itu harus dipulihkan dengan
NORECOVERY
opsi karena Anda juga ingin mengembalikan cadangan LOG begitu Cadangan LENGKAP telah dipulihkan.Akhirnya Anda akan mengembalikan LOG Backup. Anda masih perlu menggunakan
NORECOVERY
opsi ini karena mirror akan terus memulihkan transaksi sekali di tempat.NORECOVERY
opsiNORECOVERY
opsiNORECOVERY
opsi iniDi server Utama jalankan:
Pada menjalankan server Sekunder:
Anda kemudian dapat melanjutkan dengan menambahkan DB sekunder baru ke grup ketersediaan ...
sumber