Bagikan melalui


Tutorial: Memigrasikan SQL Server ke Azure SQL Database (offline)

Anda dapat menggunakan Azure Database Migration Service melalui portal Microsoft Azure, untuk memigrasikan database dari instans SQL Server lokal ke Azure SQL Database (offline).

Dalam tutorial ini, pelajari cara memigrasikan database sampel AdventureWorks2022 dari instans SQL Server lokal ke Azure SQL Database, dengan menggunakan Database Migration Service. Tutorial ini menggunakan mode migrasi offline, yang mempertimbangkan waktu henti yang dapat diterima selama proses migrasi.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat instans Azure Database Migration Service
  • Mulai migrasi Anda dan pantau kemajuan hingga penyelesaian

Penting

Saat ini, migrasi online untuk target Azure SQL Database tidak tersedia dengan Azure Database Migration Service. Dalam migrasi offline, waktu henti aplikasi dimulai saat migrasi dimulai. Menguji migrasi offline disarankan untuk menentukan apakah waktu henti dapat diterima.

Opsi Migrasi

Bagian berikut ini menjelaskan cara menggunakan Azure Database Migration Service dengan portal Microsoft Azure.

Prasyarat

Sebelum Anda memulai tutorial:

  • Pastikan Anda dapat mengakses portal Microsoft Azure.

  • Pastikan penyedia sumber daya Microsoft.DataMigration terdaftar di langganan Anda.

  • Memiliki akun Azure yang ditetapkan ke salah satu peran bawaan berikut:

    • Kontributor pada Target Azure SQL Database
    • Peran pembaca untuk grup sumber daya Azure yang berisi target Azure SQL Database
    • Peran Pemilik atau Kontributor untuk langganan Azure (diperlukan jika Anda membuat instans baru Azure Database Migration Service)

    Sebagai alternatif untuk menggunakan salah satu peran bawaan ini, Anda dapat menetapkan peran kustom.

  • Buat Azure SQL Database sebagai target.

  • Pastikan bahwa login SQL Server yang terhubung ke instans SQL Server sumber adalah anggota peran db_datareader , dan bahwa login untuk instans SQL Server target adalah anggota peran db_owner .

  • Untuk memigrasikan Skema database dari sumber ke Azure SQL Database target dengan menggunakan Database Migration Service, versi SHIR minimum yang didukung yang diperlukan adalah 5.37 atau lebih tinggi.

  • Untuk migrasi skema, izin minimum pada SQL Server sumber adalah db_owner untuk mengakses database dan pada Azure SQL Database target, pengguna harus tergabung dalam semua peran di tingkat server dalam tabel berikut:

Peranan Deskripsi
##MS_DatabaseManager## Anggota peran server tetap ##MS_DatabaseManager## dapat membuat dan menghapus database. Anggota peran ##MS_DatabaseManager## yang membuat database menjadi pemilik database tersebut, yang memungkinkan pengguna tersebut untuk menyambungkan ke database tersebut sebagai pengguna dbo. Pengguna dbo memiliki semua izin database di dalamnya. Anggota peran ##MS_DatabaseManager## tidak selalu memiliki izin untuk mengakses database yang tidak mereka miliki. Disarankan untuk menggunakan peran server ini atas peran tingkat database dbmanager yang ada dalam master database.
##MS_DatabaseConnector## Anggota peran server tetap ##MS_DatabaseConnector## dapat tersambung ke database apa pun tanpa memerlukan akun pengguna dalam database untuk terhubung.
##MS_DefinitionReader## Anggota peran server tetap ##MS_DefinitionReader## dapat membaca semua tampilan katalog yang tercakup VIEW ANY DEFINITION dalam database apa pun di mana anggota peran ini memiliki akun pengguna.
##MS_LoginManager## Anggota peran server tetap ##MS_LoginManager## dapat membuat dan menghapus login. Disarankan untuk menggunakan peran server ini daripada peran tingkat database loginmanager yang ada di dalam database master.

Menyiapkan Target Azure SQL Database

Untuk membuat login dan pengguna di Azure SQL Database target, jalankan skrip berikut pada master database:

CREATE LOGIN testuser WITH PASSWORD = '<password>';

ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser];
GO

