Cadangan Salinan Bayangan untuk File Database di Azure

Berlaku untuk:SQL Server

Cadangan rekam jepret File SQL Server menggunakan rekam jepret Azure untuk menyediakan cadangan yang hampir seketika dan pemulihan yang lebih cepat untuk file database yang disimpan menggunakan Azure Blob Storage. Kapabilitas ini memungkinkan Anda menyederhanakan kebijakan pencadangan dan pemulihan Anda. Untuk informasi selengkapnya tentang menyimpan file database menggunakan Azure Blob Storage, lihat SQL Server Data Files di Microsoft Azure.

Diagram explaining the snapshot backup architecture.

Sudah memiliki akun Azure? Kunjungi SQL Server di Azure Virtual Machines untuk memutar Komputer Virtual dengan SQL Server yang sudah diinstal.

Menggunakan rekam jepret Azure untuk mencadangkan file database yang disimpan di Azure

Apa itu cadangan rekam jepret file SQL Server

Cadangan salinan bayangan file terdiri dari satu set salinan bayangan Azure dari blob yang berisi file database ditambah file cadangan yang berisi pointer ke salinan bayangan file ini. Setiap salinan bayangan file disimpan dalam kontainer dengan blob dasar. Anda dapat menentukan bahwa file cadangan itu sendiri untuk ditulis ke URL, disk, atau pita. Pencadangan ke URL disarankan. Untuk informasi selengkapnya tentang pencadangan, lihat PENCADANGAN dan pencadangan ke URL, lihat Pencadangan SQL Server ke URL.

Diagram of the architecture of snapshot feature.

Menghapus blob dasar akan membatalkan kumpulan cadangan dan Anda dicegah untuk menghilangkan blob yang berisi rekam jepret file (kecuali Anda secara tegas memilih untuk menghapus blob dengan semua rekam jepret filenya). Selain itu, menghilangkan database atau file data tidak menghapus blob dasar atau salinan bayangan filenya. Selain itu, menghapus file cadangan tidak menghapus salinan bayangan file apa pun dalam kumpulan cadangan. Untuk menghapus kumpulan cadangan rekam jepret file, gunakan prosedur tersimpan sys.sp_delete_backup sistem.

Pencadangan database penuh: Melakukan pencadangan database penuh menggunakan cadangan salinan bayangan file akan membuat salinan bayangan Azure dari setiap data dan file log yang berisi database, menetapkan rantai cadangan log transaksi, dan menulis lokasi salinan bayangan file ke dalam file cadangan.

Pencadangan log transaksi: Melakukan pencadangan log transaksi menggunakan cadangan salinan bayangan file akan membuat salinan bayangan file dari setiap file database (bukan hanya log transaksi), mencatat informasi lokasi salinan bayangan file ke dalam file cadangan, dan memotong file log transaksi.

Penting

Setelah pencadangan penuh awal yang diperlukan untuk membuat rantai cadangan log transaksi (yang dapat menjadi salinan bayangan file cadangan), Anda hanya perlu melakukan pencadangan log transaksi karena setiap transaksi log kumpulan cadangan salinan bayangan file berisi salinan bayangan dari semua file database dan dapat digunakan untuk melakukan pemulihan database atau pemulihan log. Setelah pencadangan database lengkap awal, Anda tidak memerlukan cadangan penuh atau diferensial tambahan karena Azure Blob Storage menangani perbedaan antara setiap rekam jepret file dan status blob dasar saat ini untuk setiap file database.

Catatan

Untuk tutorial tentang menggunakan SQL Server dengan Microsoft Azure Blob Storage, lihat Tutorial: Menggunakan Microsoft Azure Blob Storage dengan database SQL Server

Memulihkan menggunakan cadangan salinan bayangan file

