Memigrasikan database dalam skala besar menggunakan otomatisasi (Pratinjau)

Ekstensi Migrasi Azure SQL untuk Azure Data Studio menyatukan penilaian, rekomendasi, dan pengalaman migrasi yang disederhanakan yang memberikan kemampuan berikut:

  • Mekanisme penilaian yang ditingkatkan dapat mengevaluasi instans SQL Server, mengidentifikasi database yang siap untuk migrasi ke target Azure SQL yang berbeda.
  • Mesin rekomendasi SKU (Pratinjau) yang mengumpulkan data performa dari instans SQL Server sumber lokal, menghasilkan rekomendasi SKU berukuran tepat berdasarkan target Azure SQL Anda.
  • Layanan Azure andal yang didukung oleh Azure Database Migration Service yang mengatur aktivitas pergerakan data untuk memberikan pengalaman migrasi yang mulus.
  • Kemampuan untuk menjalankan secara online (untuk migrasi yang membutuhkan waktu henti minimal) atau offline (untuk migrasi di mana waktu henti berlanjut melalui migrasi) mode migrasi agar sesuai dengan persyaratan bisnis Anda.
  • Fleksibilitas untuk membuat dan mengonfigurasi runtime integrasi yang dihost sendiri untuk menyediakan komputasi Anda sendiri untuk mengakses sumber SQL Server dan cadangan di lingkungan lokal Anda.

Dengan alat otomatisasi seperti Modul Layanan PowerShell - Azure DataMigration atau Azure CLI, Anda dapat menerapkan kemampuan ekstensi Migrasi Azure SQL bersama dengan Azure Database Migration Service untuk memigrasikan satu atau beberapa database dalam skala besar (termasuk database di beberapa instans SQL Server).

Contoh skrip berikut dapat direferensikan agar sesuai dengan skenario migrasi Anda menggunakan Azure PowerShell atau Azure CLI:

Skenario migrasi Bahasa scripting
Penilaian SQL Server PowerShell / Azure CLI
SQL Server ke Azure SQL Managed Instance (menggunakan berbagi file) PowerShell / Azure CLI
SQL Server ke Azure SQL Managed Instance (menggunakan penyimpanan Azure) PowerShell / Azure CLI
SQL Server ke SQL Server di Azure Virtual Machines (menggunakan berbagi file) PowerShell / Azure CLI
SQL Server ke SQL Server di Azure Virtual Machines (menggunakan Azure Storage) PowerShell / Azure CLI
SQL Server ke Azure SQL Database PowerShell / Azure CLI
Rekomendasi SKU (Pratinjau) PowerShell / Azure CLI
Otomatisasi migrasi end-to-End PowerShell / Azure CLI
Otomatisasi migrasi end-to-End untuk beberapa database PowerShell / Azure CLI

Prasyarat

