Tutorial: Memigrasikan SQL Server ke Azure SQL Database menggunakan DMS (klasik)

Penting

Azure Database Migration Service (klasik) - Skenario SQL berada di jalur penghentian. Sejak 1 Agustus 2023, Anda tidak lagi dapat membuat sumber daya Database Migration Service (klasik) baru untuk skenario SQL Server dari portal Azure. Layanan ini akan dihentikan pada 15 Maret 2026 untuk semua pelanggan. Untuk migrasi tanpa hambatan dari beberapa sumber database ke Target Azure SQL, Microsoft merekomendasikan penggunaan versi terbaru Azure Database Migration Service, yang tersedia sebagai Azure SQL Migration ekstensi di Azure Data Studio, atau melalui Portal Microsoft Azure, atau melalui Azure PowerShell dan Azure CLI. Untuk informasi selengkapnya, lihat Pemberitahuan penghentian: Database Migration Service (klasik).

Catatan

Tutorial ini menggunakan versi Azure Database Migration Service yang lebih lama. Untuk fungsionalitas dan dukungan yang ditingkatkan, pertimbangkan untuk bermigrasi ke Azure SQL Database dengan menggunakan ekstensi migrasi Azure SQL untuk Azure Data Studio.

Untuk membandingkan fitur antar versi, tinjau bandingkan versi.

Anda dapat menggunakan Azure Database Migration Service untuk memigrasikan database dari instans SQL Server ke Azure SQL Database. Dalam tutorial ini, Anda memigrasikan database AdventureWorks2016 yang dipulihkan ke instans SQL Server 2016 lokal (atau lebih baru) ke database tunggal atau kumpulan database di Azure SQL Database dengan menggunakan Azure Database Migration Service.