Karena setiap kumpulan cadangan rekam jepret file berisi rekam jepret file dari setiap file database, proses pemulihan memerlukan paling banyak dua set cadangan rekam jepret file yang berdekatan. Hal ini berlaku terlepas apakah kumpulan cadangan berasal dari pencadangan database penuh atau cadangan log. Ini sangat berbeda dari proses pemulihan saat menggunakan file cadangan streaming tradisional untuk melakukan proses pemulihan. Dengan pencadangan streaming tradisional, proses pemulihan memerlukan penggunaan seluruh rantai kumpulan cadangan: pencadangan penuh, pencadangan diferensial dan satu pencadangan log transaksi atau lebih. Langkah pemulihan dari proses pemulihan tetap sama terlepas apakah pemulihan menggunakan cadangan salinan bayangan file atau kumpulan cadangan streaming.

Untuk waktu kumpulan cadangan apa pun: Untuk melakukan operasi RESTORE DATABASE untuk memulihkan database ke waktu kumpulan cadangan rekam jepret file tertentu, hanya kumpulan cadangan tertentu yang diperlukan, ditambah blob dasar itu sendiri. Karena Anda dapat menggunakan kumpulan cadangan salinan bayangan file log transaksi untuk melakukan operasi RESTORE DATABASE, Anda biasanya akan menggunakan kumpulan cadangan log transaksi untuk melakukan jenis operasi RESTORE DATABASE ini dan jarang menggunakan satu kumpulan cadangan database penuh. Contoh muncul di akhir artikel ini yang menunjukkan teknik ini.

Untuk titik waktu antara dua set cadangan rekam jepret file: Untuk melakukan operasi RESTORE DATABASE untuk memulihkan database ke titik waktu tertentu antara waktu dua kumpulan cadangan log transaksi yang berdekatan, hanya dua kumpulan cadangan log transaksi yang diperlukan (satu sebelum dan satu setelah titik waktu di mana Anda ingin memulihkan database). Untuk mencapai hal ini, Anda akan melakukan operasi RESTORE DATABASE versi WITH NORECOVERY menggunakan kumpulan cadangan salinan bayangan file log transaksional dari titik waktu sebelumnya dan melakukan operasi RESTORE LOG versi WITH RECOVERY menggunakan kumpulan cadangan salinan bayangan file transaksi dari titik waktu berikutnya dan menggunakan argumen STOPAT untuk menentukan titik waktu untuk menghentikan pemulihan dari cadangan log transaksi. Contoh muncul di akhir artikel ini yang menunjukkan teknik ini.

Pemeliharaan kumpulan cadangan file

Menghapus kumpulan cadangan salinan bayangan file: Anda tidak dapat menimpa kumpulan cadangan salinan bayangan file menggunakan argumen FORMAT. Argumen FORMAT tidak diizinkan untuk tidak menghapus salinan bayangan file tanpa induk yang dibuat dengan cadangan salinan bayangan file asli. Untuk menghapus kumpulan cadangan rekam jepret file, gunakan prosedur tersimpan sys.sp_delete_backup sistem. Prosedur tersimpan ini menghapus file cadangan dan salinan bayangan file yang berisi kumpulan cadangan. Menggunakan metode lain untuk menghapus kumpulan cadangan salinan bayangan file memungkinkan untuk menghapus file cadangan tanpa menghapus salinan bayangan file di kumpulan cadangan.

Menghapus salinan bayangan file cadangan tanpa induk: Anda mungkin memiliki rekam jepret file tanpa induk jika file cadangan dihapus tanpa menggunakan sys.sp_delete_backup prosedur tersimpan sistem atau jika file database atau database dihilangkan sementara blob yang berisi database atau file database memiliki salinan bayangan file cadangan yang terkait dengannya. Untuk mengidentifikasi rekam jepret file yang mungkin yatim piatu, gunakan sys.fn_db_backup_file_snapshots fungsi sistem untuk mencantumkan semua rekam jepret file file file database. Untuk mengidentifikasi salinan bayangan file yang merupakan bagian dari kumpulan cadangan salinan bayangan file tertentu, gunakan prosedur tersimpan sistem RESTORE FILELISTONLY. Anda kemudian dapat menggunakan sys.sp_delete_backup_file_snapshot prosedur tersimpan sistem untuk menghapus salinan bayangan file cadangan individual yang tidak memiliki induk. Contoh menggunakan fungsi sistem ini dan prosedur tersimpan sistem ini ada di akhir artikel ini. Untuk informasi selengkapnya, lihat sp_delete_backup, sys.fn_db_backup_file_snapshots, sp_delete_backup_file_snapshot, dan RESTORE FILELISTONLY.