Prasyarat yang umum di semua skenario migrasi yang didukung menggunakan Azure PowerShell atau Azure CLI adalah:

  • Memiliki akun Azure yang ditetapkan ke salah satu peran bawaan yang tercantum di bawah ini:

    • Kontributor untuk target Azure SQL Managed Instance, SQL Server di Azure Virtual Machines atau Azure SQL Database dan, Akun Penyimpanan untuk mengunggah file cadangan database Anda dari berbagi jaringan SMB (Tidak berlaku untuk Azure SQL Database).
    • Peran pembaca untuk Grup Sumber Daya Azure yang berisi Target Azure SQL Managed Instance, SQL Server di Azure Virtual Machines atau Azure SQL Database.
    • Peran Pemilik atau Kontributor pada Langganan Azure.

    Penting

    Akun Azure hanya diperlukan saat menjalankan langkah-langkah migrasi dan tidak diperlukan untuk proses penilaian atau langkah-langkah rekomendasi Azure.

  • Membuat Target Azure SQL Managed Instance, SQL Server di Azure Virtual Machine, atau Azure SQL Database

    Penting

    Jika target Anda adalah Azure SQL Database, Anda harus memigrasikan skema database dari sumber ke target menggunakan ekstensi dacpac SQL Server atau, ekstensi Proyek SQL Database untuk Azure Data Studio.

    Jika Anda memiliki Azure Virtual Machine yang sudah ada, itu harus terdaftar dengan ekstensi Agen IaaS SQL dalam mode Manajemen penuh.

  • Jika target Anda adalah Azure SQL Managed Instance atau SQL Server di Azure Virtual Machine , pastikan bahwa login yang digunakan untuk menyambungkan SQL Server sumber adalah anggota peran server sysadmin atau memiliki CONTROL SERVER izin.

  • Jika target Anda adalah Azure SQL Database, pastikan bahwa login yang digunakan untuk menyambungkan sumber SQL Server adalah anggota, dan db_datareader dan login untuk server SQL target adalah db_owner.

  • Menggunakan salah satu opsi penyimpanan berikut untuk database lengkap dan file cadangan log transaksi:

    • Berbagi jaringan SMB
    • Berbagi file akun penyimpanan Azure atau kontainer blob

    Penting

    • Jika file cadangan database Anda disediakan dalam berbagi jaringan SMB, Buat akun penyimpanan Azure yang memungkinkan layanan DMS mengunggah file cadangan database. Pastikan untuk membuat Akun Azure Storage di wilayah yang sama dengan wilayah tempat instans Azure Database Migration Service dibuat.
    • Pastikan kontainer blob akun penyimpanan Azure digunakan secara eksklusif untuk menyimpan file cadangan saja. Jenis file lainnya (txt, png, jpg, dll.) akan mengganggu proses pemulihan yang menyebabkan kegagalan.
    • Azure Database Migration Service tidak memulai pencadangan apa pun, dan sebaliknya menggunakan cadangan yang ada, yang mungkin sudah Anda miliki sebagai bagian dari rencana pemulihan bencana, untuk migrasi.
    • Setiap cadangan dapat ditulis di file cadangan terpisah atau beberapa file cadangan. Namun, menambahkan beberapa cadangan (yaitu log lengkap dan t) ke dalam satu media cadangan tidak didukung.
    • Anda dapat menggunakan cadangan terkompresi untuk mengurangi risiko potensi masalah yang terkait dengan migrasi cadangan besar.
  • Pastikan bahwa akun layanan yang menjalankan instans SQL Server sumber memiliki izin baca dan tulis pada berbagi jaringan SMB yang berisi file cadangan database.

  • Sertifikat instans SQL Server sumber dari database yang dilindungi oleh Transparent Data Encryption (TDE) harus dimigrasikan ke Azure SQL Managed Instance target atau SQL Server di Azure Virtual Machine sebelum memigrasikan data. Untuk informasi selengkapnya tentang memigrasikan database yang mendukung TDE, lihat Tutorial: Memigrasikan database yang didukung TDE (pratinjau) ke Azure SQL di Azure Data Studio.

    Tip

    Jika database Anda berisi data sensitif yang dilindungi oleh Always Encrypted, proses migrasi menggunakan Azure Data Studio dengan DMS akan secara otomatis memigrasikan tombol Always Encrypted Anda ke Azure SQL Managed Instance atau SQL Server di Azure Virtual Machine.

  • Jika cadangan database Anda berada dalam berbagi file jaringan, sediakan mesin untuk menginstal runtime integrasi yang dihost sendiri untuk mengakses dan memigrasikan cadangan database. Modul Azure PowerShell atau Azure CLI menyediakan kunci autentikasi untuk mendaftarkan runtime integrasi yang dihost sendiri. Dalam persiapan untuk migrasi, pastikan bahwa mesin tempat Anda berencana menginstal runtime integrasi yang dihost sendiri memiliki aturan firewall keluar berikut dan nama domain yang diaktifkan:

    Nama domain Port keluar Deskripsi
    Cloud Publik: {datafactory}.{region}.datafactory.azure.net
    atau *.frontend.clouddatahub.net
    Azure Government: {datafactory}.{region}.datafactory.azure.us
    Tiongkok: {datafactory}.{region}.datafactory.azure.cn
    443 Diwajibkan oleh runtime integrasi yang dihost sendiri untuk terhubung ke layanan Data Factory.
    Untuk Data Factory yang baru dibuat di cloud publik, temukan FQDN dari tombol Runtime Integrasi yang Dihost Sendiri, yang dalam format {datafactory}.{region}.datafactory.azure.net. Untuk Data Factory lama, jika Anda tidak melihat FQDN di kunci Integrasi yang Dihost Sendiri, gunakan *.frontend.clouddatahub.net sebagai gantinya.
    download.microsoft.com 443 Diperlukan oleh runtime integrasi yang dihost sendiri untuk mengunduh pembaruan. Jika Anda telah menonaktifkan pembaruan otomatis, Anda dapat melewati konfigurasi domain ini.
    *.core.windows.net 443 Digunakan oleh runtime integrasi yang dihost sendiri yang terhubung ke akun penyimpanan Azure untuk mengunggah cadangan database dari berbagi jaringan Anda

    Tip

    Jika file cadangan database Anda sudah disediakan di akun penyimpanan Azure, runtime integrasi yang dihost sendiri tidak diperlukan selama proses migrasi.

  • Saat menggunakan runtime integrasi yang dihost sendiri, pastikan bahwa komputer tempat runtime diinstal dapat terhubung ke instans SQL Server sumber dan berbagi file jaringan tempat file cadangan berada.

  • Port keluar 445 harus diaktifkan untuk mengakses berbagi file jaringan.

  • Jika Anda menggunakan Azure Database Migration Service untuk pertama kalinya, pastikan penyedia sumber daya Microsoft.DataMigration terdaftar dalam langganan Anda. Anda dapat mengikuti langkah untuk mendaftarkan penyedia sumber

    Penting

    Jika target migrasi Anda adalah Azure SQL Database, Anda tidak memerlukan cadangan untuk melakukan migrasi ini. Migrasi ke Azure SQL Database dianggap sebagai migrasi logis yang melibatkan pra-pembuatan database dan pergerakan data (dilakukan oleh DMS).

