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.
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 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 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.
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.
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.
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:
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.
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.
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.