Berlaku untuk:
Azure SQL Managed Instance
Di Azure SQL Managed Instance, Anda dapat mengonfigurasi kebijakan penyimpanan cadangan jangka panjang (LTR). Ini memungkinkan Anda mempertahankan cadangan database secara otomatis dalam kontainer penyimpanan Azure Blob terpisah hingga 10 tahun. Anda kemudian dapat memulihkan database menggunakan cadangan ini dengan portal Azure, Azure CLI, dan PowerShell.
Bagian berikut menunjukkan cara menggunakan portal Microsoft Azure dan PowerShell untuk mengonfigurasi penyimpanan cadangan jangka panjang, melihat cadangan di penyimpanan Azure SQL, dan melakukan pemulihan dari cadangan di penyimpanan Azure SQL.
Prasyarat
Mempersiapkan lingkungan Anda untuk Azure CLI.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
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.
Penting
Modul PowerShell Azure Resource Manager masih didukung oleh Azure SQL Database, namun, pengembangan di masa depan akan dilakukan dalam modul Az.Sql. Untuk cmdlet ini, lihat AzureRM.Sql. Argumen untuk perintah dalam modul Az dan dalam modul AzureRm secara substansial identik.
Untuk Get-AzSqlInstanceDatabaseLongTermRetentionBackup
dan Restore-AzSqlInstanceDatabase
, Anda harus menjadi anggota salah satu 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 Remove-AzSqlInstanceDatabaseLongTermRetentionBackup
, Anda harus menjadi anggota salah satu peran berikut:
- Peran Pemilik Langganan atau
- Peran kustom dengan izin berikut:
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
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 Azure, pilih instans terkelola Anda lalu pilih Cadangan. Pada tab Kebijakan retensi, pilih database tempat Anda ingin mengatur atau mengubah kebijakan retensi 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 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 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 cadangan mingguan, 5 tahun untuk cadangan 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 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 Azure, pilih instans terkelola 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 yang benar tercantum dalam daftar dropdown. Lalu 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 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 sama, atau dua instans yang berbeda. Pilih Berikutnya : Pengaturan tambahan >
Pada tab Pengaturan tambahan, Anda bisa mencentang kotak untuk mewarisi kebijakan penyimpanan dari database sumber, atau, atau, Anda dapat memilih Konfigurasikan retensi untuk membuka halaman Konfigurasi kebijakan , dan mengatur 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 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 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. 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 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 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 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
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 atau Selalu terbaru. Cadangan database yang diambil dari instans yang dikonfigurasi dengan kebijakan pembaruan Always-to-date hanya dapat dipulihkan ke instans yang juga dikonfigurasi dengan kebijakan pembaruan Always-to-date.
Langkah berikutnya
- Untuk mempelajari tentang pencadangan otomatis yang dihasilkan layanan, lihat pencadangan otomatis.
- Untuk mempelajari tentang retensi cadangan jangka panjang, lihat retensi cadangan jangka panjang.