Berlaku untuk:
Azure SQL Managed Instance
Artikel ini memperlihatkan kepada Anda cara mengonfigurasi kebijakan retensi cadangan jangka panjang (LTR) untuk Azure SQL Managed Instance dengan menggunakan portal Microsoft Azure, PowerShell, dan Azure CLI, serta cara melihat dan memulihkan cadangan dari penyimpanan Azure. Kebijakan LTR memungkinkan Anda untuk secara otomatis menyimpan cadangan database dalam kontainer penyimpanan Azure Blob terpisah hingga 10 tahun. Anda kemudian dapat memulihkan database menggunakan cadangan ini.
Prasyarat
Mempersiapkan lingkungan Anda untuk Azure CLI.
Persiapkan lingkungan Anda untuk PowerShell.
Penting
Modul PowerShell Azure Resource Manager (AzureRM) tidak digunakan lagi pada 29 Februari 2024. Semua pengembangan di masa mendatang harus menggunakan modul Az.Sql. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan. Modul AzureRM tidak lagi dipertahankan atau didukung. Argumen untuk perintah dalam modul Az PowerShell dan dalam modul AzureRM secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitasnya, lihat Memperkenalkan modul Az PowerShell baru.
Izin
Untuk melihat dan memulihkan cadangan LTR, Anda harus menjadi anggota peran berikut:
- Peran Pemilik Langganan atau
- Peran Kontributor SQL Managed Instance atau
- Peran kustom dengan izin berikut:
Microsoft.Sql/locations/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/read
Untuk menghapus cadangan LTR, Anda harus menjadi anggota salah satu peran berikut:
- Peran Pemilik Langganan atau
- Peran kustom dengan izin berikut:
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Catatan
Peran Kontributor SQL Managed Instance 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 yang termasuk dalam instans yang diturunkan, izin harus diberikan dalam lingkup langgananinstans tersebut.
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Membuat kebijakan retensi jangka panjang
Anda dapat mengonfigurasi SQL Managed Instance untuk mempertahankan pencadangan otomatis untuk jangka waktu yang lebih lama dari periode penyimpanan untuk tingkat layanan Anda.
Di portal Microsoft Azure, pilih instans terkelola SQL Anda, lalu pilih Cadangan. Pada tab Kebijakan penyimpanan , pilih database yang ingin Anda atur atau ubah kebijakan penyimpanan cadangan jangka panjang. Perubahan tidak akan berlaku untuk database apa pun yang tidak dipilih.
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.
Setelah selesai, pilih Terapkan.
Penting
Saat Anda mengaktifkan kebijakan retensi cadangan jangka panjang, mungkin perlu waktu hingga tujuh hari agar cadangan pertama terlihat dan tersedia untuk dipulihkan. Untuk detail irama cadangan LTR, lihat Retensi cadangan jangka panjang.
Jalankan perintah az sql midb show untuk mendapatkan detail untuk database SQL Managed Instance.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Jalankan perintah az sql midb ltr-policy set untuk membuat kebijakan LTR. Contoh berikut menetapkan kebijakan retensi jangka panjang selama 12 minggu untuk cadangan mingguan.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W"
Contoh ini menetapkan kebijakan penyimpanan selama 12 minggu untuk pencadangan mingguan, lima tahun untuk pencadangan tahunan, dan minggu 15 April untuk mengambil cadangan LTR tahunan.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W" /
--yearly-retention "P5Y" /
--week-of-year 16
# get the SQL Managed Instance
$subId = "<subscriptionId>"
$instanceName = "<instanceName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
YearlyRetention = 'P5Y'
WeekOfYear = '16'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Lihat cadangan dan pulihkan dari cadangan
Untuk melihat cadangan jangka panjang yang tersedia dari portal Azure, ikuti langkah-langkah berikut:
Di portal Microsoft Azure, pilih instans terkelola SQL Anda, lalu pilih Cadangan. Pada tab Cadangan yang tersedia, pilih database yang ingin Anda lihat cadangan yang tersedia. Pilih Kelola.
Di panel Kelola cadangan, tinjau cadangan yang tersedia.
Anda juga dapat memulihkan dari halaman ini dengan memilih cadangan dan memilih Pulihkan.
Atau, untuk memulihkan cadangan dari retensi jangka panjang dengan menggunakan portal Azure, ikuti langkah-langkah berikut:
Masuk ke portal Azure.
Buka SQL Managed Instance target tempat Anda berencana memulihkan database Anda.
Pada halaman Gambaran Umum , pilih + Database baru untuk membuka halaman Buat Azure SQL Managed Database .
Pada tab Dasar-dasar halaman Buat Azure SQL Managed Database, berikan detail grup langganan dan sumber daya di bawah Detail proyek. Kemudian, di bawah Detail database berikan nama baru database yang Anda rencanakan untuk dipulihkan. Konfirmasikan bahwa instans terkelola SQL yang benar tercantum dalam daftar dropdown. Kemudian pilih Berikutnya: Sumber data >.
Pada tab Sumber data , pilih Pemulihan titik waktu di bawah Gunakan data yang sudah ada. Berikan langganan, grup sumber daya, dan instans terkelola SQL yang berisi database sumber. Dari daftar dropdown Database terkelola , pilih database yang ingin Anda pulihkan. Lalu pilih titik waktu yang ingin Anda pulihkan databasenya. Instans sumber dan target dapat berupa instans yang sama atau dua instans yang berbeda. Pilih Selanjutnya : Pengaturan tambahan>.
Pada tab Pengaturan tambahan , Anda bisa mencentang kotak untuk mewarisi kebijakan penyimpanan dari database sumber. Atau, Anda dapat memilih Konfigurasikan retensi untuk membuka halaman Konfigurasikan kebijakan , dan atur kebijakan retensi yang Anda inginkan untuk database yang dipulihkan. Setelah selesai, pilih Tinjau + buat.
Pada Tinjau + buat, saat validasi berhasil, pilih Buat untuk memulihkan database Anda.
Tindakan ini memulai proses pemulihan, yang membuat database baru dan mengisinya dengan data dari database asli pada titik waktu yang ditentukan. Untuk informasi selengkapnya tentang proses pemulihan, lihat Waktu pemulihan.
Lihat kebijakan LTR
Jalankan perintah az sql midb ltr-policy show untuk melihat kebijakan LTR untuk satu database dalam suatu instans.
az sql midb ltr-policy show \
--resource-group mygroup \
--managed-instance myinstance \
--name mymanageddb
Melihat cadangan LTR
Gunakan perintah az sql midb ltr-backup list untuk melihat cadangan LTR dalam suatu instans.
az sql midb ltr-backup list \
--resource-group mygroup \
--location eastus2 \
--managed-instance myinstance
Pulihkan dari cadangan LTR
Jalankan perintah az sql midb ltr-backup restore untuk pemulihan database Anda dari cadangan LTR. Anda dapat menjalankan az sql midb ltr-backup show untuk mendapatkan backup-id.
Buat variabel untuk backup-id dengan perintahaz sql db ltr-backup show untuk penggunaan di masa mendatang.
get_backup_id=$(az sql midb ltr-backup show
--location eastus2 \
--managed-instance myinstance \
--database mydb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000" \
--query 'id' \
--output tsv)
Memulihkan database Anda dari cadangan LTR
az sql midb ltr-backup restore \
--dest-database targetmidb \
--dest-mi myinstance \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Penting
Untuk memulihkan dari cadangan LTR setelah instans dihapus, Anda harus memiliki izin yang tercakup ke langganan instans dan langganan tersebut harus aktif.
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.
Lihat kebijakan LTR
Contoh ini memperlihatkan cara mencantumkan kebijakan LTR dalam instans untuk satu database.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Contoh ini memperlihatkan cara mencantumkan kebijakan LTR untuk semua database pada instans.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
Menghapus kebijakan LTR
Contoh ini memperlihatkan cara membersihkan kebijakan LTR dari database.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Melihat cadangan LTR
Contoh ini menunjukkan cara mencantumkan cadangan LTR dalam instans.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# 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
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
Pulihkan dari cadangan LTR
Contoh ini menunjukkan cara memulihkan dari cadangan LTR. Perhatikan, 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 instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
Penting
Untuk memulihkan dari cadangan LTR setelah instans dihapus, Anda harus memiliki izin yang tercakup ke langganan instans dan langganan tersebut harus aktif. Anda juga harus menghilangkan parameter -ResourceGroupName opsional.
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 instans dihapus, Anda harus memiliki izin cakupan 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 yang membuat permintaan dan kapan. Lihat Membuat pemberitahuan log aktivitas untuk instruksi mendetail.
- Di portal Azure, navigasikan ke instans terkelola SQL.
- 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.
Jalankan az sql midb ltr-backup list untuk mendapatkan cadangan name.
Jalankan perintah az sql midb ltr-backup delete untuk menghapus cadangan LTR.
az sql midb ltr-backup delete \
--location eastus2 \
--managed-instance myinstance \
--database mymanageddb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000"
Contoh ini menunjukkan cara menghapus cadangan LTR paling awal dari daftar cadangan. Sampel ini mendapatkan daftar cadangan LTR untuk database tertentu dari wilayah Azure di bawah instans terkelola SQL yang diberikan.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
Batasan
Pertimbangkan batasan berikut:
- Pencadangan database yang diambil dari instans yang dikonfigurasi dengan kebijakan pembaruan SQL Server 2022 dapat dipulihkan ke instans yang dikonfigurasi dengan kebijakan pembaruan SQL Server 2022, SQL Server 2025, atau Always-up-to-date .
- Pencadangan database yang diambil dari instans yang dikonfigurasi dengan kebijakan pembaruan SQL Server 2025 dapat dipulihkan ke instans yang dikonfigurasi dengan kebijakan pembaruan SQL Server 2025 atau Always-up-to-date , tetapi tidak ke instans yang dikonfigurasi dengan kebijakan pembaruan SQL Server 2022 .
- Pencadangan database yang diambil dari instans yang dikonfigurasi dengan kebijakan pembaruan Always-up-to-date hanya dapat dipulihkan ke instans yang juga dikonfigurasi dengan kebijakan pembaruan Always-up-to-date .
- Cadangan LTR dari instans dapat dipulihkan ke server atau instans terkelola yang ada di bawah langganan yang sama dengan database asli. Untuk daftar lengkap kemampuan pemulihan, batasan, dan fitur, lihat Memulihkan kemampuan dan fitur di Azure SQL Managed Instance.
Konten terkait