Pemulihan database pada Azure SQL Managed Instance ke titik waktu sebelumnya

Berlaku untuk:Azure SQL Managed Instance

Anda bisa menggunakan pemulihan point-in-time untuk membuat database yang merupakan salinan database pada titik waktu tertentu yang lebih lama. Artikel ini menjelaskan cara melakukan pemulihan titik waktu database di Azure SQL Managed Instance.

Catatan

Buat atau Perbarui v02.01.2022 tidak digunakan lagi. Mulai Januari 2023, gunakan panggilan API Buat atau Perbarui v5.0.2022 pengganti untuk semua operasi pemulihan database.

Gambaran Umum

Pemulihan titik waktu berguna dalam skenario pemulihan, seperti untuk insiden yang disebabkan oleh kesalahan atau kegagalan, ketika data tidak dimuat dengan benar, atau jika data penting dihapus. Anda juga dapat menggunakannya hanya untuk menguji dan mengaudit penyebaran database Anda. File cadangan Azure disimpan selama 7 hingga 35 hari tergantung pada pengaturan database Anda.

Anda bisa menggunakan pemulihan point-in-time untuk memulihkan database dalam skenario berikut:

  • Dari database yang sudah ada
  • Dari database yang dihapus
  • Ke instans terkelola yang sama atau ke instans terkelola yang berbeda
  • Ke instans terkelola dalam langganan yang sama atau ke instans terkelola dalam langganan yang berbeda

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

Skenario portal Microsoft Azure Azure CLI PowerShell
Memulihkan database yang sudah ada ke instans terkelola yang sama Ya Ya Ya
Memulihkan database yang sudah ada ke instans terkelola yang berbeda Ya Ya Ya
Memulihkan database yang dihapus ke instans terkelola yang sama Ya Ya Ya
Memulihkan database yang dihapus ke instans terkelola yang berbeda Ya Ya Ya
Memulihkan database yang sudah ada ke instans terkelola di langganan lain Ya Ya Ya
Memulihkan database yang dihapus ke instans terkelola di langganan lain Ya Ya Ya

Izin

Untuk memulihkan database, Anda harus:

  • Anggota peran Kontributor SQL Server atau peran Kontributor SQL Managed Instance (tergantung pada tujuan pemulihan) dalam langganan
  • Pemilik langganan

Untuk memulihkan database ke langganan target yang berbeda, jika Anda tidak berada dalam peran Kontributor SQL Managed Instance, Anda juga harus memiliki izin berikut:

  • Microsoft.Sql/managedInstances/databases/readBackups/action pada instans terkelola SQL sumber.
  • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action pada instans terkelola SQL target.

Untuk informasi selengkapnya, lihat Azure RBAC: Peran bawaan.

Batasan

Batasan ini berlaku untuk pemulihan point-in-time di SQL Managed Instance:

  • Anda tidak dapat menggunakan pemulihan point-in-time untuk memulihkan seluruh penyebaran SQL Managed Instance. Gunakan pemulihan point-in-time hanya untuk membuat salinan database yang dihosting di SQL Managed Instance.

  • Batasan dalam pemulihan titik waktu bergantung pada apakah Anda memulihkan database Anda ke instans terkelola dalam langganan yang sama atau ke instans terkelola dalam langganan yang berbeda.

  • Saat kebijakan titik akhir layanan diaktifkan di Azure SQL Managed Instance, menempatkan kebijakan titik akhir layanan pada subnet mencegah pemulihan titik waktu dari instans di subnet yang berbeda.

Peringatan

Ketahui ukuran penyimpanan instans terkelola Anda. Bergantung pada ukuran data yang akan dipulihkan, Anda mungkin kehabisan penyimpanan untuk instans terkelola Anda. Jika Anda tidak memiliki ruang penyimpanan yang cukup di instans terkelola untuk data yang dipulihkan, gunakan pendekatan yang berbeda.

Memulihkan ke langganan yang sama

Jika Anda memulihkan dari satu instans terkelola ke instans terkelola lain dalam langganan Azure yang sama, kedua instans terkelola harus berada di wilayah yang sama. Saat ini, pemulihan lintas wilayah tidak didukung.

Memulihkan ke langganan yang berbeda

Memulihkan cadangan pemulihan point-in-time di seluruh langganan memiliki batasan berikut:

  • Kedua langganan harus berada di wilayah yang sama.
  • Kedua langganan harus berada di penyewa yang sama.
  • Jenis langganan harus Perjanjian Enterprise, Penyedia Solusi Cloud, Mitra Bersertifikat Microsoft, atau bayar sesuai penggunaan.
  • Anda hanya dapat menggunakan tindakan pemulihan pada instans utama.
  • Anda hanya dapat memulihkan cadangan dari wilayah utama. Memulihkan database dari wilayah sekunder yang direplikasi secara geografis tidak didukung untuk pemulihan titik waktu lintas langganan.
  • Pengguna yang mengambil tindakan pemulihan harus memiliki penetapan peran Kontributor SQL Managed Instance atau memiliki izin eksplisit ini:
    • Microsoft.Sql/managedInstances/databases/readBackups/action pada instans terkelola SQL sumber.
    • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action pada instans terkelola SQL target.
  • Jika Anda membawa kunci Anda sendiri (BYOK), kunci harus ada di kedua langganan.