Anda akan mempelajari cara untuk:

  • Menilai dan mengevaluasi database lokal Anda untuk setiap masalah pemblokiran dengan menggunakan Asisten Migrasi Data.
  • Gunakan Asisten Migrasi Data untuk memigrasikan skema sampel database.
  • Mendaftarkan penyedia sumber daya Azure DataMigration.
  • Buat instans Azure Database Migration Service.
  • Membuat proyek migrasi dengan menggunakan Azure Database Migration Service.
  • Menjalankan migrasi.
  • Memantau migrasinya.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda perlu:

  • Unduh dan pasang SQL Server 2016 atau yang lebih baru.

  • Aktifkan protokol TCP/IP, yang dinonaktifkan secara default selama instalasi SQL Server Express, dengan mengikuti instruksi dalam artikel Mengaktifkan atau Menonaktifkan Protokol Jaringan Server.

  • Memulihkan database AdventureWorks2016 ke instans SQL Server.

  • Buat database di Azure SQL Database, yang Anda lakukan dengan mengikuti detail dalam artikel Membuat database di Azure SQL Database menggunakan portal Azure. Untuk tujuan tutorial ini, nama Azure SQL Database diasumsikan sebagai AdventureWorksAzure, tetapi Anda dapat memberikan nama apa pun yang Anda inginkan.

    Catatan

    Jika Anda menggunakan SQL Server Integration Services (SSIS) dan ingin memigrasikan database katalog untuk proyek/paket SSIS Anda (SSISDB) dari SQL Server ke Azure SQL Database, tujuan SSISDB akan dibuat dan dikelola secara otomatis atas nama Anda saat Anda memprovisikan SSIS di Azure Data Factory (ADF). Untuk mengetahui informasi selengkapnya tentang memigrasikan paket SSIS, lihat artikel Memigrasikan paket SQL Server Integration Services ke Azure.

  • Unduh dan pasang versi terbaru Asisten Migrasi Data.

  • Buat Microsoft Azure Virtual Network untuk Azure Database Migration Service dengan menggunakan model penyebaran Azure Resource Manager, yang menyediakan konektivitas site-to-site ke server sumber lokal Anda dengan menggunakan ExpressRoute atau VPN. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan virtual, lihat Dokumentasi Jaringan Virtual, terutama artikel mulai cepat yang disertai detail langkah demi langkah.

    Catatan

    Selama penyiapan jaringan virtual, jika Anda menggunakan ExpressRoute dengan peering jaringan ke Microsoft, tambahkan titik akhir layanan berikut ke subnet tempat layanan akan diprovisikan:

    • Titik akhir database target (misalnya, titik akhir SQL, titik akhir Cosmos DB, serta sebagainya)
    • Titik akhir penyimpanan
    • Titik akhir bus layanan

    Konfigurasi ini diperlukan karena Azure Database Migration Service tidak memiliki konektivitas internet.

    Jika Anda tidak memiliki konektivitas situs-ke-situs antara jaringan lokal dan Azure atau jika ada bandwidth konektivitas situs-ke-situs terbatas, pertimbangkan untuk menggunakan Azure Database Migration Service dalam mode hibrid (Pratinjau). Mode hibrid memanfaatkan pekerja migrasi lokal bersama dengan instans Azure Database Migration Service yang berjalan di cloud. Untuk membuat instans Azure Database Migration Service dalam mode hibrid, lihat artikel Membuat instans Azure Database Migration Service dalam mode hibrid menggunakan portal Azure.

  • Pastikan bahwa aturan keamanan keluar jaringan virtual Network Security Group Anda tidak memblokir port keluar 443 dari ServiceTag untuk ServiceBus, Storage, dan AzureMonitor. Untuk mengetahui detail selengkapnya tentang pemfilteran lalu lintas NSG jaringan virtual Azure, lihat artikel Memfilter lalu lintas dengan kelompok keamanan jaringan.

  • Konfigurasikan Windows Firewall untuk akses mesin database Anda.

  • Buka firewall Anda di Windows untuk memungkinkan Azure Database Migration Service mengakses SQL Server sumber, yang secara default adalah port TCP 1433. Jika instans default Anda mendengarkan beberapa port lain, tambahkan hal tersebut ke firewall.

  • Jika Anda menjalankan beberapa instans SQL Server bernama menggunakan port dinamis, Anda mungkin ingin mengaktifkan Layanan Browser SQL dan mengizinkan akses ke port UDP 1434 melalui firewall Anda sehingga Azure Database Migration Service dapat tersambung ke instans bernama di server sumber Anda.

  • Saat menggunakan appliance firewall di depan database sumber Anda, Anda mungkin perlu menambahkan aturan firewall untuk memungkinkan Azure Database Migration Service mengakses database sumber untuk migrasi.

  • Buat aturan firewall IP tingkat server untuk Azure SQL Database untuk mengizinkan akses Azure Database Migration Service ke database target. Berikan rentang subnet jaringan virtual yang digunakan untuk Azure Database Migration Service.

  • Pastikan kredensial yang digunakan untuk tersambung ke instans SQL Server sumber memiliki izin SERVER KONTROL.

  • Pastikan bahwa info masuk yang digunakan untuk menyambungkan ke instans Azure SQL Database target memiliki izin DATABASE KONTROL pada database target.

    Penting

    Membuat instans Azure Database Migration Service memerlukan akses ke pengaturan jaringan virtual yang biasanya tidak berada dalam grup sumber daya yang sama. Akibatnya, pengguna yang membuat instans DMS memerlukan izin di tingkat langganan. Untuk membuat peran yang diperlukan, yang dapat Anda tetapkan sesuai kebutuhan, jalankan skrip berikut:

    
    $readerActions = `
    "Microsoft.Network/networkInterfaces/ipConfigurations/read", `
    "Microsoft.DataMigration/*/read", `
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    
    $writerActions = `
    "Microsoft.DataMigration/services/*/write", `
    "Microsoft.DataMigration/services/*/delete", `
    "Microsoft.DataMigration/services/*/action", `
    "Microsoft.Network/virtualNetworks/subnets/join/action", `
    "Microsoft.Network/virtualNetworks/write", `
    "Microsoft.Network/virtualNetworks/read", `
    "Microsoft.Resources/deployments/validate/action", `
    "Microsoft.Resources/deployments/*/read", `
    "Microsoft.Resources/deployments/*/write"
    
    $writerActions += $readerActions
    
    # TODO: replace with actual subscription IDs
    $subScopes = ,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/"
    
    function New-DmsReaderRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Reader"
    $aRole.Description = "Lets you perform read only actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    
    $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function New-DmsContributorRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Contributor"
    $aRole.Description = "Lets you perform CRUD actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    
      $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsReaderRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Reader"
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsConributorRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Contributor"
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    # Invoke above functions
    New-DmsReaderRole
    New-DmsContributorRole
    Update-DmsReaderRole
    Update-DmsConributorRole
    

Menilai database lokal Anda