Mengotomatiskan migrasi database

Menggunakan Azure PowerShell Az.DataMigration atau Azure CLI az datamigration, Anda dapat memigrasikan database dengan mengotomatiskan pembuatan Azure Database Migration Service, mengonfigurasi migrasi database untuk migrasi online, dan melakukan cutover. Ada beberapa perintah dan fungsionalitas lain yang didokumenkan dalam Sampel Azure.

Contoh mengotomatiskan migrasi database SQL Server menggunakan Azure CLI: Langkah 1: Membuat Azure Database Migration Service, yang akan mengatur aktivitas migrasi database Anda.

#STEP 1: Create Database Migration Service
az datamigration sql-service create --resource-group "myRG" --sql-migration-service-name "myMigrationService" --location "EastUS2"

Langkah 2: Konfigurasikan dan mulai migrasi database online dari SQL Server lokal (dengan cadangan di penyimpanan Azure) ke Azure SQL Managed Instance.

#STEP 2: Start Migration
az datamigration sql-managed-instance create `
--source-location '{\"AzureBlob\":{\"storageAccountResourceId\":\"/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Storage/storageAccounts/dbbackupssqlbits\",\"accountKey\":\"myAccountKey\",\"blobContainerName\":\"dbbackups\"}}' `
--migration-service "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.DataMigration/SqlMigrationServices/myMigrationService" `
--scope "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Sql/managedInstances/mySQLMI" `
--source-database-name "AdventureWorks2008" `
--source-sql-connection authentication="SqlAuthentication" data-source="mySQLServer" password="myPassword" user-name="sqluser" `
--target-db-name "AdventureWorks2008" `
--resource-group myRG `
--managed-instance-name mySQLMI

Langkah 3: Lakukan cutover migrasi setelah semua cadangan dipulihkan ke Azure SQL Managed Instance.

#STEP 3: Get migration ID and perform Cutover
$migOpId = az datamigration sql-managed-instance show --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --expand=MigrationStatusDetails --query "properties.migrationOperationId"
az datamigration sql-managed-instance cutover --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --migration-operation-id $migOpId

Jika Anda menerima kesalahan "Langganan tidak terdaftar untuk menggunakan namespace 'Microsoft.DataMigration'. Lihat https://aka.ms/rps-not-found cara mendaftarkan langganan", jalankan perintah berikut:

   Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"

Langkah berikutnya

  • Untuk dokumentasi referensi Azure PowerShell untuk migrasi database SQL Server, lihat Az.DataMigration.
  • Untuk dokumentasi referensi Azure CLI untuk migrasi database SQL Server, lihat az datamigration.
  • Untuk repositori kode Sampel Azure, lihat data-migration-sql