Memulihkan database SQL Server di komputer virtual Azure

Artikel ini menjelaskan cara memulihkan database SQL Server yang berjalan di komputer virtual (virtual machine/VM) Azure yang telah dicadangkan oleh layanan Azure Backup ke vault Layanan Pemulihan Azure Backup.

Artikel ini menjelaskan cara memulihkan database SQL Server. Untuk informasi selengkapnya, lihat Mencadangkan database SQL Server di komputer virtual Azure.

Catatan

Lihat matriks dukungan pencadangan SQL untuk mengetahui lebih lanjut tentang konfigurasi dan skenario yang didukung.

Memulihkan ke suatu waktu atau titik pemulihan

Azure Backup dapat memulihkan database SQL Server yang berjalan di komputer virtual Azure sebagai berikut:

  • Memulihkan ke tanggal atau waktu tertentu (hingga hitungan detik) menggunakan cadangan log. Azure Backup secara otomatis menentukan pencadangan diferensial penuh yang sesuai dan rantai cadangan log yang diperlukan untuk memulihkan berdasarkan waktu yang dipilih.
  • Memulihkan cadangan lengkap atau diferensial tertentu untuk memulihkan ke titik pemulihan tertentu.

Prasyarat pemulihan

Sebelum Anda memulihkan database, perhatikan hal berikut:

  • Anda dapat memulihkan database ke instans SQL Server di wilayah Azure yang sama.
  • Server tujuan harus didaftarkan ke vault yang sama dengan sumbernya. Jika Anda ingin memulihkan cadangan ke vault lain, aktifkan Pemulihan Lintas Langganan.
  • Jika Anda memiliki beberapa instans yang berjalan di server, semua instans harus siap dan berjalan. Jika tidak, server tidak akan muncul dalam daftar server tujuan tempat Anda memulihkan database. Untuk informasi selengkapnya, lihat langkah-langkah pemecahan masalah.
  • Untuk memulihkan database terenkripsi TDE ke SQL Server lain, Anda harus terlebih dahulu memulihkan sertifikat ke server tujuan.
  • Database yang didukung oleh CDC harus dipulihkan menggunakan opsi Pulihkan sebagai file.
  • Kami sangat menyarankan untuk memulihkan database "master" menggunakan opsi Pulihkan sebagai file, kemudian pulihkan menggunakan perintah T-SQL.
  • Untuk semua database sistem (model, msdb), hentikan layanan SQL Server Agent sebelum Anda memicu pemulihan.
  • Tutup aplikasi apa pun yang mungkin mencoba untuk mengambil koneksi ke salah satu database ini.

Memulihkan database

Untuk memulihkan, Anda memerlukan izin berikut:

  • Izin Operator Cadangan di vault tempat Anda melakukan pemulihan.
  • Akses Kontributor (tulis) ke komputer virtual sumber yang dicadangkan.
  • Akses Kontributor (tulis) ke VM target:
    • Jika Anda memulihkan ke komputer virtual yang sama, ini adalah komputer virtual sumber.
    • Jika Anda memulihkan ke lokasi alternatif, ini adalah komputer virtual target yang baru.

Pulihkan sebagai berikut:

  1. Di portal Microsoft Azure, buka Pusat pencadangan dan klik Pulihkan.

    Screenshot showing the start the restore process.

  2. Pilih SQL di VM Azure sebagai jenis sumber data, pilih database yang akan dipulihkan, dan klik Lanjutkan.

    Screenshot showing to select the datasource type.

  3. Di Konfigurasi Pemulihan, tentukan tempat (atau cara) untuk memulihkan data:

    • Lokasi Alternatif: Pulihkan database ke lokasi alternatif dan simpan database sumber asli.

    • Timpa DB: Pulihkan data ke instans SQL Server yang sama dengan sumber asli. Opsi ini menimpa database asli.

      Penting

      Jika database yang dipilih termasuk dalam grup ketersediaan Always On, SQL Server tidak memperbolehkan database ditimpa. Hanya Lokasi Alternatif yang tersedia.

    • Pulihkan sebagai file: Alih-alih memulihkan sebagai database, pulihkan file cadangan yang nantinya dapat dipulihkan sebagai database di komputer mana pun yang memiliki file tersebut menggunakan SQL Server Management Studio.