Sebelum Anda bisa memigrasikan data dari instans SQL Server ke satu database atau database terkumpulan di Azure SQL Database, Anda perlu menilai database SQL Server untuk setiap masalah pemblokiran yang mungkin mencegah migrasi. Menggunakan Asisten Migrasi Data, ikuti langkah-langkah yang dijelaskan dalam artikel Melakukan penilaian migrasi SQL Server untuk menyelesaikan penilaian database lokal. Ringkasan langkah-langkah yang diperlukan berikut:

  1. Di Asisten Migrasi Data, pilih ikon Baru (+), lalu pilih jenis proyek Penilaian.

  2. Menentukan nama proyek. Dari daftar drop-down Jenis penilaian, pilih Database Engine, dalam kotak teks Jenis server sumber, pilih SQL Server, dalam kotak teks Jenis server target, pilih Azure SQL Database, lalu pilih Buat untuk membuat proyek.

    Saat Anda menilai database SQL Server sumber yang bermigrasi ke database tunggal atau database terkumpul di Azure SQL Database, Anda bisa memilih salah satu atau kedua jenis laporan penilaian berikut ini:

    • Memeriksa kompatibilitas database
    • Memeriksa paritas fitur

    Kedua jenis laporan dipilih secara default.

  3. Di Asisten Migrasi Data, pada layar Opsi, pilih Berikutnya.

  4. Pada layar Pilih sumber, dalam kotak dialog Sambungkan ke server, sediakan detail koneksi ke SQL Server Anda, lalu pilih Sambungkan.

  5. Dalam kotak dialog Tambahkan sumber, pilih AdventureWorks2016, pilih Tambahkan, lalu pilih Mulai Penilaian.

    Catatan

    Jika Anda menggunakan SSIS, DMA saat ini tidak mendukung penilaian SSISDB sumber. Namun, proyek/paket SSIS akan dinilai/divalidasi karena disebarkan ulang ke tujuan SSISDB yang dihosting oleh Azure SQL Database. Untuk mengetahui informasi selengkapnya tentang memigrasikan paket SSIS, lihat artikel Memigrasikan paket SQL Server Integration Services ke Azure.

    Ketika penilaian selesai, hasil ditampilkan seperti yang ditunjukkan dalam grafik berikut:

    Assess data migration

    Untuk database di Azure SQL Database, penilaian mengidentifikasi masalah paritas fitur dan masalah pemblokiran migrasi untuk disebarkan ke database tunggal atau database terkumpul.

    • Kategori Paritas fitur SQL Server menyediakan serangkaian rekomendasi yang komprehensif, pendekatan alternatif yang tersedia di Azure, dan mengurangi langkah-langkah untuk membantu Anda merencanakan upaya ke dalam proyek migrasi Anda.
    • Kategori Masalah kompatibilitas mengidentifikasi fitur yang didukung sebagian atau tidak didukung yang mencerminkan masalah kompatibilitas yang mungkin memblokir migrasi database SQL Server ke Azure SQL Database. Rekomendasi juga diberikan untuk membantu Anda mengatasi masalah tersebut.
  6. Tinjau hasil penilaian untuk masalah pemblokiran migrasi dan masalah paritas fitur dengan memilih opsi tertentu.

Memigrasikan skema sampel

Setelah Anda merasa cukup dengan penilaian dan puas bahwa database yang dipilih adalah kandidat yang layak untuk migrasi ke database tunggal atau database terkumpul di Azure SQL Database, gunakan DMA untuk memigrasikan skema ke Azure SQL Database.

Catatan

Sebelum Anda membuat proyek migrasi di Asisten Migrasi Data, pastikan Anda telah memprovisikan database di Azure seperti yang disebutkan dalam prasyarat.

Penting

Jika Anda menggunakan SSIS, DMA saat ini tidak mendukung migrasi SSISDB sumber, tetapi Anda dapat menyebarkan ulang proyek/paket SSIS Anda ke tujuan SSISDB yang dihosting oleh Azure SQL Database. Untuk mengetahui informasi selengkapnya tentang memigrasikan paket SSIS, lihat artikel Memigrasikan paket SQL Server Integration Services ke Azure.

