Bagikan melalui


Memulihkan penyewa tunggal dengan aplikasi SaaS database per-penyewa

Berlaku untuk:Azure SQL Database

Model database per penyewa memudahkan untuk memulihkan satu penyewa ke titik waktu sebelumnya tanpa mempengaruhi penyewa lain.

Dalam tutorial ini, Anda mempelajari dua pola pemulihan data:

  • Memulihkan database ke database paralel (berdampingan).
  • Memulihkan database di tempat, menggantikan database yang sudah ada.
Pola Deskripsi
Memulihkan ke dalam database paralel Pola ini dapat digunakan untuk tugas-tugas seperti peninjauan, audit, dan kepatuhan untuk memungkinkan penyewa memeriksa data mereka dari titik sebelumnya. Database penyewa saat ini tetap online dan tidak berubah.
Pulihkan di tempat Pola ini biasanya digunakan untuk memulihkan penyewa ke titik sebelumnya, setelah penyewa secara tidak sengaja menghapus atau merusak data. Database asli diambil dari baris dan diganti dengan database yang dipulihkan.

Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut ini diselesaikan:

Pengenalan pola pemulihan penyewa SaaS

Ada dua pola sederhana untuk memulihkan data penyewa individu. Karena database penyewa diisolasi satu sama lain, memulihkan satu penyewa tidak berdampak pada data penyewa lain. Fitur point-in-time-restore (PITR) Azure SQL Database digunakan di kedua pola. PITR selalu membuat database baru.

  • Pulihkan secara paralel: Dalam pola pertama, database paralel baru dibuat bersama database penyewa saat ini. Penyewa kemudian diberi akses baca-saja ke database yang dipulihkan. Data yang dipulihkan dapat ditinjau dan berpotensi digunakan untuk menimpa nilai data saat ini. Tergantung desainer aplikasi untuk menentukan bagaimana penyewa mengakses database yang dipulihkan dan opsi apa untuk pemulihan yang disediakan. Cukup izinkan penyewa untuk meninjau data mereka pada titik sebelumnya mungkin semua yang diperlukan dalam beberapa skenario.

  • Pulihkan di tempat: Pola kedua berguna jika data hilang atau rusak dan penyewa ingin kembali ke titik sebelumnya. Penyewa diambil dari baris saat database dipulihkan. Database asli dihapus, dan database yang dipulihkan diganti namanya. Rangkaian cadangan database asli tetap dapat diakses setelah penghapusan, sehingga Anda dapat memulihkan database ke titik waktu yang lebih awal, jika perlu.

Jika database menggunakan replikasi geografis aktif dan pemulihan secara paralel, kami sarankan Anda menyalin data yang diperlukan dari salinan yang dipulihkan ke database asli. Jika Anda mengganti database asli dengan database yang dipulihkan, Anda perlu mengonfigurasi ulang dan menyinkronkan ulang replikasi geografis.

Mendapatkan Database SaaS Tiket Wingtip Per skrip aplikasi Penyewa

Skrip Multi-penyewa Wingtip Tickets SaaS dan kode sumber aplikasi Database tersedia di repo GitHub WingtipTicketsSaaS-DbPerPenyewa. Lihat panduan umum untuk langkah mengunduh dan membuka blokir skrip Wingtip Ticket SaaS.

Sebelum memulai

Ketika database dibuat, dibutuhkan 10 hingga 15 menit sebelum cadangan lengkap pertama tersedia untuk dipulihkan. Jika Anda baru saja menginstal aplikasi, Anda mungkin perlu menunggu beberapa menit sebelum Anda mencoba skenario ini.

Mensimulasikan penyewa secara tidak sengaja menghapus data

Untuk menunjukkan skenario pemulihan ini, pertama hapus secara "tidak sengaja" acara di salah satu database penyewa.