Memulihkan ke lokasi alternatif

  1. Di menu Konfigurasi Pemulihan, di Tempat Pemulihan, pilih Lokasi Alternatif.

  2. Pilih nama dan instans SQL Server yang ingin Anda jadikan tujuan pemulihan database.

  3. Di kotak Nama DB yang Dipulihkan, masukkan nama database target.

  4. Jika berlaku, pilih Timpa jika DB dengan nama yang sama sudah ada di instans SQL yang dipilih.

  5. Pilih Titik Pemulihan, dan pilih apakah akan memulihkan ke titik waktu tertentu atau memulihkan ke titik pemulihan tertentu.

    Screenshot showing to select Restore Point.

    Screenshot showing restore to point in time.

  6. Di menu Konfigurasi Tingkat Lanjut:

    • Jika Anda ingin mempertahankan database tidak beroperasi setelah pemulihan, aktifkan Pulihkan dengan NORECOVERY.

    • Jika Anda ingin mengubah lokasi pemulihan di server tujuan, masukkan jalur target baru.

      Enter target paths

  7. Pilih OK untuk memicu pemulihan. Lacak kemajuan pemulihan di area Notifikasi, atau lacak di tampilan Pekerjaan Pencadangan di vault.

    Catatan

    Pemulihan titik waktu hanya tersedia untuk cadangan log untuk database yang berada dalam mode pemulihan penuh dan dicatat secara massal.

Memulihkan dan menimpa

  1. Di menu Konfigurasi Pemulihan, di Tempat Pemulihan, pilih Timpa DB>OK.

    Select Overwrite DB

  2. Di Pilih titik pemulihan, pilih Log (Titik waktu) untuk memulihkan ke titik waktu tertentu. Atau pilih Penuh & Diferensial untuk memulihkan ke titik pemulihan tertentu.

    Catatan

    Pemulihan titik waktu hanya tersedia untuk cadangan log untuk database yang berada dalam mode pemulihan penuh dan dicatat secara massal.

Pulihkan sebagai file

Untuk memulihkan data cadangan sebagai file .bak, bukan database, pilih Pulihkan sebagai File. Setelah file dicadangkan ke jalur tertentu, Anda dapat membawa file-file ini ke komputer mana pun tempat Anda ingin memulihkannya sebagai database. Karena Anda dapat memindahkan file-file ini ke komputer mana pun, Anda sekarang dapat memulihkan data lintas langganan dan wilayah.

  1. Di Tempat dan cara pemulihan, pilih Pulihkan sebagai file.

  2. Pilih nama SQL Server yang ingin Anda jadikan tempat pemulihan file cadangan.

  3. Di Jalur tujuan di server, masukkan jalur folder di server yang dipilih di langkah 2. Ini adalah lokasi tempat layanan akan mencadangkan semua file cadangan yang diperlukan. Biasanya, jalur berbagi jaringan, atau jalur berbagi file Azure yang dipasang saat ditentukan sebagai jalur tujuan, akan memungkinkan akses yang lebih mudah ke semua file ini oleh komputer lain di jaringan yang sama atau dengan berbagi file Azure yang sama yang dipasang.

    Catatan

    Untuk memulihkan file cadangan database di Berbagi Azure yang dipasang di komputer virtual target yang terdaftar, pastikan bahwa NT AUTHORITY\SYSTEM memiliki akses ke berbagi. Anda dapat melakukan langkah-langkah yang diberikan di bawah ini untuk memberikan izin baca/tulis kepada AFS yang dipasang di komputer virtual:

    • Jalankan PsExec -s cmd untuk masuk ke NT AUTHORITY\SYSTEM shell
      • Jalankan cmdkey /add:<storageacct>.file.core.windows.net /user:AZURE\<storageacct> /pass:<storagekey>
      • Verifikasi akses dengan dir \\<storageacct>.file.core.windows.net\<filesharename>
    • Mulai pemulihan sebagai file dari Vault Backup ke \\<storageacct>.file.core.windows.net\<filesharename> sebagai jalur
      Anda dapat Mengunduh PsExec dari halaman Sysinternals.
  4. Pilih OK.

    Select Restore As Files

  5. Pilih Titik Pemulihan, dan pilih apakah akan memulihkan ke titik waktu tertentu atau memulihkan ke titik pemulihan tertentu.

  6. Saat melakukan pemulihan titik waktu database SQL menggunakan Pulihkan sebagai file, ia akan menyimpan semua titik pemulihan dari Cadangan penuh ke titik waktu yang dipilih. Kemudian Anda dapat memulihkan menggunakan file-file ini sebagai database di komputer apa pun yang ada menggunakan SQL Server Management Studio.

    Restored Backup Files in Destination Path