Pertimbangan dan Batasan

Penyimpanan Premium: Saat menggunakan penyimpanan premium, batasan berikut berlaku:

Akun penyimpanan tunggal: Blob tujuan dan salinan bayangan harus menggunakan akun penyimpanan yang sama.

Model pemulihan massal: Saat menggunakan model pemulihan yang dicatat secara massal dan bekerja dengan cadangan log transaksi yang berisi transaksi yang dicatat minimal, Anda tidak dapat melakukan pemulihan log (termasuk pemulihan titik waktu) menggunakan cadangan log transaksi. Sebaliknya, Anda melakukan pemulihan database ke waktu kumpulan cadangan rekam jepret file. Batasan ini identik dengan batasan dengan cadangan streaming.

Pemulihan online: Saat menggunakan cadangan salinan bayangan file, Anda tidak dapat melakukan pemulihan online. Untuk informasi selengkapnya tentang pemulihan online, lihat Pemulihan Online (SQL Server).

Penagihan: Saat menggunakan cadangan rekam jepret file SQL Server, biaya tambahan akan dikenakan saat data berubah. Untuk informasi selengkapnya, lihat Memahami Bagaimana Rekam Jepret Dikenakan Biaya.

Arsip: Jika Anda ingin mengarsipkan cadangan rekam jepret file, Anda dapat mengarsipkan ke penyimpanan blob atau untuk streaming cadangan. Untuk mengarsipkan ke penyimpanan blob, salin salinan bayangan dalam kumpulan cadangan salinan bayangan ke dalam blob terpisah. Untuk mengarsipkan ke cadangan streaming, pulihkan cadangan rekam jepret file sebagai database baru dan kemudian lakukan pencadangan streaming normal dengan kompresi dan/atau enkripsi dan arsipkan selama yang diinginkan, independen dari blob dasar.

Penting

Mempertahankan beberapa cadangan rekam jepret file hanya memiliki overhead performa kecil. Namun, mempertahankan jumlah cadangan rekam jepret file yang berlebihan dapat berdampak pada performa I/O pada database. Sebaiknya Anda hanya mempertahankan cadangan rekam jepret file yang diperlukan untuk mendukung tujuan titik pemulihan Anda.

Mencadangkan database dan log menggunakan cadangan salinan bayangan file

Contoh ini menggunakan cadangan rekam jepret file untuk mencadangkan AdventureWorks2022 database sampel ke URL.

-- To permit log backups, before the full database backup, modify the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE AdventureWorks2022  
   SET RECOVERY FULL;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'   
WITH FILE_SNAPSHOT;  
GO  
-- Back up the AdventureWorks2022 log using a time stamp in the backup file name.  
DECLARE @Log_Filename AS VARCHAR (300);  
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_Log_'+   
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';  
BACKUP LOG AdventureWorks2022  
 TO URL = @Log_Filename WITH FILE_SNAPSHOT;  
GO  

Memulihkan dari cadangan salinan bayangan file SQL Server

Contoh berikut memulihkan AdventureWorks2022 database menggunakan kumpulan cadangan salinan bayangan file log transaksi, dan memperlihatkan operasi pemulihan. Perhatikan bahwa Anda dapat memulihkan database dari satu kumpulan cadangan salinan bayangan file log transaksional.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH RECOVERY, REPLACE;  
GO  

Memulihkan dari cadangan salinan bayangan file SQL Server ke titik waktu tertentu

Contoh berikut memulihkan AdventureWorks2022 ke statusnya pada titik waktu tertentu menggunakan dua kumpulan cadangan salinan bayangan file log transaksi, dan menunjukkan operasi pemulihan.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH NORECOVERY,REPLACE;  
GO   
  
RESTORE LOG AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'   
WITH RECOVERY,STOPAT = 'May 18, 2015 5:35 PM';  
GO  

Menghapus kumpulan cadangan salinan bayangan file database