CREATE USER testuser FOR LOGIN testuser;
EXECUTE sp_addRoleMember 'dbmanager', 'testuser';
EXECUTE sp_addRoleMember 'loginmanager', 'testuser';

Sekarang, Anda dapat memigrasikan skema database dan data menggunakan Database Migration Service. Anda juga dapat menggunakan alat lain seperti ekstensi Proyek SQL Database di Visual Studio Code untuk memigrasikan skema sebelum memilih daftar tabel yang akan dimigrasikan.

Catatan

Jika tidak ada tabel pada target Azure SQL Database, atau tidak ada tabel yang dipilih sebelum memulai migrasi, tombol Berikutnya tidak tersedia untuk memulai migrasi. Jika tidak ada tabel pada target, maka Anda harus memilih opsi migrasi skema untuk maju.

Membuat instance Layanan Migrasi Basis Data

Langkah 1: Di portal Azure, navigasikan ke halaman Azure Database Migration Service. Buat instans baru Azure Database Migration Service, atau gunakan kembali instans yang sudah ada yang Anda buat sebelumnya.

Menggunakan instans Database Migration Service yang sudah ada

Untuk menggunakan instance dari Database Migration Service yang sudah ada:

  • Di portal Azure, di bawah Azure Database Migration Services, pilih instans Database Migration Service yang sudah ada yang ingin Anda gunakan, memastikan bahwa instans tersebut ada di Grup Sumber Daya dan wilayah yang tepat.

    Cuplikan layar yang memperlihatkan gambaran umum Database Migration Service.

Buat instance baru untuk Database Migration Service

Untuk membuat instance baru Database Migration Service:

  1. Di portal Azure, di bawah Azure Database Migration Service, pilih Buat.

    Cuplikan layar yang memperlihatkan opsi buat Database Migration Service.

  2. Di Pilih skenario migrasi dan Database Migration Service, pilih input yang diinginkan seperti jenis server Sumber dan Target, pilih Database Migration Service dan pilih Pilih.

    Cuplikan layar yang memperlihatkan skenario Migrasi Database Migration Service.

  3. Pada layar berikutnya Buat Layanan Migrasi Data, pilih grup langganan dan sumber daya Anda, lalu pilih Lokasi, dan masukkan nama Layanan Migrasi Database. Pilih Tinjau + Buat. Ini membuat Azure Database Migration Service.

    Cuplikan layar yang menunjukkan detail input yang diperlukan oleh Database Migration Service.

  4. Jika runtime integrasi yang dihost sendiri (SHIR) diperlukan, di halaman gambaran umum dan di bawah bagian Pengaturan dari Database Migration Service Anda, pilih Runtime integrasi, dan selesaikan langkah-langkah berikut:

    1. Pilih Konfigurasikan runtime integrasi dan pilih tautan Unduh dan instal runtime integrasi untuk membuka tautan unduhan di browser web. Unduh runtime integrasi, lalu instal di komputer yang memenuhi prasyarat untuk menyambungkan ke instans SQL Server sumber. Untuk informasi selengkapnya, lihat Integrasi runtime yang di-host sendiri untuk migrasi database.

      Cuplikan layar yang memperlihatkan tautan Unduh dan instal runtime integrasi.

      Setelah penginstalan selesai, Microsoft Integration Runtime Configuration Manager secara otomatis terbuka untuk memulai proses pendaftaran.

    2. Di tabel Kunci autentikasi, salin salah satu kunci autentikasi yang disediakan dalam wizard dan tempelkan di Microsoft Integration Runtime Configuration Manager.

      Cuplikan layar yang menyoroti tabel kunci autentikasi dalam wizard.

      Jika kunci autentikasi valid, ikon centang hijau muncul di Integration Runtime Configuration Manager. Tanda centang hijau menunjukkan bahwa Anda dapat terus Mendaftar.

      Setelah Anda mendaftarkan runtime integrasi yang dihost sendiri, tutup Microsoft Integration Runtime Configuration Manager. Mungkin perlu waktu beberapa menit untuk mencerminkan detail Node pada portal Azure untuk Database Migration Service, di bawah Pengaturan > Integrasi runtime.

      Cuplikan layar yang menyoroti status SHIR pada portal Azure.

      Catatan

      Untuk informasi selengkapnya tentang runtime integrasi yang dihost sendiri, lihat Membuat dan mengonfigurasi runtime integrasi yang dihost sendiri.

