Dengan Azure SQL Database, Anda dapat mengatur kebijakan retensi cadangan jangka panjang (LTR) untuk secara otomatis menyimpan cadangan dalam kontainer penyimpanan Azure Blob terpisah hingga 10 tahun. Lalu Anda dapat memulihkan database menggunakan cadangan ini menggunakan portal Microsoft Azure, Azure CLI, atau PowerShell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Persiapkan lingkungan Anda untuk PowerShell.
Catatan
Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Penting
Modul Az menggantikan AzureRM. Semua pengembangan di masa depan adalah untuk modul Az.Sql.
Untuk Get-AzSqlDatabaseLongTermRetentionBackup dan Restore-AzSqlDatabase, Anda harus menjadi anggota salah satu peran berikut:
Peran Kontributor SQL Server tidak memiliki izin untuk menghapus cadangan LTR.
Izin kontrol akses berbasis peran Azure (RBAC) dapat diberikan dalam cakupan grup langganan atau sumber daya. Namun, untuk mengakses cadangan LTR milik server yang dijatuhkan, izin ini harus diberikan dalam cakupan langganan server tersebut:
Anda dapat mengonfigurasi SQL Database untuk mempertahankan pencadangan otomatis untuk jangka waktu yang lebih lama dari periode retensi untuk tingkat layanan Anda.
Di portal Microsoft Azure, buka server Anda lalu pilih Cadangan. Pilih tab Kebijakan retensi untuk mengubah pengaturan retensi cadangan Anda.
Pada tab Kebijakan retensi, pilih database tempat Anda ingin mengatur atau mengubah kebijakan retensi cadangan jangka panjang. Database yang tidak dipilih tidak akan terpengaruh.
Di panel Konfigurasi kebijakan, tentukan periode retensi yang Anda inginkan untuk pencadangan mingguan, bulanan, atau tahunan. Pilih periode retensi '0' untuk menunjukkan bahwa tidak ada retensi cadangan jangka panjang yang harus ditetapkan.
Pilih Terapkan untuk menerapkan pengaturan retensi yang dipilih ke semua database yang dipilih.
Penting
Saat Anda mengaktifkan kebijakan penyimpanan cadangan jangka panjang, mungkin perlu waktu hingga 7 hari agar cadangan pertama menjadi terlihat dan tersedia untuk dipulihkan. Untuk detail cadence cadangan LTR, lihat retensi cadangan jangka panjang.
Jalankan perintah az sql db ltr-policy set untuk membuat kebijakan LTR. Contoh berikut menetapkan kebijakan retensi jangka panjang selama 12 minggu untuk cadangan mingguan.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W"
Contoh ini menetapkan kebijakan penyimpanan selama 12 minggu untuk cadangan mingguan, 5 tahun untuk cadangan tahunan, dan minggu 15 April untuk mengambil cadangan LTR tahunan.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W" \
--yearly-retention "P5Y" \
--week-of-year 16
# get the SQL server
$subId = "<subscriptionId>"
$serverName = "<serverName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16
Lihat cadangan dan pulihkan dari cadangan
Tampilkan cadangan yang dipertahankan untuk database tertentu dengan kebijakan LTR, dan pulihkan dari cadangan tersebut.
Catatan
Jika server logis telah dihapus, gunakan perintah Azure CLI atau PowerShell untuk melihat dan memulihkan cadangan LTR.
Di portal Microsoft Azure, buka server Anda lalu pilih Cadangan. Untuk melihat cadangan LTR yang tersedia untuk database tertentu, pilih Kelola di bawah kolom Cadangan LTR yang Tersedia. Panel muncul dengan daftar cadangan LTR yang tersedia untuk database yang dipilih.
Di panel cadangan LTR yang Tersedia yang muncul, tinjau cadangan yang tersedia. Pilih cadangan untuk dipulihkan.
Untuk memulihkan dari cadangan LTR yang tersedia, pilih cadangan tempat Anda ingin memulihkan, lalu pilih Pulihkan.
Pilih nama untuk database baru Anda, lalu pilih Tinjau + Buat untuk meninjau detail Pemulihan Anda. Pilih Buat untuk memulihkan database Anda dari cadangan yang dipilih.
Pada toolbar, pilih ikon pemberitahuan untuk melihat status pekerjaan pemulihan.
Ketika pekerjaan pemulihan selesai, buka halaman database SQL untuk menampilkan database yang baru dipulihkan.
Jalankan perintah az sql db ltr-policy show untuk melihat kebijakan LTR untuk satu database di server Anda.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Melihat cadangan LTR
Gunakan perintah az sql db ltr-backup list untuk mencantumkan cadangan LTR untuk database. Anda dapat menggunakan perintah ini untuk menemukan parameter name untuk digunakan dalam perintah lain.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Penting
Untuk memulihkan dari cadangan LTR setelah server atau grup sumber daya dihapus, Anda harus memiliki izin yang tercakup ke langganan server dan langganan tersebut harus aktif. Anda juga harus menghilangkan parameter -ResourceGroupName opsional.
Catatan
Dari sini, Anda dapat terhubung ke database yang dipulihkan menggunakan SQL Server Management Studio untuk melakukan tugas yang diperlukan, seperti pertukaran database. Lihat pemulihan waktu tertentu.
Lihat kebijakan LTR
Contoh ini memperlihatkan cara mencantumkan kebijakan LTR dalam server.
# get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName $resourceGroup -ServerName $serverName | `
Get-AzSqlDatabaseLongTermRetentionPolicy
# get the LTR policy of a specific database
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup
Menghapus kebijakan LTR
Contoh ini memperlihatkan cara membersihkan kebijakan LTR dari database.
Contoh ini memperlihatkan cara mencantumkan cadangan LTR di dalam server.
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location
# get the list of LTR backups from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName
# get the LTR backups for a specific database from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live
# only list the latest LTR backup for each database
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase
Pulihkan dari cadangan LTR
Contoh ini menunjukkan cara memulihkan dari cadangan LTR. Catatan, antarmuka ini tidak berubah tetapi parameter ID sumber daya sekarang memerlukan ID sumber daya cadangan LTR.
# restore a specific LTR backup as an P1 database on the server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
Penting
Untuk memulihkan dari cadangan LTR setelah server atau grup sumber daya dihapus, Anda harus memiliki izin yang tercakup ke langganan server dan langganan tersebut harus aktif. Anda juga harus menghilangkan parameter -ResourceGroupName opsional.
Jika Anda menggunakan cadangan LTR untuk memenuhi kepatuhan atau persyaratan misi penting lainnya, pertimbangkan untuk melakukan latihan pemulihan berkala untuk memverifikasi bahwa cadangan LTR dapat dipulihkan, dan bahwa pemulihan menghasilkan status database yang diharapkan.
Catatan
Dari sini, Anda dapat menyambungkan ke database yang dipulihkan menggunakan SQL Server Management Studio untuk melakukan tugas yang diperlukan, seperti mengekstrak sedikit data dari database yang dipulihkan untuk disalin ke database yang sudah ada atau untuk menghapus database yang ada dan mengganti nama database yang dipulihkan ke nama database yang sudah ada. Lihat pemulihan waktu tertentu.
Menghapus cadangan LTR
Hapus cadangan yang dipertahankan untuk database tertentu dengan kebijakan LTR.
Penting
Menghapus cadangan LTR tidak dapat dibatalkan. Untuk menghapus cadangan LTR setelah server dihapus, Anda harus memiliki izin lingkup Langganan. Anda dapat mengatur pemberitahuan tentang setiap penghapusan di Azure Monitor dengan memfilter operasi 'Menghapus cadangan retensi jangka panjang'. Log aktivitas berisi informasi tentang siapa dan kapan membuat permintaan. Lihat Membuat pemberitahuan log aktivitas untuk instruksi mendetail.
Di portal Azure, navigasikan ke server logis Azure SQL Database.
Pilih Cadangan. Untuk melihat cadangan LTR yang tersedia untuk database tertentu, pilih Kelola di bawah kolom Cadangan LTR yang Tersedia. Panel muncul dengan daftar cadangan LTR yang tersedia untuk database yang dipilih.
Di panel cadangan LTR yang Tersedia yang muncul, tinjau cadangan yang tersedia. Pilih cadangan untuk dihapus. Pilih Hapus.
Jika Anda menggunakan cadangan LTR untuk memenuhi kepatuhan atau persyaratan misi penting lainnya:
Verifikasi bahwa cadangan LTR diambil sesuai kebijakan yang dikonfigurasi dengan mengikuti langkah-langkah yang diuraikan dalam bagian menampilkan cadangan baik menggunakan Portal, Azure CLI, atau PowerShell.
Pertimbangkan untuk melakukan latihan pemulihan berkala untuk memverifikasi bahwa pemulihan cadangan LTR menghasilkan status database yang diharapkan.
Konten terkait
Untuk mempelajari tentang pencadangan otomatis yang dihasilkan layanan, lihat pencadangan otomatis