Pulihkan ke titik waktu tertentu

Jika Anda memilih Log (Titik Waktu) sebagai jenis pemulihan, lakukan hal berikut:

  1. Di Pulihkan Tanggal/Waktu, buka kalender. Di kalender, tanggal yang memiliki titik pemulihan ditampilkan dengan jenis tebal, dan tanggal saat ini akan disorot.

  2. Pilih tanggal yang memiliki titik pemulihan. Anda tidak dapat memilih tanggal yang tidak memiliki titik pemulihan.

    Open the calendar

  3. Setelah Anda memilih tanggal, grafik garis waktu akan menampilkan titik pemulihan yang tersedia dalam rentang berkelanjutan.

  4. Tentukan waktu untuk pemulihan di grafik garis waktu, atau pilih waktu. Kemudian pilih OK.

Pemulihan parsial sebagai file

Layanan Azure Backup memutuskan rantai file yang akan diunduh selama pemulihan sebagai file. Tetapi ada skenario di mana Anda mungkin tidak ingin mengunduh seluruh konten lagi.

Misalnya, ketika Anda memiliki kebijakan cadangan penuh untuk mingguan, diferensial dan log harian, dan Anda telah mengunduh file untuk diferensial tertentu. Anda menemukan bahwa ini bukan titik pemulihan yang tepat dan memutuskan untuk mengunduh diferensial hari berikutnya. Sekarang Anda hanya perlu file diferensial karena Anda sudah memiliki awal penuh. Dengan kemampuan pemulihan parsial sebagai file, yang disediakan oleh Azure Backup, kini Anda dapat mengecualikan yang lengkap dari rantai unduhan dan hanya mengunduh diferensialnya.

Tidak termasuk jenis file cadangan

Ekstensi PengaturanOverrides.json adalah file JSON (JavaScript Object Notation) yang berisi penimpaan untuk beberapa pengaturan layanan Azure Backup untuk SQL. Untuk operasi "Pemulihan Parsial sebagai file", bidang JSON baru RecoveryPointTypesToBeExcludedForRestoreAsFiles harus ditambahkan. Bidang ini menyimpan nilai string yang menunjukkan jenis titik pemulihan mana yang harus dikecualikan dalam operasi pemulihan sebagai file berikutnya.

  1. Di mesin target tempat file akan diunduh, buka folder "C:\Program Files\Azure Workload Backup\bin"

  2. Buat file JSON baru bernama "Extension PengaturanOverrides.JSON", jika belum ada.

  3. Tambahkan pasangan nilai kunci JSON berikut

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Tidak diperlukan menghidupkan ulang layanan apa pun. Layanan Azure Backup akan mencoba untuk mengecualikan jenis cadangan dalam rantai pemulihan seperti yang disebutkan dalam file ini.

Satu-satunya RecoveryPointTypesToBeExcludedForRestoreAsFiles mengambil nilai tertentu yang menunjukkan titik pemulihan yang akan dikecualikan selama pemulihan. Untuk SQL, nilai-nilai ini adalah:

  • ExcludeFull (Jenis cadangan lain seperti diferensial dan log akan diunduh, jika ada dalam rantai titik pemulihan)
  • ExcludeFullAndDifferential (Jenis cadangan lain seperti log akan diunduh, jika ada dalam rantai titik pemulihan)
  • ExcludeFullAndIncremental (Jenis cadangan lain seperti log akan diunduh, jika ada dalam rantai titik pemulihan)
  • ExcludeFullAndDifferentialAndIncremental (Jenis cadangan lain seperti log akan diunduh, jika ada dalam rantai titik pemulihan)

