Bagikan melalui


Pulihkan database SQL Server pada Azure VM

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

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

Catatan

Lihat matriks dukungan cadangan SQL untuk mengetahui selengkapnya 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 detik) menggunakan cadangan log transaksi. 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 untuk 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 diaktifkan CDC harus dipulihkan menggunakan opsi Pulihkan sebagai file.
  • Kami sangat menyarankan untuk memulihkan database "master" menggunakan opsi Pulihkan sebagai file lalu 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.
  • Untuk database master, opsi Lokasi Alternatif untuk pemulihan tidak didukung. Kami menyarankan Anda untuk memulihkan
  • Untuk msdb dan model, opsi Lokasi Alternatif untuk pemulihan hanya didukung saat nama database yang Dipulihkan berbeda dari nama database target . Jika Anda ingin memulihkan nama yang sama dengan database target, kami sarankan Anda memulihkan menggunakan opsi Pulihkan sebagai file , lalu pulihkan menggunakan T-SQL perintah .

Memulihkan database

Untuk memulihkan, Anda memerlukan izin berikut:

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

Pulihkan sebagai berikut:

  1. Di portal Microsoft Azure, buka Ketahanan lalu pilih Pulihkan.

    Cuplikan layar memperlihatkan cara memulai pemulihan database SQL.

  2. Pada panel Pulihkan , pilih Jenis sumber data sebagai SQL di Azure VM, lalu di bawah Item terproteksi, klik Pilih.

    Cuplikan layar memperlihatkan cara memilih jenis sumber data untuk pemulihan.

  3. Pada panel Pilih item Terproteksi , pilih database SQL yang diproteksi dari daftar, lalu klik Pilih.

  4. Pada panel Pulihkan , pilih Lanjutkan.

  5. Pada panel Pulihkan , di bawah Tempat dan cara memulihkan, pilih salah satu lokasi berikut untuk memulihkan database:

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

    • Lokasi asli: Pulihkan data ke instans SQL Server yang sama dengan sumber aslinya. Opsi ini akan menimpa dan mengganti database asli.

      Penting

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

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

Memulihkan ke lokasi alternatif

  1. Pada panel Pulihkan , di bawah Tempat Pemulihan, pilih Lokasi Alternatif.

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

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

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

  5. Di bawah Titik Pemulihan, klik Pilih.

  6. Pada panel Pilih titik pemulihan , pilih apakah akan memulihkan ke titik waktu tertentu atau memulihkan ke titik pemulihan tertentu, lalu pilih OK.

    Cuplikan layar memperlihatkan cara memilih Titik Pemulihan.

  7. Pada panel Pulihkan , di bawah Konfigurasi Tingkat Lanjut, pilih Konfigurasikan.

  8. Pada panel Konfigurasi Tingkat Lanjut , lakukan konfigurasi yang diperlukan, lalu pilih OK

    • Jika Anda ingin database tetap nonoperasional setelah pemulihan dilakukan, aktifkan Pulihkan dengan NORECOVERY.

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

      Cuplikan layar memperlihatkan cara memasukkan jalur target.

  9. Pada panel Pulihkan , pilih OK untuk memicu pemulihan. Lacak kemajuan pemulihan di area Pemberitahuan , atau lacak di bawah tampilan Pekerjaan Pencadangan di vault.

    Catatan

    Pemulihan pada titik waktu hanya tersedia untuk cadangan log bagi database yang berada dalam mode pemulihan penuh dan pencatatan massal.

Memulihkan dan menimpa

  1. Pada menu Konfigurasi Pemulihan, di bawah bagian Di Mana Memulihkan, pilih Timpa DB>OK.

    Pilih Ganti Basis Data

  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 pada titik waktu hanya tersedia untuk cadangan log bagi database yang berada dalam mode pemulihan penuh dan pencatatan massal.

Pulihkan sebagai file

Untuk memulihkan data cadangan sebagai file .bak alih-alih 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 bawah Tempat dan cara Memulihkan, pilih Pulihkan sebagai file.

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

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

    Catatan

    Untuk memulihkan file cadangan database di Berbagi File Azure yang dipasang pada VM terdaftar target, pastikan bahwa NT AUTHORITY\SYSTEM memiliki akses ke berbagi file. 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.

    Pilih Pulihkan Sebagai File

  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.

    File Cadangan yang Dipulihkan di Jalur Tujuan

Pulihkan ke titik waktu tertentu

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

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

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

    Buka kalender

  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. Lalu pilih OK.

Pemulihan parsial dalam bentuk 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 yang mencakup cadangan penuh mingguan, diferensial harian, dan log, 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 cadangan diferensial karena Anda sudah memiliki cadangan 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

ExtensionSettingsOverrides.json adalah file JSON (JavaScript Object Notation) yang berisi pengubahan 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 yang harus dikecualikan dalam operasi pemulihan 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 "ExtensionSettingsOverrides.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.

RecoveryPointTypesToBeExcludedForRestoreAsFiles hanya menerima nilai-nilai tertentu yang menunjukkan titik pemulihan yang akan dikecualikan saat pemulihan. Untuk SQL, nilai-nilai ini adalah:

  • ExcludeFull (Jenis cadangan lain seperti diferensial dan log akan diunduh, jika memang tersedia dalam rangkaian 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 rangkaian titik pemulihan)

Pulihkan ke titik pemulihan tertentu

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

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

    Pilih titik pemulihan penuh

    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 string total file dalam database lebih besar dari batas tertentu, Azure Backup 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.

Pulihkan Database dengan file besar

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 Microsoft Azure. Pelajari lebih lanjut.

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 seharusnya memiliki file database yang sama di server target (gunakan opsi "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 lebih lanjut.

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 onboarding ke fitur, baca bagian Sebelum Anda Mulai.

Untuk melihat apakah CRR diaktifkan, ikuti instruksi di 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 vault 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 diperbolehkan.

Mencadangkan item di wilayah sekunder

Database di wilayah sekunder

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

Tempat dan cara memulihkan

Pemberitahuan pemulihan sedang berlangsung

Catatan

  • Setelah pemulihan dipicu dan 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 akses langganan dan Kontributor (tulis) pada komputer virtual sumber dan target. Untuk melihat pekerjaan pencadangan, izin minimum "Pembaca cadangan" diperlukan dalam langganan.
  • RPO untuk ketersediaan data cadangan 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

Untuk melihat pekerjaan pemulihan wilayah sekunder, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, buka Pemantauan Ketahanan> +Pekerjaan>.

  2. Pada panel Pekerjaan , pilih Jenis sumber data sebagai SQL di Azure VM.

    Cuplikan layar memperlihatkan pekerjaan Pencadangan yang difilter.

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 Lintas Langganan dari Layanan Pemulihan vault.
  • 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 Layanan Pemulihan Target Vault

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

Cuplikan layar memperlihatkan cara mengubah pengaturan Pemulihan Lintas Langganan pada vault Layanan Pemulihan untuk database SQL.

Langkah berikutnya

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