Untuk menghapus kumpulan cadangan rekam jepret file, gunakan prosedur tersimpan sys.sp_delete_backup sistem. Tentukan nama database agar sistem memverifikasi bahwa kumpulan cadangan salinan bayangan file yang ditentukan merupakan cadangan untuk database yang ditentukan. Jika tidak ada nama database yang ditentukan, kumpulan cadangan yang ditentukan dan salinan bayangan file-nya akan dihapus tanpa validasi tersebut. Untuk informasi selengkapnya, lihat sp_delete_backup.

Peringatan

Mencoba menghapus kumpulan cadangan rekam jepret file menggunakan metode lain, seperti Portal Manajemen Microsoft Azure atau penampil Azure Storage di SQL Server Management Studio tidak akan menghapus rekam jepret file dalam kumpulan cadangan. Alat-alat ini hanya akan menghapus file cadangan yang berisi pointer ke salinan bayangan file dalam kumpulan cadangan salinan bayangan file. Untuk mengidentifikasi salinan bayangan file cadangan yang tersisa setelah file cadangan dihapus dengan tidak benar, gunakan sys.fn_db_backup_file_snapshots fungsi sistem lalu gunakan sys.sp_delete_backup_file_snapshot prosedur tersimpan sistem untuk menghapus salinan bayangan file cadangan individual.

Contoh berikut menghapus kumpulan cadangan salinan bayangan file yang ditentukan, termasuk file cadangan dan salinan bayangan file yang terdiri dari kumpulan cadangan yang ditentukan.

EXEC sys.sp_delete_backup 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak', 'AdventureWorks2022' ;  
GO  

Menampilkan salinan bayangan file cadangan database

Untuk melihat rekam jepret file blob dasar untuk setiap file database, gunakan sys.fn_db_backup_file_snapshots fungsi sistem. Fungsi sistem ini memungkinkan Anda melihat semua rekam jepret file cadangan dari setiap blob dasar untuk database yang disimpan menggunakan Azure Blob Storage. Kasus penggunaan utama untuk fungsi ini adalah mengidentifikasi rekam jepret file cadangan database yang tetap ada ketika file cadangan untuk kumpulan cadangan salinan bayangan file dihapus menggunakan mekanisme selain sys.sp_delete_backup prosedur tersimpan sistem. Untuk menentukan salinan bayangan file cadangan yang merupakan bagian dari set cadangan utuh dan yang bukan bagian dari set cadangan utuh, gunakan RESTORE FILELISTONLY prosedur tersimpan sistem untuk mencantumkan salinan bayangan file milik setiap file cadangan. Untuk informasi selengkapnya, lihat sys.fn_db_backup_file_snapshots dan MEMULIHKAN FILELISTONLY.

Contoh berikut menampilkan daftar semua salinan bayangan file cadangan untuk database yang ditentukan.

--Either specify the database name or set the database context  
USE AdventureWorks2022  
select * from sys.fn_db_backup_file_snapshots (null) ;  
GO  
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022') ;  
GO  

Menghapus salinan bayangan file cadangan database individual

Untuk menghapus salinan bayangan file cadangan individual dari blob dasar database, gunakan prosedur tersimpan sys.sp_delete_backup_file_snapshot sistem. Kasus penggunaan utama untuk prosedur tersimpan sistem ini adalah menghapus file rekam jepret file tanpa induk yang tersisa setelah file cadangan dihapus menggunakan metode selain sys.sp_delete_backup prosedur tersimpan sistem. Untuk informasi selengkapnya, lihat sp_delete_backup_file_snapshot.

Peringatan

Menghapus salinan bayangan file individual yang merupakan bagian dari kumpulan cadangan salinan bayangan file akan membatalkan validasi kumpulan cadangan.

Contoh berikut akan menghapus salinan bayangan file cadangan yang ditentukan. URL untuk cadangan yang ditentukan diperoleh menggunakan sys.fn_db_backup_file_snapshots fungsi sistem.

EXEC sys.sp_delete_backup_file_snapshot N'AdventureWorks2022', N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z';  
GO  

Langkah berikutnya