Pulihkan ke Nomor Urutan Log (SQL Server)
Topik ini hanya relevan untuk database yang menggunakan model pemulihan penuh atau dicatat secara massal.
Anda dapat menggunakan nomor urutan log (LSN) untuk menentukan titik pemulihan untuk operasi pemulihan. Namun, ini adalah fitur khusus yang ditujukan untuk vendor alat dan tidak mungkin berguna secara umum.
Gambaran Umum Nomor Urutan Log
LSN digunakan secara internal selama urutan RESTORE untuk melacak titik waktu di mana data telah dipulihkan. Ketika cadangan dipulihkan, data dipulihkan ke LSN yang sesuai dengan titik waktu di mana cadangan diambil. Pencadangan diferensial dan log memajukan database yang dipulihkan ke lain waktu, yang sesuai dengan LSN yang lebih tinggi.
Setiap rekaman dalam log transaksi diidentifikasi secara unik oleh nomor urutan log (LSN). LSN diurutkan sed sehingga jika LSN2 lebih besar dari LSN1, perubahan yang dijelaskan oleh catatan log yang dimaksud oleh LSN2 terjadi setelah perubahan yang dijelaskan oleh LSN catatan log.
LSN rekaman log tempat peristiwa signifikan terjadi dapat berguna untuk membangun urutan pemulihan yang benar. Karena LSN diurutkan, LSN dapat dibandingkan dengan kesetaraan dan ketidaksetaraan (yaitu, <, , >=, <=, >=). Perbandingan tersebut berguna saat membuat urutan pemulihan.
Catatan
LSN adalah nilai jenis numeric
data (25,0). Operasi aritmatika (misalnya, penambahan atau pengurangan) tidak bermakna dan tidak boleh digunakan dengan LSN.
Menampilkan LSN yang Digunakan oleh Pencadangan dan Pemulihan
LSN rekaman log tempat peristiwa pencadangan dan pemulihan tertentu terjadi dapat dilihat menggunakan satu atau beberapa hal berikut ini:
Catatan
LSN juga muncul di beberapa teks pesan.
Sintaks T-SQL untuk Memulihkan ke LSN
Dengan menggunakan pernyataan RESTORE , Anda dapat berhenti di atau segera sebelum LSN, sebagai berikut:
Gunakan klausa WITH STOPATMARK ='lsn:<lsn_number>' , di mana lsn:<lsnNumber> adalah string yang menentukan bahwa rekaman log yang berisi LSN yang ditentukan adalah titik pemulihan.
STOPATMARK roll meneruskan ke LSN dan menyertakan rekaman log tersebut dalam roll forward.
Gunakan klausa WITH STOPBEFOREMARK ='lsn:<lsn_number>' , di mana lsn:<lsnNumber> adalah string yang menentukan bahwa rekaman log segera sebelum rekaman log yang berisi nomor LSN yang ditentukan adalah titik pemulihan.
STOPBEFOREMARK diteruskan ke LSN dan mengecualikan rekaman log tersebut dari roll forward.
Biasanya, transaksi tertentu dipilih untuk disertakan atau dikecualikan. Meskipun tidak diperlukan, dalam praktiknya, catatan log yang ditentukan adalah catatan penerapan transaksi.
Contoh
Contoh berikut mengasumsikan bahwa AdventureWorks
database telah diubah untuk menggunakan model pemulihan penuh.
RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'
WITH STOPATMARK = 'lsn:15000000040000037'
GO
Tugas Terkait
Memulihkan Database ke Titik Kegagalan Di bawah Model Pemulihan Penuh (Transact-SQL)
Memulihkan Database ke Transaksi yang Ditandai (SQL Server Management Studio)
Memulihkan Database SQL Server ke Titik Waktu (Model Pemulihan Penuh)
Lihat juga
Terapkan Pencadangan Log Transaksi (SQL Server)
Log Transaksi (SQL Server)
RESTORE (Transact-SQL)