Topik ini menjelaskan cara menggunakan SQL Server Management Studio (SSMS) untuk memigrasikan data dari database SQL Server di platform cloud lain atau database SQL Server yang dikelola sendiri ke instans Alibaba Cloud RDS for SQL Server. Dalam topik ini, Azure SQL Database digunakan sebagai contoh.
Prasyarat
Sebuah instans RDS for SQL Server dengan kapasitas penyimpanan lebih besar daripada instans sumber telah dibuat. Instans RDS memenuhi persyaratan berikut:
CatatanKami merekomendasikan agar kapasitas penyimpanan instans tujuan menjadi 1,2 kali kapasitas penyimpanan instans sumber. Jika Anda memiliki instans RDS for SQL Server tetapi kapasitas penyimpanannya tidak mencukupi, Anda harus memperluas kapasitas penyimpanan sesegera mungkin.
Edisi instans: Edisi Dasar, Edisi Ketersediaan Tinggi (SQL Server 2012 dan yang lebih baru), atau Edisi Kluster.
Tipe instans: Tujuan Umum, Spesifikasi Khusus (Tipe Shared tidak didukung).
Metode penagihan: Berlangganan atau bayar sesuai penggunaan (Tidak didukung untuk instans Serverless).
Jenis jaringan: virtual private cloud (VPC). Untuk mengubah jenis jaringan, lihat Ubah jenis jaringan.
Waktu pembuatan instans:
Instans Edisi Ketersediaan Tinggi dan Edisi Kluster harus dibuat pada atau setelah 1 Januari 2021.
Instans Edisi Dasar harus dibuat pada atau setelah 2 September 2022.
CatatanAnda dapat melihat Creation Time di halaman Basic Information di bawah Status.
SSMS terpasang di komputer Anda atau instans ECS. Instans ECS harus berada dalam virtual private cloud (VPC), menjalankan Citra Windows Server, dan diberi alamat IP publik.
CatatanDalam contoh ini,
SSMS 19.1digunakan untuk menjelaskan cara memigrasikan data ke cloud. Prosedur sebenarnya bervariasi berdasarkan beberapa faktor, seperti lokasi instalasi, versi, dan pengaturan SSMS.
Catatan Penggunaan
Untuk mencegah ketidaksesuaian data, Anda harus menghentikan penulisan data ke instans sumber. Periode waktu selama data tidak dapat ditulis ke instans sumber bervariasi berdasarkan jumlah data yang ingin Anda migrasikan dan waktu operasi sebenarnya.
Kecepatan mengekspor data bervariasi berdasarkan spesifikasi instans sumber.
Persiapan
Aktifkan akses ke Azure SQL Database melalui Internet. Konfigurasikan firewall Anda untuk mengizinkan alamat IP publik instans ECS atau alamat IP perangkat lokal Anda untuk mengakses layanan dan sumber daya Azure.
CatatanUntuk informasi lebih lanjut, lihat dokumentasi resmi Azure atau hubungi dukungan teknis Azure.
Pastikan bahwa kendala dan tampilan instans sumber tidak menyebabkan kegagalan ekspor.
Masuk ke instans RDS menggunakan Akun Alibaba Cloud dan buat akun admin sistem.
Eksekusi pernyataan
SELECT name, compatibility_level FROM sys.databases;pada instans sumber dan tujuan untuk memeriksa apakah instans tujuan kompatibel dengan instans sumber.Konfigurasikan daftar putih untuk instans RDS untuk mengizinkan instans ECS atau perangkat lokal tempat klien ditempatkan untuk terhubung ke instans RDS.
CatatanJika Anda ingin menghubungkan instans ECS ke instans RDS melalui jaringan internal, pastikan bahwa instans-instans tersebut berada di wilayah yang sama dan VPC yang sama serta alamat IP pribadi instans ECS ditambahkan ke daftar putih alamat IP instans RDS.
Jika Anda ingin menghubungkan perangkat lokal ke instans RDS, pastikan bahwa alamat IP publik perangkat lokal ditambahkan ke daftar putih alamat IP instans RDS.
1. Ekspor data dari Azure SQL Database
Hentikan penulisan data ke Azure SQL Database dan ekspor data dalam database.
Buka halaman untuk mengekspor data.
Di Object Explorer, perluas Databases.
Klik kanan database yang diperlukan.
Pilih .
CatatanUntuk informasi lebih lanjut tentang ekspor data, lihat Ekspor Aplikasi Data-tier.
Klik Next.
Pilih objek yang ingin Anda ekspor.
Di tab Settings halaman Export Settings, pilih Save To Local Disk.
Klik Browse dan pilih jalur penyimpanan file dan nama file.
Di tab Advanced, pilih tabel yang ingin Anda ekspor.
CatatanJika Anda perlu memilih objek lain, seperti pemicu dan prosedur tersimpan, klik kanan database yang diperlukan di Object Explorer dan pilih .
Klik Next.
Klik Finish.
Setelah data diekspor, klik Close.
2. Impor data ke instans RDS
Impor data yang diekspor ke instans RDS for SQL Server.
Gunakan SSMS untuk terhubung ke instans RDS.
Buka SSMS.
Di kotak dialog Connect To Server, konfigurasikan parameter berikut.
Parameter
Deskripsi
Server Type
Pilih Database Engine.
Server Name
Masukkan Internal Endpoint atau Public Endpoint dari instans RDS for SQL Server. Untuk informasi lebih lanjut tentang cara mendapatkan endpoint, lihat Lihat dan ubah endpoint dan nomor port.
Authentication
Pilih SQL Server Authentication.
Login
Masukkan nama pengguna akun admin sistem.
Password
Masukkan kata sandi akun admin sistem.
Klik Connect.
Di Object Explorer, klik kanan Databases.
Pilih Import Data-tier Application.
Klik Next.
Konfigurasikan Import Settings.
Pilih Import From Local Disk.
Klik Browse dan pilih file .bacpac yang diekspor dari Azure SQL Database.
Klik Next.
Konfigurasikan Database Settings.
Di bidang New Database Name, masukkan nama database di instans RDS for SQL Server. Database ini sesuai dengan database sumber.
PentingKami merekomendasikan agar Anda menggunakan nama yang sama dengan nama database di Azure SQL Database. Jika Anda tidak menggunakan nama yang sama, beberapa fitur mungkin tidak berfungsi seperti yang diharapkan setelah beban kerja Anda dialihkan ke instans RDS for SQL Server.
Jika nama database yang Anda masukkan ada di instans RDS for SQL Server, impor data mungkin gagal atau data mungkin tidak konsisten.
Di bagian SQL Server Settings, ubah nilai Data File Path dan Log File Path menjadi E:\SQLDATA\DATA.
Klik Next.
Klik Finish.
Setelah data diimpor, klik Close.
3. Verifikasi konsistensi data
Setelah data diimpor, eksekusi pernyataan yang diperlukan pada database sumber dan tujuan untuk memverifikasi konsistensi data. Jika hasil pengembalian untuk database sumber dan tujuan sama, data konsisten.
Kueri jumlah baris data di database. Jumlah total baris data di semua tabel bisnis dikembalikan.
PentingPastikan bahwa data tabel sumber dan snapshot data tidak berubah selama migrasi data. Jika tidak, jumlah baris data di database sumber tidak konsisten dengan yang ada di database tujuan.
USE <nama database>; SELECT SUM(b.rows) AS 'JumlahBaris' FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = 'u') AND (b.indid IN (0, 1))Kueri ukuran data. Persentase penyimpanan yang ditempati oleh file data terhadap total kapasitas penyimpanan dikembalikan.
USE <nama database>; SELECT a.name [Nama file] ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [Ukuran file yang ditentukan (MB)] ,CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [Penyimpanan yang ditempati oleh file (MB)] ,CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0 AS DECIMAL(12,1)) AS [Persentase penyimpanan yang ditempati oleh file terhadap total kapasitas penyimpanan] ,CASE WHEN A.growth =0 THEN 'Ukuran file tetap' ELSE 'Peningkatan penyimpanan yang dialokasikan ke file' end [Mode peningkatan] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN 'Peningkatan tetap' WHEN A.growth > 0 AND is_percent_growth = 1 THEN 'Peningkatan diwakili oleh persentase bilangan bulat' ELSE 'Ukuran file tetap' END AS [Mode peningkatan] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB' WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%' ELSE 'Ukuran file tetap' end AS [Peningkatan (% atau MB)] ,a.physical_name AS [Direktori file] ,a.type_desc AS [Tipe file] FROM sys.database_files a INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id] ORDER BY a.[type]
Setelah verifikasi konsistensi data selesai, Anda dapat mengalihkan beban kerja Anda ke instans RDS for SQL Server dan menguji apakah fitur berjalan seperti yang diharapkan.