Untuk memigrasikan skema AdventureWorks2016 ke database tunggal atau database terkumpul Azure SQL Database, lakukan langkah-langkah berikut:

  1. Di Asisten Migrasi Data, pilih ikon Baru (+), lalu di bawah Jenis proyek, pilih Migrasi.

  2. Tentukan nama proyek, dalam kotak teks Jenis server sumber, pilih SQL Server, lalu di kotak teks Jenis server target, pilih Azure SQL Database.

  3. Di bawah Cakupan Migrasi, pilih Khusus skema.

    Setelah melakukan langkah-langkah sebelumnya, antarmuka Asisten Migrasi Data akan muncul seperti yang ditampilkan dalam grafik berikut:

    Create Data Migration Assistant Project

  4. Pilih Buat untuk membuat proyek.

  5. Di Data Migration Assistant, tentukan detail koneksi sumber untuk SQL Server Anda, pilih Sambungkan, lalu pilih database AdventureWorks2016.

    Data Migration Assistant Source Connection Details

  6. Pilih Berikutnya, di bawah Sambungkan ke server target, tentukan detail koneksi target untuk Azure SQL Database, pilih Sambungkan, lalu pilih database AdventureWorksAzure yang telah Anda provisikan sebelumnya di Azure SQL Database.

    Data Migration Assistant Target Connection Details

  7. Pilih Berikutnya untuk melanjutkan ke layar Pilih objek, tempat Anda dapat menentukan objek skema dalam database AdventureWorks2016 yang perlu disebarkan ke Azure SQL Database.

    Secara default, semua objek dipilih.

    Generate SQL Scripts

  8. Pilih Buat skrip SQL untuk membuat skrip SQL, lalu tinjau skrip untuk mendeteksi kesalahan apa pun.

    Schema Script

  9. Pilih Sebarkan skema untuk menyebarkan skema ke Azure SQL Database, lalu setelah skema disebarkan, periksa server target untuk mendeteksi anomali apa pun.

    Deploy Schema

Mendaftarkan penyedia sumber

Daftarkan penyedia sumber daya Microsoft.DataMigration sebelum Anda membuat instans pertama Azure Database Migration Service.

  1. Masuk ke portal Azure. Cari dan pilih Langganan.

    Show portal subscriptions

  2. Pilih langganan tempat Anda ingin membuat instans Azure Database Migration Service, lalu pilih Penyedia sumber daya.

    Show resource providers

  3. Cari migrasi, lalu pilih Daftar untuk Microsoft.DataMigration.

    Register resource provider

Membuat instans Azure Database Migration Service

  1. Di menu portal Microsoft Azure atau di halaman Berandahalaman, pilih Buat sumber daya. Cari dan pilih Azure Database Migration Service.

    Azure Marketplace

  2. Pada layar Azure Database Migration Service, pilih Buat.

    Create Azure Database Migration Service instance

    Pilih jenis server Sumber dan jenis server Target yang sesuai, dan pilih opsi Database Migration Service (Klasik).

    Select Database Migration Service (Classic) scenario

  3. Pada Create Migration Service layar dasar:

    • Pilih langganan.
    • Buat grup sumber daya baru atau pilih grup sumber daya yang sudah ada.
    • Tentukan nama untuk instans Azure Database Migration Service.
    • Pilih lokasi tempat Anda ingin membuat instans Azure Database Migration Service.
    • Pilih Azure sebagai mode layanan.
    • Pilih tingkat harga. Untuk mengetahui informasi selengkapnya tentang tingkat biaya dan harga, lihat halaman harga.

    Configure Azure Database Migration Service instance basics settings

    • Pilih Next: Networking.
  4. Pada layar jaringan Buat Layanan Migrasi:

    • Pilih jaringan virtual yang ada atau buat jaringan baru. Jaringan virtual menyediakan Azure Database Migration Service dengan akses ke server sumber dan instans target. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan virtual di portal Microsoft Azure, lihat artikel Membuat jaringan virtual menggunakan portal Microsoft Azure.

    Configure Azure Database Migration Service instance networking settings

    • Pilih Tinjau + Buat untuk meninjau detail dan kemudian pilih Buat untuk membuat layanan.

    • Setelah beberapa saat, instans layanan Azure Database Migration Anda dibuat dan siap digunakan:

    Migration service created

Membuat proyek migrasi

Setelah layanan dibuat, temukan layanan di portal Azure, buka lalu buat proyek migrasi baru.

  1. Di menu portal Azure, pilih Semua layanan. Cari dan pilih Azure Database Migration Services.

    Locate all instances of Azure Database Migration Service

  2. Pada layar Azure Database Migration Services, pilih instans Azure Database Migration Service yang Anda buat.

  3. Pilih Proyek Migrasi Baru.

    Locate your instance of Azure Database Migration Service

  4. Pada layar Proyek migrasi baru, tentukan nama untuk proyek, dalam kotak teks Jenis server sumber, pilih SQL Server, dalam kotak teks Jenis server target, pilih Azure SQL Database, lalu untuk Pilih jenis aktivitas Migrasi, pilih Migrasi data.

    Create Database Migration Service Project

  5. Pilih Buat dan jalankan aktivitas untuk membuat proyek dan menjalankan aktivitas migrasi.