Memulai migrasi baru

  1. Untuk memulai migrasi baru, buka Azure Database Migration Service di portal Microsoft Azure, dan gunakan +Buat untuk membuat instans baru Database Migration Service, atau pilih instans yang sudah ada, lalu buka instans Azure Database Migration Service Anda.

  2. Pada panel Gambaran Umum instans Azure Database Migration Service Anda, pilih Migrasi baru:

    Cuplikan layar Dasbor Migrasi Database Azure.

  3. Di bawah Pilih skenario migrasi baru, pilih sumber Anda, jenis server target, mode migrasi, dan pilih Pilih.

    Cuplikan layar pilih skenario migrasi baru.

  4. Pada Wizard Migrasi Offline Azure SQL Database, ikuti langkah-langkah berikut:

    1. Pada tab Detail sumber, masukkan detail untuk instans SQL Server sumber, lalu pilih Berikutnya: Sambungkan ke SQL Server sumber:

      Cuplikan layar Pelacakan Sumber.

    2. Pada tab Sambungkan ke SQL Server sumber , berikan detail koneksi lalu pilih Berikutnya: Pilih database untuk migrasi:

      Tangkapan layar Sambungkan ke sumber.

    3. Pada tab Pilih database untuk migrasi , centang kotak di samping database yang ingin Anda migrasikan. Mengisi daftar database bisa memakan waktu. Pilih Berikutnya: Sambungkan ke Target Azure SQL Database.

      Cuplikan layar pilihan database.

    4. Pada tab Sambungkan ke Azure SQL Database target , berikan detail koneksi lalu pilih Berikutnya: Petakan database sumber dan target:

      Cuplikan layar target yang terhubung.

    5. Pada tab Pemetaan database sumber dan target, petakan database antara sumber dan target.

      Cuplikan layar Peta database.

    6. (Opsional) Centang kotak di samping Migrasikan Skema yang Hilang untuk menyebarkan objek skema yang hilang dari sumber ke target Azure SQL Database untuk memigrasikan objek skema berikut dengan satu kotak centang:

      • Skema
      • Tabel (dipilih)
      • Indeks
      • Pandangan
      • Prosedur tersimpan (StoredProcedures)
      • Sinonim
      • Pemicu DDL (DdlTriggers)
      • Pengaturan Bawaan
      • Katalog teks lengkap (FullTextCatalogs)
      • Panduan rencana (PlanGuides)
      • Peranan
      • Aturan
      • Peran Aplikasi (ApplicationRoles)
      • Agregat yang ditentukan pengguna (UserDefinedAggregates)
      • Jenis data yang ditentukan pengguna (UserDefinedDataTypes)
      • Fungsi yang ditentukan pengguna (UserDefinedFunctions)
      • Jenis tabel yang ditentukan pengguna (UserDefinedTableTypes)
      • Jenis yang ditentukan pengguna (UserDefinedTypes)
      • Pengguna* (tidak setiap jenis pengguna)
      • XmlSchemaCollections

      Catatan

      • Jika Anda memilih Migrasi Skema yang Hilang, layanan Migrasi Database melakukan migrasi skema sebelum data dimigrasikan.
      • DMS melanjutkan fase migrasi data meskipun migrasi skema mengalami kesalahan, kecuali ada masalah dengan objek tabel.

      Selanjutnya, gunakan Pilih semua tabel untuk memigrasikan semua tabel, atau gunakan kotak entri teks untuk memfilter daftar tabel dan memilih tabel individual untuk dimigrasikan. Lalu pilih Berikutnya: Ringkasan migrasi database.

      Cuplikan layar skema dan tabel tertentu.

    7. Pada tab Ringkasan migrasi database , tinjau detail lalu pilih Mulai migrasi, yang memulai migrasi database dan secara otomatis membawa Anda kembali ke dasbor Database Migration Service.

      Cuplikan layar Ringkasan.

      Catatan

      Untuk migrasi offline, waktu henti aplikasi dimulai saat migrasi dimulai.

