Memulihkan database ke SQL Server 2022 dari Azure SQL Managed Instance

Berlaku untuk:Azure SQL Managed Instance

Artikel ini menjelaskan cara memulihkan cadangan database dari Azure SQL Managed Instance ke SQL Server 2022.

Gambaran Umum

Penyelarasan format database antara SQL Managed Instance dan SQL Server 2022 memberi Anda cara mudah untuk menyalin atau memindahkan database dari instans terkelola Anda ke Perusahaan, Pengembang, atau edisi Standar SQL Server 2022 yang dihosting secara lokal, di komputer virtual di Azure, atau di cloud lainnya.

Memulihkan database dari instans terkelola ke instans SQL Server 2022 membuka kunci skenario berikut:

  • Memastikan mobilitas database antara SQL Managed Instance dan produk berbasis SQL Server.
  • Menyediakan salinan database kepada pelanggan dan pihak lain yang memenuhi syarat.
  • Merefresh lingkungan di luar SQL Managed Instance.

Kemampuan untuk memulihkan cadangan lengkap database khusus salinan dari SQL Managed Instance ke SQL Server 2022 tersedia secara default di semua instans yang ada dan yang baru disebarkan.

Penting

Kemampuan untuk memulihkan cadangan lengkap database khusus salinan dari SQL Managed Instance ke SQL Server 2022 akan tersedia hingga akhir dukungan mainstream untuk SQL Server 2022.

Mengambil cadangan pada SQL Managed Instance

Pertama, buat kredensial untuk mengakses akun penyimpanan dari instans Anda, ambil cadangan khusus salinan database Anda, lalu simpan.

Anda dapat membuat kredensial dengan menggunakan identitas terkelola atau token tanda tangan akses bersama (SAS).

Identitas terkelola adalah fitur ID Microsoft Entra (sebelumnya Azure Active Directory) yang menyediakan instans layanan Azure, seperti Azure SQL Managed Instance, dengan identitas terkelola secara otomatis di ID Microsoft Entra, identitas terkelola yang ditetapkan sistem.

Anda dapat menggunakan identitas ini untuk mengotorisasi permintaan akses data ke sumber daya Azure lainnya, termasuk akun penyimpanan. Layanan seperti Azure SQL Managed Instance memiliki identitas terkelola yang ditetapkan sistem, dan juga dapat memiliki satu atau beberapa identitas terkelola yang ditetapkan pengguna. Anda dapat menggunakan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna untuk mengotorisasi permintaan.

Sebelum administrator penyimpanan Azure menulis file cadangan ke akun penyimpanan, mereka harus memberikan izin ke identitas terkelola untuk menulis data. Memberikan izin ke identitas terkelola instans dilakukan dengan cara yang sama seperti memberikan izin kepada pengguna Microsoft Entra lainnya. Misalnya:

  1. Di portal Azure, pada panel Kontrol Akses (IAM) akun penyimpanan, pilih Tambahkan penetapan peran.

  2. Pilih peran Kontrol akses berbasis peran (RBAC) Azure bawaan Kontributor Data Blob Penyimpanan. Ini menyediakan akses baca/tulis ke identitas terkelola untuk kontainer Azure Blob Storage yang diperlukan.

    Alih-alih memberikan identitas terkelola peran Storage Blob Data Contributor Azure RBAC, Anda dapat memberikan izin yang lebih terperinci. Untuk mempelajari selengkapnya, lihat Mengatur ACL di Azure Data Lake Storage Gen2.

  3. Pada halaman berikutnya, untuk Tetapkan akses ke, pilih Identitas terkelola.

  4. Pilih Pilih anggota lalu, di daftar dropdown Identitas terkelola, pilih identitas terkelola yang sesuai. Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure.

Sekarang, membuat kredensial cakupan database untuk autentikasi identitas terkelola sederhana.

Dalam contoh berikut, perhatikan bahwa Managed Identity adalah string yang dikodekan secara permanen, dan Anda perlu mengganti nama akun penyimpanan generik dengan nama akun penyimpanan aktual:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'MANAGED IDENTITY'  

Selanjutnya, ambil COPY_ONLY cadangan database Anda dengan menjalankan contoh perintah T-SQL berikut:

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY

Pulihkan ke SQL Server

Pulihkan database ke SQL Server dengan menggunakan WITH MOVE opsi perintah RESTORE DATABASE T-SQL dan menyediakan jalur file eksplisit untuk file Anda di server tujuan.

Untuk memulihkan database Anda ke SQL Server, jalankan contoh perintah T-SQL berikut dengan jalur file yang sesuai dengan lingkungan Anda:

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp'

Catatan

Untuk memulihkan database yang dienkripsi saat tidak aktif dengan menggunakan Transparent Data Encryption (TDE), instans tujuan SQL Server harus memiliki akses ke kunci yang sama yang digunakan untuk melindungi database sumber melalui SQL Server Koneksi or untuk Azure Key Vault. Untuk detailnya, tinjau Menyiapkan SQL Server TDE dengan AKV.

Pertimbangan

Saat Anda memulihkan database ke SQL Server, pertimbangkan hal berikut:

  • Anda harus menggunakan kualifikasi WITH MOVE dan menyediakan jalur eksplisit untuk file data.
  • Database yang dienkripsi dengan kunci TDE yang dikelola layanan tidak dapat dipulihkan ke SQL Server. Anda dapat memulihkan database terenkripsi ke SQL Server hanya jika dienkripsi dengan kunci yang dikelola pelanggan dan server tujuan memiliki akses ke kunci yang sama yang digunakan untuk mengenkripsi database. Untuk informasi selengkapnya, lihat Menyiapkan SQL Server TDE dengan Azure Key Vault.
  • Di masa mendatang, beberapa fitur mungkin diperkenalkan ke Azure SQL Managed Instance yang memerlukan perubahan pada format database, membuat cadangan tidak kompatibel dengan SQL Server 2022. Akses ke fitur tersebut akan memerlukan keikutsertaan eksplisit.

Langkah berikutnya