Memulihkan database yang sudah ada

Anda bisa memulihkan database yang sudah ada dalam langganan yang sama dengan menggunakan portal Azure, PowerShell, atau Azure CLI. Jika Anda memulihkan ke instans yang berbeda dalam langganan yang sama dengan menggunakan PowerShell atau Azure CLI, pastikan untuk menentukan properti untuk sumber daya SQL Managed Instance target. Database dipulihkan ke instans yang sama secara default.

Jika Anda memulihkan ke langganan lain, panggilan BUAT atau Perbarui API v5.0.2022 yang mendasar tindakan pemulihan harus berisi restorePointInTime, , crossSubscriptionTargetManagedInstanceIddan atau crossSubscriptionSourceDatabaseIdcrossSubscriptionRestorableDroppedDatabaseId.

Untuk memulihkan database yang sudah ada, Anda bisa melakukannya dengan masuk ke halaman database di portal Azure, dan memilih Pulihkan.

Atau untuk memulihkan database, Anda dapat mengikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Buka SQL Managed Instance target tempat Anda berencana memulihkan database Anda.

  3. Pada halaman Gambaran Umum , pilih + Database baru untuk membuka halaman Buat Azure SQL Managed Database .

    Screenshot that shows the SQL Managed Instance overview pane in the Azure portal, with adding a new database selected.

  4. 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 di menu drop-down. Lalu pilih Berikutnya: Sumber data >

    Screenshot of the Azure portal that shows the Basics tab of the Create Azure SQL Managed Database page.

  5. 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 menu drop-down 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 >

    Screenshot of the Azure portal that shows the data source tab of the Create Azure SQL Managed Database page, with point-in-time restore selected.

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

    Screenshot of the Azure portal that shows the additional settings tab of the Create Azure SQL Managed Database page.

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

Memulihkan database yang terhapus

Anda dapat memulihkan database yang dihapus dengan menggunakan portal Azure, Azure PowerShell, atau Azure CLI.

Untuk memulihkan database terkelola yang dihapus dengan menggunakan portal Azure:

  1. Di portal Azure, buka instans terkelola sumber Anda.

  2. Di menu sebelah kiri di bawah Manajemen data, pilih Cadangan.

  3. Di bawah Perlihatkan database, pilih Dihapus.

  4. Agar database dapat dipulihkan, pilih Pulihkan.

    Screenshot that shows available databases in the portal, with the Restore button highlighted to restore a deleted database.

  5. Di Buat database Terkelola Azure SQL, masukkan atau pilih detail untuk instans terkelola target untuk memulihkan database Anda. Pilih tab Sumber data .

  6. Di Sumber data, masukkan atau pilih detail untuk database sumber Anda. Pilih tab Pengaturan tambahan.

  7. Di Pengaturan tambahan, konfigurasikan pengaturan retensi. Pilih tab Tinjau + buat.

  8. Di Tinjau + buat, pilih Buat untuk memulihkan database Anda yang dihapus.

Timpa database yang sudah ada

Untuk menimpa database yang sudah ada, Anda harus melakukan hal berikut:

  1. Hilangkan database asli yang ingin Anda timpa.
  2. Ganti nama database yang dipulihkan dari titik waktu ke nama database yang Anda hilangkan.

Menjatuhkan database asli

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

Opsi lain untuk menghilangkan database adalah menyambungkan ke instans terkelola Anda langsung di SQL Server Management Studio (SSMS), lalu menggunakan DROP perintah Transact-SQL (T-SQL):

DROP DATABASE WorldWideImporters;

Gunakan salah satu metode berikut untuk menyambungkan ke database di instans terkelola Anda:

  1. Di portal Azure, pilih database di instans terkelola Anda.

  2. Di bilah perintah, pilih Hapus.

    Screenshot that shows how to delete a database by using the Azure portal.

Ubah nama database baru agar sesuai dengan nama database asli

Gunakan SQL Server Management Studio (SSMS) untuk terhubung langsung ke instans terkelola Anda. Kemudian jalankan kueri T-SQL berikut. Kueri mengubah nama database yang dipulihkan menjadi nama database yang dihilangkan yang ingin Anda timpa.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

Gunakan salah satu metode berikut untuk menyambungkan ke database di instans terkelola Anda:

Langkah berikutnya

Pelajari tentang pencadangan otomatis.