Buka aplikasi Acara untuk meninjau acara saat ini

  1. Buka Pusat Aktivitas (http://events.wtp.<user>.trafficmanager.net), dan pilih Contoso Concert Hall.

    A screenshot of the events hub page of the sample application. The entry for Contoso Concert Hall is boxed in red.

  2. Gulir daftar acara, dan buat catatan acara terakhir dalam daftar.

    A screenshot from the sample application. The last event appears.

Secara "tidak sengaja" menghapus acara terakhir

  1. Di PowerShell ISE, buka ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1, dan atur nilai berikut:

    • $DemoScenario = 1, Hapus acara terakhir (tanpa penjualan tiket).
  2. Tekan F5 untuk menjalankan skrip dan menghapus acara terakhir. Pesan konfirmasi berikut muncul:

    Deleting last unsold event from Contoso Concert Hall ...
    Deleted event 'Seriously Strauss' from Contoso Concert Hall venue.
    
  3. Halaman acara Contoso terbuka. Gulir ke bawah dan verifikasi bahwa acara hilang. Jika acara masih ada dalam daftar, pilih Refresh dan verifikasi bahwa acara tersebut hilang. A screenshot from the sample application. The last event is removed.

Memulihkan database penyewa secara paralel dengan database produksi

Latihan ini mengembalikan database Contoso Concert Hall ke titik waktu sebelum acara dihapus. Skenario ini mengasumsikan bahwa Anda ingin meninjau data yang dihapus dalam database paralel.

Skrip Restore-TenantInParallel.ps1 membuat database penyewa paralel bernama ContosoConcertHall_old, dengan entri katalog paralel. Pola pemulihan ini paling cocok untuk pemulihan dari kehilangan data kecil. Anda juga dapat menggunakan pola ini jika Perlu meninjau data untuk tujuan kepatuhan atau audit. Ini adalah pendekatan yang direkomendasikan ketika Anda menggunakan replikasi geografis aktif.

  1. Selesaikan bagian Mensimulasikan penyewa secara tidak sengaja menghapus data.
  2. Di POWERShell ISE, buka ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1.
  3. Atur $DemoScenario = 2, Pulihkan penyewa secara paralel.
  4. Tekan F5 untuk menjalankan skrip.

Skrip memulihkan database penyewa ke titik waktu sebelum Anda menghapus acara. Database dipulihkan ke database baru bernama ContosoConcertHall_old. Metadata katalog yang ada dalam database yang dipulihkan ini dihapus, lalu database ditambahkan ke katalog dengan menggunakan kunci yang dibuat dari ContosoConcertHall_old nama.

Skrip demo membuka halaman acara untuk database penyewa baru ini di browser Anda. Catatan dari URL http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall_old bahwa halaman ini memperlihatkan data dari database yang dipulihkan dimana _old ditambahkan ke nama.

Gulir acara yang tercantum di browser untuk mengonfirmasi bahwa acara yang dihapus di bagian sebelumnya dipulihkan.

Mengekspos penyewa yang dipulihkan sebagai penyewa tambahan, dengan aplikasi Peristiwanya sendiri, bukanlah cara Anda menyediakan akses penyewa ke data yang dipulihkan. Ini berfungsi untuk menggambarkan pola pemulihan. Biasanya, Anda memberikan akses baca-saja ke data lama dan mempertahankan database yang dipulihkan untuk periode yang ditentukan. Dalam sampel, Anda dapat menghapus entri penyewa yang dipulihkan setelah selesai dengan menjalankan skenario Hapus penyewa yang dipulihkan.

  1. Atur $DemoScenario = 4, Hapus penyewa yang dipulihkan.
  2. Tekan F5 untuk menjalankan skrip.
  3. Entri ContosoConcertHall_old sekarang dihapus dari katalog. Tutup halaman acara untuk penyewa ini di browser Anda.

Memulihkan penyewa di tempat, mengganti database penyewa yang sudah ada

Latihan ini mengembalikan database Contoso Concert Hall ke titik waktu sebelum acara dihapus. Restore-TenantInPlace Skrip memulihkan database penyewa ke database baru dan menghapus database asli. Pola pemulihan ini paling cocok untuk pulih dari kerusakan data yang serius, dan penyewa mungkin harus mengakomodasi kehilangan data yang signifikan.

  1. Di POWERShell ISE, buka Demo-RestoreTenant.ps1 file .
  2. Atur $DemoScenario = 5, Pulihkan penyewa di tempat.
  3. Tekan F5 untuk menjalankan skrip.

Skrip memulihkan database penyewa ke titik sebelum acara dihapus. Pertama dibutuhkan Contoso Concert Hall penyewa offline untuk mencegah pembaruan lebih lanjut. Kemudian, database paralel dibuat dengan memulihkan dari titik pemulihan. Database yang dipulihkan dinamai dengan stempel waktu untuk memastikan nama database tidak berkonflik dengan nama database penyewa yang sudah ada. Berikutnya, database penyewa lama dihapus, dan database yang dipulihkan diganti namanya menjadi nama database asli. Akhirnya, Contoso Concert Hall dibawa secara online untuk memungkinkan aplikasi mengakses database yang dipulihkan.

Anda berhasil memulihkan database ke titik waktu sebelum acara dihapus. Saat halaman Acara terbuka, konfirmasikan bahwa acara terakhir telah dipulihkan.

Setelah Anda memulihkan database, dibutuhkan 10 hingga 15 menit lagi sebelum cadangan lengkap pertama tersedia untuk dipulihkan lagi.

Catatan

Memulihkan dari database multi-penyewa ke penyewa tunggal tidak dimungkinkan.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara:

  • Memulihkan database ke database paralel (berdampingan).
  • Pulihkan database di tempat.

Sumber daya tambahan