Memantau migrasi database

  1. Untuk memantau migrasi database Anda, pada panel Gambaran Umum instans Database Migration Service Anda, pilih Pantau migrasi.

    Cuplikan layar gambaran umum Azure Database Migration Service di portal Microsoft Azure.

  2. Di bawah tab Migrasi , Anda dapat melacak migrasi yang sedang berlangsung, selesai, dan gagal (jika ada), atau Anda dapat melihat semua migrasi database. Di bilah menu, pilih Refresh untuk memperbarui status migrasi.

    Cuplikan layar pemantauan dasbor DMS.

    Database Migration Service mengembalikan status migrasi terbaru yang diketahui setiap kali status migrasi di-refresh. Tabel berikut ini menjelaskan kemungkinan status:

    Keadaan Deskripsi
    Membuat Layanan ini memulai migrasi.
    Mempersiapkan penyalinan Layanan ini menonaktifkan autostats, pemicu, dan indeks pada tabel target.
    Menyalin Data sedang disalin dari database sumber ke database target.
    Penyalinan selesai Salinan data selesai. Layanan menunggu tabel lain untuk menyelesaikan penyalinan untuk memulai langkah-langkah akhir untuk mengembalikan tabel ke skema aslinya.
    Membangun ulang indeks Layanan ini membangun kembali indeks pada tabel target.
    Berhasil Semua data disalin dan indeks dibangun kembali.
  3. Di bawah Nama sumber, pilih nama database untuk membuka tampilan tabel.. Dalam tampilan terperinci ini, Anda akan melihat status migrasi saat ini, jumlah tabel yang saat ini berada dalam status tersebut, dan status terperinci dari setiap tabel:

    Cuplikan layar Pemantauan migrasi terperinci.

  4. Saat semua data tabel dimigrasikan ke target Azure SQL Database, Database Migration Service memperbarui status migrasi dari Sedang berlangsung menjadi Berhasil.

    Cuplikan layar keberhasilan migrasi terperinci.

Catatan

Database Migration Service mengoptimalkan migrasi dengan melewati tabel tanpa data (0 baris). Tabel yang tidak memiliki data tidak muncul dalam daftar, meskipun Anda memilih tabel saat membuat migrasi.

Anda telah menyelesaikan migrasi ke Azure SQL Database. Lakukan serangkaian tugas pascamigrasi untuk memastikan bahwa semuanya berfungsi dengan lancar dan efisien.


Batasan

Migrasi offline Azure SQL Database menggunakan alur Azure Data Factory (ADF) untuk pergerakan data dan dengan demikian mematuhi batasan ADF. ADF terkait akan dibuat ketika layanan migrasi basis data juga dibuat. Dengan demikian batas pabrik berlaku per layanan.

  • Mesin tempat SHIR diinstal bertindak sebagai pengolah untuk migrasi. Pastikan komputer ini dapat menangani beban cpu dan memori salinan data. Untuk mempelajari lebih lanjut, tinjau Membuat dan mengonfigurasi runtime integrasi yang di-host sendiri.
  • Batas 100.000 tabel per database.
  • 10.000 migrasi database bersamaan per layanan.
  • Kecepatan migrasi sangat tergantung pada target SKU Azure SQL Database dan host Integration Runtime yang dihost sendiri.
  • Migrasi Azure SQL Database memiliki skala yang buruk dengan jumlah tabel karena overhead ADF saat memulai aktivitas. Jika database memiliki ribuan tabel, proses startup setiap tabel mungkin memakan waktu beberapa detik, bahkan jika terdiri dari satu baris dengan 1 bit data.
  • Nama tabel Azure SQL Database dengan karakter byte ganda saat ini tidak didukung untuk migrasi. Mitigasi adalah mengganti nama tabel sebelum migrasi; mereka dapat diubah kembali ke nama aslinya setelah migrasi berhasil.
  • Tabel dengan kolom blob besar mungkin gagal bermigrasi karena waktu habis.
  • Nama database dengan SQL Server yang dicadangkan saat ini tidak didukung.
  • Nama database yang menyertakan titik koma saat ini tidak didukung.
  • Kolom komputasi tidak dimigrasikan.
  • Kolom dalam database sumber yang memiliki batasan default dan yang berisi nilai NULL, dimigrasikan dengan nilai default yang ditentukan pada database Azure SQL target, alih-alih mempertahankan nilai NULL.