Pulihkan ke titik pemulihan tertentu

Jika Anda memilih Penuh & Diferensial sebagai jenis pemulihan, lakukan hal berikut:

  1. Pilih titik pemulihan dari daftar, dan pilih OK untuk menyelesaikan prosedur titik pemulihan.

    Choose a full recovery point

    Catatan

    Secara default, titik pemulihan dari 30 hari terakhir akan ditampilkan. Anda dapat menampilkan titik pemulihan yang lebih lama dari 30 hari dengan memilih Filter dan memilih rentang kustom.

Memulihkan database dengan sejumlah besar file

Jika ukuran untai total file dalam database lebih besar dari batas tertentu, Azure Backup akan menyimpan daftar file database dalam komponen pit yang berbeda sehingga Anda tidak dapat mengatur jalur pemulihan target selama operasi pemulihan. Sebagai gantinya, file akan dipulihkan ke jalur default SQL.

Restore Database with large file

Memulihkan database dari file .bak menggunakan SSMS

Anda dapat menggunakan operasi Pulihkan sebagai File untuk memulihkan file database dalam .bak format saat memulihkan dari portal Azure. Pelajari selengkapnya.

Ketika pemulihan .bak file ke komputer virtual Azure selesai, Anda dapat memicu pemulihan menggunakan perintah TSQL melalui SSMS.   Untuk memulihkan file database ke jalur asli di server sumber, hapus MOVE klausa dari kueri pemulihan TSQL.   Contoh

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'

Catatan

Anda tidak boleh memiliki file database yang sama di server target (pulihkan dengan ganti).  Selain itu, Anda dapat mengaktifkan inisialisasi file instan di server target untuk mengurangi overhead waktu inisialisasi file.

Untuk merelokasi file database dari server pemulihan target, Anda dapat membingkai perintah TSQL menggunakan MOVE klausa.

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'  MOVE N'<LogicalName1>' TO N'<TargetFilePath1OnDisk>',  MOVE N'<LogicalName2>' TO N'<TargetFilePath2OnDisk>' GO

Contoh

  USE [master] 
  RESTORE DATABASE [test] FROM  DISK = N'J:\dbBackupFiles\test.bak' WITH  FILE = 1,  MOVE N'test' TO N'F:\data\test.mdf',  MOVE N'test_log' TO N'G:\log\test_log.ldf',  NOUNLOAD,  STATS = 5 
  GO

Jika ada lebih dari dua file untuk database, Anda bisa menambahkan klausa tambahan MOVE ke kueri pemulihan. Anda juga dapat menggunakan SSMS untuk pemulihan database menggunakan .bak file. Pelajari selengkapnya.

Catatan

Untuk pemulihan database besar, kami sarankan Anda menggunakan pernyataan TSQL. Jika Anda ingin merelokasi file database tertentu, lihat daftar file database dalam format JSON yang dibuat selama operasi Pulihkan sebagai File .

Pemulihan Lintas Wilayah

Sebagai salah satu opsi pemulihan, Pemulihan Lintas Wilayah (Cross Region Restore/CRR) memungkinkan Anda memulihkan database SQL yang dihosting di komputer virtual Azure di wilayah sekunder, yang merupakan wilayah berpasangan Azure.

Untuk mengaktifkan fitur ini, baca bagian Sebelum Anda Mulai.

Untuk melihat apakah CRR diaktifkan, ikuti instruksi dalam Mengonfigurasi Pemulihan Lintas Wilayah

Menampilkan item cadangan di wilayah sekunder

Jika CRR diaktifkan, Anda dapat melihat item cadangan di wilayah sekunder.

  1. Dari portal, buka Brankas Layanan Pemulihan>Item cadangan.
  2. Pilih Wilayah Sekunder untuk menampilkan item di wilayah sekunder.

