Pemulihan Database Terkait yang Berisi Transaksi Yang Ditandai
Berlaku untuk: SQL Server
Topik ini hanya relevan untuk database yang berisi transaksi bertanda dan yang menggunakan model pemulihan penuh atau dicatat massal.
Untuk informasi tentang persyaratan untuk memulihkan ke titik pemulihan tertentu, lihat Memulihkan Database SQL Server ke Titik Waktu (Model Pemulihan Penuh).
SQL Server mendukung penyisipan tanda bernama ke dalam log transaksi untuk memungkinkan pemulihan ke tanda tertentu tersebut. Tanda log spesifik transaksi dan dimasukkan hanya jika transaksi terkait diterapkan. Akibatnya, tanda dapat dikaitkan dengan pekerjaan tertentu, dan Anda dapat pulih ke titik yang menyertakan atau mengecualikan pekerjaan ini.
Sebelum Anda menyisipkan tanda bernama ke dalam log transaksi, pertimbangkan hal berikut:
Karena tanda transaksi menggunakan ruang log, gunakan hanya untuk transaksi yang memainkan peran penting dalam strategi pemulihan database.
Setelah transaksi yang ditandai diterapkan, baris disisipkan dalam tabel logmarkhistory dalam msdb.
Jika transaksi yang ditandai mencakup beberapa database di server database yang sama atau di server yang berbeda, tanda harus direkam dalam log semua database yang terpengaruh. Untuk informasi selengkapnya, lihat Menggunakan Transaksi Yang Ditandai untuk Memulihkan Database Terkait Secara Konsisten (Model Pemulihan Penuh).
Catatan
Untuk informasi tentang cara menandai transaksi, lihat Menggunakan Transaksi Yang Ditandai untuk Memulihkan Database Terkait Secara Konsisten (Model Pemulihan Penuh).
Sintaks Transact-SQL untuk Memasukkan Tanda Bernama ke dalam Log Transaksi
Untuk menyisipkan tanda ke dalam log transaksi, gunakan pernyataan BEGIN TRANSACTION dan klausa WITH MARK [description]. Tanda dinamai sama dengan transaksi. Deskripsi opsional adalah deskripsi tekstual tanda, bukan nama tanda. Misalnya, nama transaksi dan tanda yang dibuat dalam pernyataan berikut BEGIN TRANSACTION
adalah Tx1
:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
Log transaksi mencatat nama tanda (nama transaksi), deskripsi, database, pengguna, informasi tanggalwaktu , dan nomor urutan log (LSN). Informasi tanggalwaktu digunakan dengan nama tanda untuk mengidentifikasi tanda secara unik.
Untuk informasi tentang cara menyisipkan tanda ke dalam transaksi yang mencakup beberapa database, lihat Menggunakan Transaksi Yang Ditandai untuk Memulihkan Database Terkait Secara Konsisten (Model Pemulihan Penuh).
Sintaks Transact-SQL untuk Memulihkan ke Tanda
Saat Anda menargetkan transaksi yang ditandai dengan menggunakanpernyataan RESTORE LOG , Anda dapat menggunakan salah satu klausa berikut untuk berhenti di atau segera sebelum tanda:
Gunakan klausa WITH STOPATMARK = '<mark_name>' untuk menentukan bahwa transaksi yang ditandai adalah titik pemulihan.
STOPATMARK diteruskan ke tanda dan menyertakan transaksi yang ditandai dalam roll forward.
Gunakan klausa WITH STOPBEFOREMARK = '<mark_name>' untuk menentukan bahwa catatan log yang segera sebelum tanda adalah titik pemulihan.
STOPBEFOREMARK diteruskan ke tanda dan kecualikan yang ditandai transaksi dari roll forward.
Opsi STOPATMARK dan STOPBEFOREMARK mendukung klausul after datetime opsional. Saat tanggalwaktu digunakan, nama tandai tidak harus unik.
Jika tanggalwaktu AFTER dihilangkan, penerusan gulir berhenti pada tanda pertama yang memiliki nama yang ditentukan. Jika tanggalwaktu AFTER ditentukan, penerusan gulir berhenti pada tanda pertama yang memiliki nama yang ditentukan, tepat pada atau setelah tanggalwaktu.
Catatan
Seperti dalam semua operasi pemulihan point-in-time, pemulihan ke tanda tidak diizinkan saat database sedang menjalani operasi yang dicatat secara massal.
Untuk memulihkan ke transaksi yang ditandai
Memulihkan Database ke Transaksi Yang Ditandai (SQL Server Management Studio)
Menyiapkan Pencadangan Log
Untuk contoh ini, strategi pencadangan yang sesuai untuk database terkait ini adalah sebagai berikut:
Gunakan model pemulihan penuh untuk kedua database.
Buat cadangan lengkap setiap database.
Database dapat dicadangkan secara berurutan atau bersamaan.
Sebelum mencadangkan log transaksi, tandai transaksi yang dijalankan di semua database. Untuk informasi tentang cara membuat transaksi yang ditandai, lihat Menggunakan Transaksi Yang Ditandai untuk Memulihkan Database Terkait Secara Konsisten (Model Pemulihan Penuh).
Cadangkan log transaksi pada setiap database.
Memulihkan Database ke Transaksi yang Ditandai
Untuk memulihkan cadangan
Buat cadangan log ekor dari database yang tidak dirusak, jika memungkinkan.
Pulihkan cadangan database lengkap terbaru dari setiap database.
Identifikasi transaksi yang ditandai terbaru yang tersedia di semua cadangan log transaksi. Informasi ini disimpan dalam tabel logmarkhistory di database msdb di setiap server.
Identifikasi cadangan log untuk semua database terkait yang berisi tanda ini.
Pulihkan setiap cadangan log, berhenti pada transaksi yang ditandai.
Pulihkan setiap database.
Lihat Juga
BEGIN TRANSACTION (Transact-SQL)
RESTORE (Transact-SQL)
Menerapkan Pencadangan Log Transaksi (SQL Server)
Gunakan Transaksi Yang Ditandai untuk Memulihkan Database Terkait Secara Konsisten (Model Pemulihan Penuh)
Gambaran Umum Pengembalian dan Pemulihan (SQL Server)
Memulihkan Database SQL Server ke Titik Waktu (Model Pemulihan Penuh)
Merencanakan dan Melakukan Urutan Pemulihan (Model Pemulihan Penuh)