Menentukan detail sumber

  1. Pada layar Pilih sumber, tentukan detail koneksi untuk instans SQL Server sumber.

    Pastikan untuk menggunakan Nama Domain Yang Sepenuhnya Memenuhi Syarat (FQDN) untuk nama instans SQL Server sumber. Anda dapat menggunakan Alamat IP untuk situasi saat resolusi nama DNS tidak dimungkinkan.

  2. Jika Anda belum menginstal sertifikat tepercaya di server sumber Anda, pilih kotak centang Percayai sertifikat server.

    Jika sertifikat tepercaya tidak diinstal, SQL Server akan membuat sertifikat yang ditandatangani sendiri saat instans dimulai. Sertifikat ini digunakan untuk mengenkripsi kredensial untuk koneksi klien.

    Perhatian

    Koneksi TLS yang dienkripsi menggunakan sertifikat yang ditandatangani sendiri tidak memberikan keamanan yang ketat. Koneksi ini rentan terhadap serangan man-in-the-middle. Sebaiknya jangan mengandalkan TLS menggunakan sertifikat yang ditandatangani sendiri di lingkungan produksi atau di server yang tersambung ke internet.

    Penting

    Jika Anda menggunakan SSIS, DMS saat ini tidak mendukung migrasi SSISDB sumber, tetapi Anda dapat menyebarkan ulang proyek/paket SSIS Anda ke tujuan SSISDB yang dihosting oleh Azure SQL Database. Untuk mengetahui informasi selengkapnya tentang memigrasikan paket SSIS, lihat artikel Memigrasikan paket SQL Server Integration Services ke Azure.

    Source Details

  3. Pilih Berikutnya: Pilih database.

Pilih database untuk migrasi

Pilih semua database atau database tertentu yang ingin Anda migrasikan ke Azure SQL Database. DMS memberi Anda waktu migrasi yang diharapkan untuk database yang dipilih. Jika waktu henti migrasi dapat diterima, lanjutkan proses migrasi. Jika waktu henti migrasi tidak dapat diterima, pertimbangkan untuk bermigrasi ke SQL Managed Instance dengan waktu henti hampir nol atau mengirimkan ide/saran untuk peningkatan, dan umpan balik lainnya di forum Komunitas Azure — Azure Database Migration Service.

  1. Pilih database yang ingin Anda migrasikan dari daftar database yang tersedia.

  2. Meninjau waktu henti yang diharapkan. Jika dapat diterima, pilih Berikutnya: Pilih target >>

    Source databases

Tentukan detail target

  1. Pada layar Pilih target, berikan pengaturan autentikasi ke Azure SQL Database Anda.

    Select target

    Catatan

    Saat ini, autentikasi SQL adalah satu-satunya jenis autentikasi yang didukung.

  2. Pilih layar Berikutnya: Memetakan ke database target, petakan database sumber dan target untuk migrasi.

    Jika database target berisi nama database yang sama dengan database sumber, Azure Database Migration Service memilih database target secara default.

    Map to target databases

  3. Pilih Berikutnya: Pengaturan migrasi konfigurasi, luaskan daftar tabel, lalu tinjau daftar bidang yang terpengaruh.

    Azure Database Migration Service secara otomatis memilih semua tabel sumber kosong yang ada pada instans Azure SQL Database target. Jika Anda ingin memigrasi ulang tabel yang sudah menyertakan data, Anda harus secara eksplisit memilih tabel pada bilah ini.

    Select tables

  4. Pilih Berikutnya: Ringkasan, tinjau konfigurasi migrasi dan dalam kotak teks Nama aktivitas, tentukan nama aktivitas migrasi.

    Choose validation option

Menjalankan migrasi

  • Pilih Mulai migrasi.

    Jendela aktivitas migrasi akan muncul, dan Status aktivitas Tertunda.

    Activity Status

Memantau migrasi

  1. Pada layar aktivitas migrasi, pilih Refresh untuk memperbarui tampilan hingga Status migrasi ditampilkan sebagai Selesai.

    Activity Status Completed

  2. Verifikasi database target pada target Azure SQL Database.

Sumber Daya Tambahan: