Pemulihan database pada Azure SQL Managed Instance ke titik waktu sebelumnya

BERLAKU UNTUK: Azure SQL Managed Instance

Gunakan pemulihan titik waktu (PITR) untuk membuat database sebagai salinan database lain dari beberapa waktu sebelumnya. Artikel ini menjelaskan cara melakukan pemulihan titik waktu database di Azure SQL Managed Instance.

Pemulihan titik waktu berguna dalam skenario pemulihan, seperti insiden yang disebabkan oleh kesalahan, data yang dimuat dengan salah, atau penghapusan data penting. Anda juga dapat menggunakannya hanya untuk pengujian atau audit. File cadangan disimpan selama 7 hingga 35 hari, bergantung pada pengaturan database Anda.

Pemulihan titik waktu bisa memulihkan database:

  • dari database yang sudah ada.
  • dari database yang dihapus.
  • ke SQL Managed Instance yang sama, atau ke SQL Managed Instance lainnya.

Batasan

Pemulihan titik waktu ke SQL Managed Instance memiliki batasan berikut:

  • Saat Anda memulihkan dari satu instans SQL Managed Instance ke instans terkelola lainnya, kedua instans harus berada di langganan dan wilayah yang sama. Pemulihan lintas wilayah dan lintas langganan saat ini tidak didukung.
  • Pemulihan titik waktu dari seluruh SQL Managed Instance tidak dimungkinkan. Artikel ini hanya menjelaskan apa yang mungkin: pemulihan titik waktu database yang dihosting di SQL Managed Instance.

Peringatan

Waspadai ukuran penyimpanan SQL Managed Instance Anda. Bergantung pada ukuran data yang akan dipulihkan, Anda mungkin kehabisan penyimpanan instans. Jika tidak ada cukup ruang untuk data yang dipulihkan, gunakan pendekatan yang berbeda.

Tabel berikut ini memperlihatkan skenario pemulihan titik waktu untuk SQL Managed Instance:

Pemulihan DB yang ada ke SQL Managed Instance yang sama Pemulihan DB yang ada ke SQL Managed Instance lainnya Pemulihan DB yang diletakkan ke SQL Managed Instance yang sama Pemulihan DB yang diletakkan ke SQL Managed Instance lainnya
portal Microsoft Azure Ya Ya Ya Ya
Azure CLI Ya Ya Tidak Tidak
PowerShell Ya Ya Ya Ya

Memulihkan database yang sudah ada

Pemulihan database yang sudah ada ke SQL Managed Instance yang sama menggunakan portal Azure, PowerShell, atau Azure CLI. Untuk memulihkan database ke SQL Managed Instance lain, gunakan PowerShell atau Azure CLI sehingga Anda dapat menentukan properti untuk SQL Managed Instance dan grup sumber daya target. Jika Anda tidak menentukan parameter ini, database akan dipulihkan ke SQL Managed Instance yang ada secara default. Portal Azure saat ini tidak mendukung pemulihan ke SQL Managed Instance lainnya.

  1. Masuk ke portal Azure.

  2. Buka SQL Managed Instance Anda dan pilih database yang ingin Anda pulihkan.

  3. Pilih Pulihkan pada halaman database:

    Restore a database by using the Azure portal

  4. Pada halaman Pulihkan, pilih titik untuk tanggal dan waktu yang ingin Anda pulihkan databasenya.

  5. Pilih Konfirmasi 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.

Memulihkan database yang terhapus

Memulihkan database yang dihapus dapat dilakukan dengan menggunakan portal PowerShell atau Azure. Untuk memulihkan database yang dihapus ke instans yang sama, gunakan portal Azure atau PowerShell. Untuk memulihkan database yang dihapus ke contoh lain, gunakan PowerShell.

Portal

Untuk memulihkan database terkelola menggunakan portal Azure, buka halaman gambaran umum SQL Managed Instance, dan pilih Database yang dihapus. Pilih database terhapus yang ingin Anda pulihkan, dan ketik nama untuk database baru yang akan dibuat dengan data yang dipulihkan dari cadangan.

Screenshot of restore deleted Azure SQL instance database

PowerShell

Untuk memulihkan database ke instans yang sama, perbarui nilai parameter lalu jalankan perintah PowerShell berikut:

$subscriptionId = "<Subscription ID>"
Get-AzSubscription -SubscriptionId $subscriptionId
Select-AzSubscription -SubscriptionId $subscriptionId

$resourceGroupName = "<Resource group name>"
$managedInstanceName = "<SQL Managed Instance name>"
$deletedDatabaseName = "<Source database name>"
$targetDatabaseName = "<target database name>"

$deletedDatabase = Get-AzSqlDeletedInstanceDatabaseBackup -ResourceGroupName $resourceGroupName `
-InstanceName $managedInstanceName -DatabaseName $deletedDatabaseName

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName

Untuk memulihkan database ke SQL Managed Instance lain, tentukan juga nama grup sumber daya target dan SQL Managed Instance target:

$targetResourceGroupName = "<Resource group of target SQL Managed Instance>"
$targetInstanceName = "<Target SQL Managed Instance name>"

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName `
   -TargetResourceGroupName $targetResourceGroupName `
   -TargetInstanceName $targetInstanceName 

Timpa database yang sudah ada

Untuk menimpa database yang sudah ada, Anda harus:

  1. Letakkan database yang sudah ada yang ingin Anda timpa.
  2. Ganti nama database yang dipulihkan dalam waktu ke nama database yang Anda turunkan.

Menjatuhkan database asli

Anda bisa menghapus database dengan menggunakan portal Azure, PowerShell, atau Azure CLI.

Anda juga dapat menjatuhkan database dengan menyambungkan ke SQL Managed Instance secara langsung, memulai SQL Server Management Studio (SSMS), lalu menjalankan perintah Transact-SQL (T-SQL) berikut:

DROP DATABASE WorldWideImporters;

Gunakan salah satu metode berikut untuk menyambungkan ke database Anda di SQL Managed Instance:

Di portal Azure, pilih database dari SQL Managed Instance, lalu pilih Hapus.

Delete a database by using the Azure portal

Mengubah nama database baru agar sesuai dengan nama database asli

Sambungkan langsung ke SQL Managed Instance dan mulai SQL Server Management Studio. Kemudian, jalankan kueri Transact-SQL (T-SQL) berikut. Kueri akan mengubah nama database yang dipulihkan menjadi database yang dijatuhkan yang ingin Anda timpa.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

Gunakan salah satu metode berikut untuk menyambungkan ke database Anda di SQL Managed Instance:

Langkah berikutnya

Pelajari tentang pencadangan otomatis.