Catatan

Hanya Jenis Manajemen Pencadangan yang mendukung fitur CRR yang akan ditampilkan di daftar. Saat ini, hanya dukungan untuk memulihkan data wilayah sekunder ke wilayah sekunder yang diizinkan.

Backup items in secondary region

Databases in secondary region

Pemulihan di wilayah sekunder

Pengalaman pengguna pemulihan wilayah sekunder akan mirip dengan pengalaman pengguna pemulihan wilayah utama. Saat mengonfigurasi detail di panel Konfigurasi Pemulihan untuk mengonfigurasi pemulihan, Anda akan diminta untuk menyediakan parameter wilayah sekunder saja. Brankas harus berada di wilayah sekunder dan server SQL harus didaftarkan ke brankas di wilayah sekunder.

Where and how to restore

Trigger restore in progress notification

Catatan

  • Setelah pemulihan dipicu dan ada dalam fase transfer data, pekerjaan pemulihan tidak dapat dibatalkan.
  • Tingkat peran/akses yang diperlukan untuk melakukan operasi pemulihan di lintas wilayah adalah peran Operator Cadangan dalam langganan dan akses Kontributor(tulis) pada mesin virtual sumber dan target. Untuk melihat pekerjaan pencadangan, Pembaca cadangan adalah izin minimum yang diperlukan dalam langganan.
  • RPO agar data cadangan tersedia di wilayah sekunder adalah 12 jam. Oleh karena itu, ketika Anda mengaktifkan CRR, RPO untuk wilayah sekunder adalah 12 jam + durasi frekuensi log (yang dapat diatur ke minimal 15 menit).

Pelajari tentang persyaratan peran minimum untuk pemulihan lintas wilayah.

Memantau pekerjaan pemulihan wilayah sekunder

  1. Di portal Microsoft Azure, buka Pusat pencadangan>Pekerjaan Pencadangan.

  2. Saring operasi untuk CrossRegionRestore guna melihat pekerjaan di wilayah sekunder.

    Screenshot showing the filtered Backup jobs.

Pemulihan Lintas Langganan

Azure Backup sekarang memungkinkan Anda memulihkan database SQL ke langganan apa pun (sesuai persyaratan Azure RBAC berikut) dari titik pemulihan. Secara default, Azure Backup memulihkan ke langganan yang sama tempat titik pemulihan tersedia.

Dengan Pemulihan Langganan Silang (CSR), Anda memiliki fleksibilitas memulihkan ke langganan apa pun dan brankas apa pun di bawah penyewa Anda jika izin pemulihan tersedia. Secara default, CSR diaktifkan pada semua vault Layanan Pemulihan (vault yang sudah ada dan yang baru dibuat).

Catatan

  • Anda dapat memicu Pemulihan Langganan Silang dari vault Layanan Pemulihan.
  • CSR hanya didukung untuk pencadangan berbasis streaming dan tidak didukung untuk pencadangan berbasis rekam jepret.
  • Pemulihan Lintas Regional (CRR) dengan CSR tidak didukung.

Persyaratan RBAC Azure

Jenis operasi Operator pencadangan Brankas Layanan Pemulihan Operator alternatif
Memulihkan database atau memulihkan sebagai file Virtual Machine Contributor Sumber VM yang dicadangkan Alih-alih peran bawaan, Anda dapat mempertimbangkan peran kustom yang memiliki izin berikut:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Virtual Machine Contributor Target VM tempat database akan dipulihkan atau file dibuat. Alih-alih peran bawaan, Anda dapat mempertimbangkan peran kustom yang memiliki izin berikut:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Vault Layanan Pemulihan Target

Secara default, CSR diaktifkan pada vault Layanan Pemulihan. Untuk memperbarui pengaturan pemulihan vault Layanan Pemulihan, buka Properti>Pemulihan Lintas Langganan dan buat perubahan yang diperlukan.

Screenshot shows how to modify the Cross Subscription Restore settings on a Recovery Services vault for SQL database.

Langkah berikutnya

Mengelola dan memantau database SQL Server yang dicadangkan oleh Azure Backup.