Cadangan Salinan Bayangan untuk File Database di Azure
Berlaku untuk:
SQL Server (semua versi yang didukung)
Pencadangan salinan bayangan 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. Kemampuan ini memungkinkan Anda menyederhanakan kebijakan pencadangan dan pemulihan. Untuk informasi selengkapnya tentang menyimpan file database menggunakan Azure Blob Storage, lihat SQL Server Data Files di Microsoft Azure.

Unduh
Untuk mengunduh SQL Server 2016 (13.x), buka Pusat Evaluasi.
Memiliki akun Azure? Kemudian buka Di sini 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 salinan bayangan 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 akan ditulis ke URL, disk, atau pita. Disarankan pencadangan ke URL. Untuk informasi selengkapnya tentang pencadangan, lihat BACKUP (Transact-SQL) dan saat mencadangkan ke URL, lihat Pencadangan SQL Server ke URL.

Menghapus blob dasar akan membatalkan kumpulan cadangan dan Anda dicegah untuk menghilangkan blob yang berisi salinan bayangan file (kecuali Anda secara tegas memilih untuk menghapus blob dengan semua salinan bayangan 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 salinan bayangan file, gunakan prosedur tersimpan sistem sys.sp_delete_backup .
Pencadangan database lengkap: Melakukan pencadangan database lengkap menggunakan cadangan salinan bayangan file membuat rekam jepret Azure dari setiap data dan file log yang terdiri dari database, menetapkan rantai cadangan log transaksi, dan menulis lokasi rekam jepret file ke dalam file cadangan.
Pencadangan log transaksi: Melakukan pencadangan log transaksi menggunakan cadangan salinan bayangan file membuat salinan bayangan file dari setiap file database (bukan hanya log transaksi), merekam 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 2016 dengan Microsoft Azure Blob Storage, lihat Tutorial: Menggunakan Microsoft Azure Blob Storage dengan database SQL Server 2016
Memulihkan menggunakan cadangan salinan bayangan file
Karena setiap kumpulan cadangan salinan bayangan file berisi salinan bayangan file dari setiap file database, proses pemulihan memerlukan paling banyak dua set cadangan salinan bayangan file yang berdampingan. 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 set cadangan apa pun: Untuk melakukan operasi RESTORE DATABASE untuk memulihkan database ke waktu kumpulan cadangan salinan bayangan 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 topik ini yang menunjukkan teknik ini.
Ke titik waktu antara dua set cadangan salinan bayangan 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 yang Anda inginkan untuk 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 topik 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 salinan bayangan file, gunakan prosedur tersimpan sistem sys.sp_delete_backup . 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 salinan bayangan file tanpa induk jika file cadangan dihapus tanpa menggunakan prosedur tersimpan sistem sys.sp_delete_backup atau jika database atau file database dihilangkan saat blob yang berisi database atau file database memiliki salinan bayangan file cadangan yang terkait dengannya. Untuk mengidentifikasi salinan bayangan file yang mungkin yatim piatu, gunakan fungsi sistem sys.fn_db_backup_file_snapshots untuk mencantumkan semua salinan bayangan 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 prosedur tersimpan sistem sys.sp_delete_backup_file_snapshot untuk menghapus salinan bayangan file cadangan individual yang tidak memiliki induk. Contoh menggunakan fungsi sistem ini dan prosedur tersimpan sistem ini ada di akhir topik ini. Untuk informasi selengkapnya, lihat sp_delete_backup (Transact-SQL), sys.fn_db_backup_file_snapshots (Transact-SQL), sp_delete_backup_file_snapshot (Transact-SQL), dan RESTORE FILELISTONLY (Transact-SQL).
Pertimbangan dan Batasan
Penyimpanan premium: Saat menggunakan penyimpanan premium, batasan berikut berlaku:
File cadangan sendiri tidak dapat disimpan menggunakan penyimpanan premium.
Frekuensi cadangan tidak boleh kurang dari 10 menit.
Jumlah maksimum salinan bayangan yang dapat Anda simpan adalah 100.
Diperlukan RESTORE WITH MOVE.
Untuk informasi tambahan tentang penyimpanan premium, lihat Penyimpanan Premium: High-Performance Storage untuk Beban Kerja Azure Virtual Machine
Akun penyimpanan tunggal: Rekam jepret file dan blob tujuan harus menggunakan akun penyimpanan yang sama.
Model pemulihan massal: Saat menggunakan mode 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 salinan bayangan 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 salinan bayangan 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 salinan bayangan file, Anda dapat mengarsipkan ke penyimpanan blob atau 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 salinan bayangan file sebagai database baru dan kemudian lakukan pencadangan streaming normal dengan kompresi dan/atau enkripsi dan arsipkan selama yang diinginkan, terlepas dari blob dasar.
Penting
Mempertahankan beberapa cadangan rekam jepret file hanya memiliki overhead performa kecil. Namun, mempertahankan jumlah cadangan salinan bayangan file yang berlebihan dapat berdampak pada performa I/O pada database. Kami sarankan Anda hanya mempertahankan cadangan salinan bayangan file yang diperlukan untuk mendukung tujuan titik pemulihan Anda.
Mencadangkan database dan log menggunakan cadangan salinan bayangan file
Contoh di bawah ini menggunakan cadangan salinan bayangan file untuk mencadangkan database sampel AdventureWorks2016 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 AdventureWorks2016
SET RECOVERY FULL;
GO
-- Back up the full AdventureWorks2016 database.
BACKUP DATABASE AdventureWorks2016
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak'
WITH FILE_SNAPSHOT;
GO
-- Back up the AdventureWorks2016 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>/AdventureWorks2016_Log_'+
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';
BACKUP LOG AdventureWorks2016
TO URL = @Log_Filename WITH FILE_SNAPSHOT;
GO
Memulihkan dari cadangan salinan bayangan file SQL Server
Contoh berikut memulihkan database AdventureWorks2016 menggunakan kumpulan cadangan salinan bayangan file log transaksi, dan menunjukkan operasi pemulihan. Perhatikan bahwa Anda dapat memulihkan database dari satu kumpulan cadangan salinan bayangan file log transaksional.
RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_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 AdventureWorks2016 ke statusnya pada titik waktu tertentu menggunakan dua kumpulan cadangan salinan bayangan file log transaksi, dan menunjukkan operasi pemulihan.
RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_16_00_00.trn'
WITH NORECOVERY,REPLACE;
GO
RESTORE LOG AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_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 salinan bayangan file, gunakan prosedur tersimpan sistem sys.sp_delete_backup . Tentukan nama database agar sistem memverifikasi bahwa kumpulan cadangan salinan bayangan file yang ditentukan memang 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 (Transact-SQL).
Peringatan
Mencoba menghapus kumpulan cadangan salinan bayangan 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 fungsi sistem sys.fn_db_backup_file_snapshots lalu gunakan prosedur tersimpan sistem sys.sp_delete_backup_file_snapshot 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.
sys.sp_delete_backup 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak', 'adventureworks2016' ;
GO
Menampilkan salinan bayangan file cadangan database
Untuk melihat salinan bayangan file dari blob dasar untuk setiap file database, gunakan fungsi sistem sys.fn_db_backup_file_snapshots . Fungsi sistem ini memungkinkan Anda melihat semua salinan bayangan file cadangan dari setiap blob dasar untuk database yang disimpan menggunakan Azure Blob Storage Service. Kasus penggunaan utama untuk fungsi ini adalah mengidentifikasi salinan bayangan file cadangan database yang tetap ada ketika file cadangan untuk kumpulan cadangan salinan bayangan file dihapus menggunakan mekanisme selain prosedur tersimpan sistem sys.sp_delete_backup . Untuk menentukan salinan bayangan file cadangan yang merupakan bagian dari kumpulan cadangan utuh dan yang bukan bagian dari set cadangan utuh, gunakan prosedur tersimpan sistem RESTORE FILELISTONLY untuk mencantumkan salinan bayangan file milik setiap file cadangan. Untuk informasi selengkapnya, lihat sys.fn_db_backup_file_snapshots (Transact-SQL) dan RESTORE FILELISTONLY (Transact-SQL).
Contoh berikut menampilkan daftar semua salinan bayangan file cadangan untuk database yang ditentukan.
--Either specify the database name or set the database context
USE AdventureWorks2016
select * from sys.fn_db_backup_file_snapshots (null) ;
GO
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2016') ;
GO
Menghapus salinan bayangan file cadangan database individual
Untuk menghapus salinan bayangan file cadangan individual dari blob dasar database, gunakan prosedur tersimpan sistem sys.sp_delete_backup_file_snapshot . Kasus penggunaan utama untuk prosedur tersimpan sistem ini adalah menghapus file salinan bayangan file tanpa induk yang tersisa setelah file cadangan dihapus menggunakan metode selain prosedur tersimpan sistem sys.sp_delete_backup . Untuk informasi selengkapnya, lihat sp_delete_backup_file_snapshot (Transact-SQL).
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 fungsi sistem sys.fn_db_backup_file_snapshots .
sys.sp_delete_backup_file_snapshot N'adventureworks2016', N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z';
GO
Lihat juga
Tutorial: Menggunakan Microsoft Azure Blob Storage dengan database SQL Server 2016