Panduan ini menunjukkan cara memigrasikan database dari instance SQL Server Enterprise Edition yang dikelola sendiri ke Cloud SQL untuk SQL Server Enterprise Edition melalui koneksi jaringan pribadi menggunakan Distributed Availability Group (DAG) di Database Migration Service.
Dengan migrasi DAG, Database Migration Service menstreaming pemuatan penuh awal
(dikenal sebagai fase FULL_DUMP) dan replikasi log transaksi berkelanjutan
(dikenal sebagai fase Change Data Capture - CDC) langsung melalui
jaringan antara Grup Ketersediaan sumber dan Grup Ketersediaan
Cloud SQL untuk SQL Server tujuan Anda. Untuk mengetahui informasi selengkapnya tentang
arsitektur, prasyarat, dan batasan migrasi DAG, lihat
Tentang migrasi Distributed Availability Group (DAG).
Untuk melakukan migrasi menggunakan file cadangan yang disimpan di Cloud Storage, lihat
Memigrasikan database SQL Server ke Cloud SQL untuk SQL Server.
Untuk melakukan migrasi Distributed Availability Group, selesaikan tugas-tugas umum berikut:
- Membuat dan menyiapkan instance Cloud SQL untuk SQL Server tujuan Anda.
- Siapkan instance SQL Server dan Grup Ketersediaan sumber Anda.
- Buat konektivitas jaringan pribadi dua arah dan konfigurasikan Linked Server.
- Membuat profil koneksi dan menjalankan tugas migrasi.
- Pantau dan verifikasi migrasi Anda.
- Mempromosikan, melakukan failback, atau menyelesaikan migrasi.
Biaya
Untuk migrasi homogen ke Cloud SQL, Database Migration Service ditawarkan tanpa biaya tambahan. Namun, harga standar Cloud SQL dan jaringan tetap berlaku. Untuk memperkirakan biaya penggunaan, gunakan kalkulator harga.
Sebelum memulai
- Pastikan database sumber dan tujuan Anda memenuhi semua prasyarat
dan batasan untuk migrasi Distributed Availability Group (termasuk
menjalankan Enterprise Edition, menyimpan file data di direktori data default,
dan tidak menggunakan
sasebagai pemilik database). Lihat Tentang migrasi Distributed Availability Group (DAG). - Pilih region Google Cloud untuk migrasi Anda. Database Migration Service adalah produk yang sepenuhnya regional; semua entity yang terkait dengan migrasi Anda (profil koneksi sumber dan tujuan, tugas migrasi, dan instance Cloud SQL untuk SQL Server tujuan) harus berada di region yang sama.
- Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat project Google Cloud .
- Aktifkan API Database Migration Service, Compute Engine, dan Cloud SQL Admin.
Peran yang diperlukan
Pastikan peran IAM berikut diberikan di projectGoogle Cloud Anda:
- Akun pengguna yang melakukan migrasi:
- Database Migration Admin (
roles/datamigration.admin) - Cloud SQL Editor (
roles/cloudsql.editor)
- Database Migration Admin (
- Akun layanan Database Migration Service (
service-<var>PROJECT_NUMBER</var>@gcp-sa-datamigration.iam.gserviceaccount.com):- Database Migration Service Agent (
roles/datamigration.serviceAgent) - Cloud SQL Editor (
roles/cloudsql.editor) - Cloud SQL Studio User (
roles/cloudsql.studioUser)
- Database Migration Service Agent (
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Membuat dan menyiapkan instance Cloud SQL untuk SQL Server tujuan Anda
Pada langkah ini, Anda akan membuat instance Cloud SQL untuk SQL Server Enterprise Edition tujuan dan mengaktifkan flag database yang diperlukan untuk Server Tertaut.
- Buat instance Cloud SQL untuk SQL Server tujuan Anda. Untuk mengetahui petunjuk pembuatan yang mendetail, lihat Membuat instance Cloud SQL untuk SQL Server.
Pastikan instance Anda memenuhi persyaratan berikut untuk migrasi Distributed Availability Group:
- Pilih Enterprise Edition (versi 2017, 2019, 2022, atau 2025).
- Konfigurasikan jaringan pribadi agar sesuai dengan cara Anda berencana menghubungkan instance SQL Server sumber dan instance Cloud SQL untuk SQL Server tujuan. Aktifkan
Akses Layanan Pribadi
jika Anda berencana menghubungkan instance melalui peering Virtual Private Cloud,
atau gunakan
Private Service Connect jika Anda berencana menghubungkan
instance menggunakan endpoint Private Service Connect masuk dan lampiran jaringan
Private Service Connect keluar.
Jangan aktifkan Akses Layanan Pribadi dan Private Service Connect pada instance Cloud SQL untuk SQL Server tujuan yang sama. Cloud SQL untuk SQL Server tidak mendukung Server Tertaut jika keduanya diaktifkan. Untuk mengetahui detail penyiapan jaringan selengkapnya, lihat Membuat konektivitas jaringan pribadi dua arah.
- Biarkan Pemulihan point-in-time (PITR) dinonaktifkan dan jangan tambahkan replika baca hingga Anda menyelesaikan dan menghapus tugas migrasi DAG.
- Jika ada database sumber yang dimiliki oleh login Windows Active Directory, ubah pemilik database sumber menjadi login SQL sebelum bermigrasi, atau gabungkan instance Cloud SQL untuk SQL Server tujuan ke Active Directory agar Database Migration Service dapat otomatis membuat login Windows yang sesuai di instance tujuan saat tugas migrasi dimulai. Untuk mengetahui petunjuknya, lihat Mengonfigurasi Microsoft AD Terkelola untuk Cloud SQL untuk SQL Server.
- Aktifkan flag database
cloudsql enable linked servers(tetapkan keon) di instance Cloud SQL untuk SQL Server tujuan Anda. Untuk mengetahui petunjuk tentang cara menetapkan flag, lihat Mengelola server tertaut dan Mengonfigurasi flag database.Flag ini diperlukan pada tahap selanjutnya dalam panduan ini saat Anda membuat dan memverifikasi Server Tertaut di instance Cloud SQL untuk SQL Server tujuan.
Menyiapkan instance SQL Server sumber
Pada langkah ini, Anda akan mengaktifkan Grup Ketersediaan Always On di instance SQL Server sumber, membuat endpoint dan sertifikat Database Mirroring, membuat login SQL khusus untuk Database Migration Service, dan menyiapkan Grup Ketersediaan sumber.
Mengaktifkan Grup Ketersediaan Always On
Pastikan fitur Always On Availability Groups diaktifkan di instance SQL Server sumber Anda:
- Untuk Windows, lihat Mengaktifkan dan menonaktifkan grup ketersediaan Always On dalam dokumentasi Microsoft.
- Untuk Linux, lihat Mengonfigurasi grup ketersediaan SQL Server Always On untuk ketersediaan tinggi di Linux dalam dokumentasi Microsoft.
Membuat endpoint dan sertifikat Database Mirroring
Di SQL Server, Grup Ketersediaan Terdistribusi mengalirkan data dan log transaksi antar-instance melalui endpoint TCP DATABASE_MIRRORING (DBM) (port default 5022). Karena instance SQL Server yang Anda kelola sendiri dan instance Cloud SQL untuk SQL Server tujuan Anda adalah instance mandiri, keduanya memerlukan autentikasi bersama berbasis sertifikat dan enkripsi AES untuk membangun kepercayaan melalui endpoint DBM.
Anda hanya perlu membuat sertifikat dan mengikatnya ke endpoint DATABASE_MIRRORING
di instance SQL Server sumber. Anda tidak perlu mengekspor file sertifikat secara manual atau membuat sertifikat di instance Cloud SQL untuk SQL Server tujuan:
- Saat Anda memulai tugas migrasi, Database Migration Service akan otomatis mengonfigurasi
endpoint dan sertifikat
DATABASE_MIRRORINGdi instance Cloud SQL untuk SQL Server tujuan dan menggunakan Server Tertaut Anda untuk bertukar kunci publik antara kedua instance. - Saat Anda menghapus tugas migrasi setelah menyelesaikan peralihan, Database Migration Service akan otomatis menghapus sertifikat yang diimpor dari kedua instance.
Jika instance SQL Server sumber Anda belum memiliki endpoint DATABASE_MIRRORING yang diautentikasi dengan sertifikat, buat endpoint:
- Hubungkan ke instance sumber Anda dengan klien SQL, misalnya utilitas
sqlcmd. - Jalankan perintah T-SQL berikut untuk membuat kunci master database, sertifikat, dan endpoint
DATABASE_MIRRORINGyang memproses portDBMyang Anda pilih (default5022):USE [master]; GO IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101) BEGIN CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MASTER_KEY_PASSWORD'; END GO CREATE CERTIFICATE [SOURCE_CERT_NAME] WITH SUBJECT = 'AlwaysOn AG Certificate', EXPIRY_DATE = 'CERT_EXPIRY_DATE'; GO CREATE ENDPOINT [HADR_ENDPOINT_NAME] STATE = STARTED AS TCP (LISTENER_PORT = SOURCE_DBM_PORT_NUMBER) FOR DATABASE_MIRRORING ( ROLE = ALL, AUTHENTICATION = CERTIFICATE [SOURCE_CERT_NAME], ENCRYPTION = REQUIRED ALGORITHM AES ); GO
Ganti kode berikut:
MASTER_KEY_PASSWORDdengan sandi untuk mengenkripsi kunci master database.SOURCE_CERT_NAMEdengan nama untuk sertifikat Database Mirroring sumber Anda (misalnya,dbmCertificate).CERT_EXPIRY_DATEdengan tanggal habis masa berlaku untuk sertifikat dalam formatYYYYMMDD.HADR_ENDPOINT_NAMEdengan nama endpoint Database Mirroring Anda.SOURCE_DBM_PORT_NUMBERdengan nomor port TCP untuk traffic Database Mirroring (default5022).
Membuat login dan izin Database Migration Service khusus
Database Migration Service terhubung ke instance SQL Server sumber Anda melalui Server Tertaut menggunakan login SQL khusus yang Anda berikan di profil koneksi sumber. Anda dapat mengonfigurasi login ini dengan memberikan
peran server sysadmin atau dengan mengonfigurasi izin hak istimewa terendah dengan
database helper gcp_dms_db:
Memberikan peran sysadmin
Jika kebijakan keamanan Anda mengizinkan pemberian peran server sysadmin
ke login migrasi, jalankan perintah T-SQL berikut:
USE [master]; GO CREATE LOGIN [SOURCE_USERNAME] WITH PASSWORD = 'SOURCE_PASSWORD'; CREATE USER [SOURCE_USER] FOR LOGIN [SOURCE_USERNAME]; ALTER SERVER ROLE [sysadmin] ADD MEMBER [SOURCE_USERNAME]; GRANT CONNECT ON ENDPOINT::[HADR_ENDPOINT_NAME] TO [SOURCE_USERNAME]; GO
Ganti kode berikut:
SOURCE_USERNAMEdengan nama login SQL yang digunakan Database Migration Service untuk terhubung ke instance sumber Anda (misalnya,cloud_dms_login).SOURCE_PASSWORDdengan sandi untuk loginSOURCE_USERNAME.SOURCE_USERdengan nama pengguna database yang dipetakan keSOURCE_USERNAME(misalnya,cloud_dms_user).HADR_ENDPOINT_NAMEdengan nama endpoint Database Mirroring Anda (misalnya,Hadr_endpoint).
Hak istimewa terendah (gcp_dms_db)
Jika kebijakan keamanan Anda melarang pemberian sysadmin ke
login migrasi, buat database helper gcp_dms_db khusus
(dimiliki oleh sa dengan TRUSTWORTHY ON), buat tiga
prosedur tersimpan wrapper Database Migration Service, dan berikan izin terperinci
ke login migrasi Anda:
USE [master]; GO CREATE DATABASE [gcp_dms_db]; GO ALTER AUTHORIZATION ON DATABASE::[gcp_dms_db] TO [sa]; ALTER DATABASE [gcp_dms_db] SET TRUSTWORTHY ON; GO USE [gcp_dms_db]; GO CREATE OR ALTER PROCEDURE dbo.gcp_dms_set_dag_commit_mode @dag_name NVARCHAR(128), @source_ag NVARCHAR(128), @dest_ag NVARCHAR(128), @commit_mode NVARCHAR(30) WITH EXECUTE AS 'dbo' AS BEGIN SET NOCOUNT ON; IF @commit_mode NOT IN ('SYNCHRONOUS_COMMIT', 'ASYNCHRONOUS_COMMIT') BEGIN RAISERROR('Invalid commit mode. Must be SYNCHRONOUS_COMMIT or ASYNCHRONOUS_COMMIT.', 16, 1); RETURN; END DECLARE @sql NVARCHAR(MAX); SET @sql = N'USE master; ALTER AVAILABILITY GROUP ' + QUOTENAME(@dag_name) + N' MODIFY AVAILABILITY GROUP ON ' + QUOTENAME(@source_ag, '''') + N' WITH (AVAILABILITY_MODE = ' + @commit_mode + N'), ' + QUOTENAME(@dest_ag, '''') + N' WITH (AVAILABILITY_MODE = ' + @commit_mode + N');'; EXECUTE sp_executesql @sql; END; GO CREATE OR ALTER PROCEDURE dbo.gcp_dms_set_dag_secondary @dag_name NVARCHAR(128) WITH EXECUTE AS 'dbo' AS BEGIN SET NOCOUNT ON; DECLARE @sql NVARCHAR(MAX); SET @sql = N'USE master; ALTER AVAILABILITY GROUP ' + QUOTENAME(@dag_name) + N' SET (ROLE = SECONDARY);'; EXECUTE sp_executesql @sql; END; GO CREATE OR ALTER PROCEDURE dbo.gcp_dms_failover_dag @dag_name NVARCHAR(128) WITH EXECUTE AS 'dbo' AS BEGIN SET NOCOUNT ON; DECLARE @sql NVARCHAR(MAX); SET @sql = N'USE master; ALTER AVAILABILITY GROUP ' + QUOTENAME(@dag_name) + N' FORCE_FAILOVER_ALLOW_DATA_LOSS;'; EXECUTE sp_executesql @sql; END; GO USE [master]; GO CREATE LOGIN [SOURCE_USERNAME] WITH PASSWORD = 'SOURCE_PASSWORD'; CREATE USER [SOURCE_USER] FOR LOGIN [SOURCE_USERNAME]; GRANT VIEW SERVER STATE TO [SOURCE_USERNAME]; -- Note: Run GRANT VIEW SERVER PERFORMANCE STATE on SQL Server 2022 and later: GRANT VIEW SERVER PERFORMANCE STATE TO [SOURCE_USERNAME]; GRANT VIEW ANY DEFINITION TO [SOURCE_USERNAME]; GRANT ALTER ANY AVAILABILITY GROUP TO [SOURCE_USERNAME]; GRANT CONNECT ON ENDPOINT::[HADR_ENDPOINT_NAME] TO [SOURCE_USERNAME]; GRANT CREATE CERTIFICATE TO [SOURCE_USER]; GO USE [gcp_dms_db]; GO CREATE USER [SOURCE_USER] FOR LOGIN [SOURCE_USERNAME]; GRANT EXECUTE ON dbo.gcp_dms_set_dag_commit_mode TO [SOURCE_USER]; GRANT EXECUTE ON dbo.gcp_dms_set_dag_secondary TO [SOURCE_USER]; GRANT EXECUTE ON dbo.gcp_dms_failover_dag TO [SOURCE_USER]; GO -- Repeat the following block for EACH user database in your source Availability Group: USE [DATABASE_NAME]; GO CREATE USER [SOURCE_USER] FOR LOGIN [SOURCE_USERNAME]; ALTER ROLE [db_backupoperator] ADD MEMBER [SOURCE_USER]; GO
Ganti kode berikut:
SOURCE_USERNAMEdengan nama login SQL yang digunakan Database Migration Service untuk terhubung ke instance sumber Anda (misalnya,cloud_dms_login).SOURCE_PASSWORDdengan sandi untuk loginSOURCE_USERNAME.SOURCE_USERdengan nama pengguna database yang dipetakan keSOURCE_USERNAME(misalnya,cloud_dms_user).HADR_ENDPOINT_NAMEdengan nama endpoint Database Mirroring Anda (misalnya,Hadr_endpoint).DATABASE_NAMEdengan nama setiap database sumber di Grup Ketersediaan Anda. Pemberiandb_backupoperatorpada setiap database yang dimigrasikan diperlukan oleh verifikasi preflight Database Migration Service dan memungkinkan pengosongan log transaksi denganCHECKPOINTselama promosi.
Menyiapkan database sumber dan Grup Ketersediaan
Anda dapat memigrasikan database dari Grup Ketersediaan Always On yang ada atau
membuat Grup Ketersediaan mandiri baru (CLUSTER_TYPE = NONE). Sebelum
melanjutkan, verifikasi persyaratan berikut:
- Setiap database dalam Grup Ketersediaan menggunakan model pemulihan
FULL, tidak dimiliki olehsa, dan menyimpan file datanya (.mdfdan.ndf) di direktori data default. - Jika Anda menggunakan kembali Grup Ketersediaan yang ada, pastikan endpoint Pencerminan Database Anda dikonfigurasi di port
5022(atau port DBM yang Anda pilih), bahwaSECONDARY_ROLE (ALLOW_CONNECTIONS = ALL)diaktifkan pada replika sehingga database sekunder tetap dapat dibaca dengan string koneksi standar setelah promosi membalik peran DAG, dan login migrasi Anda memilikiCONNECT ON ENDPOINT. Jika Grup Ketersediaan sumber Anda memiliki beberapa replika dan pemroses Grup Ketersediaan yang dikonfigurasi, gunakan alamat IP pemroses sebagai<var>SOURCE_HOST_IP_ADDRESS</var>saat mengonfigurasi Server Tertaut dan profil koneksi sumber agar migrasi dapat dilanjutkan jika terjadi failover di Grup Ketersediaan sumber.
Untuk menyiapkan database dan membuat Grup Ketersediaan mandiri baru
(CLUSTER_TYPE = NONE), jalankan perintah T-SQL berikut:
USE [master]; GO ALTER DATABASE [DATABASE_NAME] SET RECOVERY FULL; GO -- If the database is owned by 'sa', change the owner to another login: ALTER AUTHORIZATION ON DATABASE::[DATABASE_NAME] TO [DB_OWNER_LOGIN]; GO -- Initialize the local SQL Server transaction log chain for the Availability Group: BACKUP DATABASE [DATABASE_NAME] TO DISK = 'NUL'; GO CREATE AVAILABILITY GROUP [SOURCE_AVAILABILITY_GROUP_NAME] WITH (CLUSTER_TYPE = NONE) FOR REPLICA ON N'SOURCE_SERVER_NAME' WITH ( ENDPOINT_URL = N'TCP://localhost:SOURCE_DBM_PORT_NUMBER', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = MANUAL, PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE), SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL) ); GO ALTER AVAILABILITY GROUP [SOURCE_AVAILABILITY_GROUP_NAME] ADD DATABASE [DATABASE_NAME]; GO
Ganti kode berikut:
DATABASE_NAMEdengan nama database yang akan disertakan dalam Grup Ketersediaan Anda.DB_OWNER_LOGINdengan login non-sauntuk memiliki database.SOURCE_AVAILABILITY_GROUP_NAMEdengan nama Grup Ketersediaan sumber Anda (misalnya,source_ag).SOURCE_SERVER_NAMEdengan nama server instance SQL Server sumber Anda (yang cocok dengan nilai yang ditampilkan olehSELECT @@SERVERNAME).SOURCE_DBM_PORT_NUMBERdengan nomor port TCP endpoint Database Mirroring Anda (default5022).
Membuat konektivitas jaringan pribadi dua arah
Untuk migrasi DAG, Database Migration Service berkomunikasi dengan instance Cloud SQL untuk SQL Server tujuan Anda melalui API Google Cloud internal, menjalankan kueri orkestrasi pada instance SQL Server sumber Anda melalui Server Tertaut di instance Cloud SQL untuk SQL Server tujuan, dan mengalirkan data langsung antara kedua instance melalui jaringan pribadi. Migrasi ini mengharuskan Anda membuat konektivitas IP pribadi dua arah secara langsung antara host SQL Server sumber dan instance Cloud SQL untuk SQL Server tujuan melalui jaringan Virtual Private Cloud Anda. Konektivitas IP publik antara instance sumber dan tujuan tidak didukung.
Port dan alamat IP yang diperlukan
Konfigurasi jaringan Anda harus mengizinkan traffic antara instance SQL Server sumber dan instance Cloud SQL untuk SQL Server tujuan di dua port TCP berikut:
| Port | Arah | Tujuan |
|---|---|---|
Port database SQL Server (default 1433) |
Dari instance Cloud SQL untuk SQL Server tujuan ke instance SQL Server sumber | Digunakan oleh Server Tertaut di instance Cloud SQL untuk SQL Server tujuan Anda untuk menjalankan validasi preflight, pertukaran sertifikat, dan kueri orkestrasi DAG di instance sumber Anda. |
Port Database Mirroring (DBM) (default 5022) |
Dua arah antara instance SQL Server sumber dan instance Cloud SQL untuk SQL Server tujuan | Digunakan oleh Grup Ketersediaan sumber dan tujuan untuk melakukan streaming pemuatan penuh awal selama FULL_DUMP, perubahan database yang sedang berlangsung selama CDC, dan replikasi terbalik selama FAILBACK. |
Saat mengonfigurasi Server Tertaut dan profil koneksi nanti dalam panduan ini, Anda akan memberikan dua alamat IP pribadi:
SOURCE_HOST_IP_ADDRESS(digunakan dalam parameter@datasrcServer Tertaut dan flag--hostprofil koneksi sumber) adalah alamat IP pribadi host SQL Server sumber Anda (atau alamat IP pemroses Grup Ketersediaan, yang lebih disukai jika dikonfigurasi untuk Grup Ketersediaan sumber multi-replika sehingga migrasi dapat dilanjutkan jika terjadi failover di Grup Ketersediaan sumber) yang dapat dijangkau dari instance Cloud SQL untuk SQL Server tujuan Anda.DESTINATION_HOST_IP_ADDRESS(digunakan dalam flag profil koneksi tujuan--host) adalah alamat IP pribadi instance Cloud SQL untuk SQL Server tujuan Anda (atau alamat IP endpoint Private Service Connect-nya) yang dapat dijangkau dari host SQL Server sumber Anda.
Mengonfigurasi metode jaringan pribadi Anda
Selesaikan konfigurasi pemilihan rute jaringan untuk metode jaringan (Akses Layanan Pribadi atau Private Service Connect) yang Anda aktifkan di instance Cloud SQL untuk SQL Server tujuan:
Akses Layanan Pribadi
Akses Layanan Pribadi melakukan peering jaringan Virtual Private Cloud Anda dengan jaringan Virtual Private Cloud produsen layanan yang dikelola Google yang menghosting instance Cloud SQL untuk SQL Server tujuan Anda:
- Pastikan jaringan Virtual Private Cloud Anda memiliki rentang alamat IPv4 internal yang dialokasikan dan koneksi pribadi (peering Virtual Private Cloud ke
servicenetworking-googleapis-com) yang diaktifkan untuk instance Cloud SQL untuk SQL Server tujuan Anda. Untuk mengetahui petunjuknya, lihat Mengonfigurasi IP pribadi untuk Cloud SQL untuk SQL Server. - Konfigurasikan pemilihan rute ke host SQL Server sumber berdasarkan
tempat host tersebut dihosting:
- Jika instance sumber Anda berjalan di virtual machine Compute Engine dalam jaringan Virtual Private Cloud yang sama, perutean tambahan tidak diperlukan. Mesin virtual dan instance Cloud SQL untuk SQL Server dapat menjangkau alamat IP pribadi satu sama lain secara langsung melalui koneksi peering Virtual Private Cloud.
- Jika instance sumber Anda berjalan secara lokal, di penyedia cloud lain,
atau di jaringan Virtual Private Cloud lain, selesaikan langkah-langkah berikut agar
rute dipertukarkan di seluruh batas peering transitif:
- Hubungkan jaringan eksternal ke jaringan Virtual Private Cloud menggunakan Cloud VPN atau Cloud Interconnect. Untuk mengetahui petunjuknya, lihat Mengakses instance Cloud SQL dari sumber eksternal.
- Di Cloud Router, beritahukan rentang alamat IP yang dialokasikan Cloud SQL untuk SQL Server ke jaringan sumber Anda. Untuk mengetahui petunjuknya, lihat Memberitahukan rentang IP kustom.
- Perbarui koneksi peering
servicenetworking-googleapis-comdi jaringan Virtual Private Cloud Anda untuk mengaktifkan Ekspor rute kustom agar instance Cloud SQL untuk SQL Server mempelajari rute ke jaringan sumber Anda. Untuk mengetahui petunjuknya, lihat Memperbarui koneksi peering.
- Catat alamat IP pribadi untuk migrasi Anda:
- Gunakan alamat IP internal host SQL Server sumber Anda sebagai
SOURCE_HOST_IP_ADDRESS. - Gunakan Alamat IP pribadi yang ditetapkan ke instance Cloud SQL untuk SQL Server tujuan Anda (ditampilkan di halaman Ringkasan instance) sebagai
DESTINATION_HOST_IP_ADDRESS.
- Gunakan alamat IP internal host SQL Server sumber Anda sebagai
Private Service Connect
Jika Anda menggunakan
Private Service Connect,
bukan Akses Layanan Pribadi, Anda harus mengonfigurasi endpoint Private Service Connect
masuk (agar instance sumber Anda dapat terhubung
ke Cloud SQL untuk SQL Server di port 5022) dan antarmuka Private Service Connect
keluar (agar Cloud SQL untuk SQL Server dapat
memulai koneksi Linked Server dan DAG ke instance sumber Anda di port
1433 dan 5022):
- Pastikan instance Cloud SQL untuk SQL Server tujuan Anda telah mengaktifkan Private Service Connect (tanpa IP Pribadi) dan menentukan project konsumen yang diizinkan. Untuk mengetahui petunjuknya, lihat Mengonfigurasi Private Service Connect.
- Untuk mengizinkan koneksi masuk dari host SQL Server sumber ke instance Cloud SQL untuk SQL Server tujuan, cadangkan alamat IP internal di subnet Virtual Private Cloud Anda dan buat endpoint Private Service Connect (aturan penerusan) yang menargetkan lampiran layanan instance Cloud SQL untuk SQL Server Anda. Untuk mengetahui petunjuknya, lihat Membuat endpoint Private Service Connect.
- Untuk mengizinkan koneksi keluar dari instance Cloud SQL untuk SQL Server tujuan ke host SQL Server sumber (diperlukan untuk koneksi Linked Server dan DAG keluar), buat lampiran jaringan Virtual Private Cloud di subnet yang dapat merutekan ke host sumber dan konfigurasikan konektivitas keluar Private Service Connect di instance Cloud SQL untuk SQL Server tujuan. Untuk mengetahui petunjuknya, lihat Membuat dan mengelola lampiran jaringan dan Mengonfigurasi konektivitas keluar Private Service Connect.
- Catat alamat IP pribadi untuk migrasi Anda:
- Gunakan alamat IP pribadi host SQL Server sumber Anda sebagai
SOURCE_HOST_IP_ADDRESS. - Gunakan alamat IP internal endpoint Private Service Connect (aturan penerusan) di jaringan Virtual Private Cloud Anda sebagai
DESTINATION_HOST_IP_ADDRESS.
- Gunakan alamat IP pribadi host SQL Server sumber Anda sebagai
Mengonfigurasi Virtual Private Cloud dan aturan firewall host sumber
- Di jaringan Virtual Private Cloud Anda, buat aturan firewall ingress dan egress yang
mengizinkan traffic TCP antara alamat IP SQL Server sumber Anda
(
SOURCE_HOST_IP_ADDRESS) dan rentang IP Cloud SQL untuk SQL Server tujuan Anda (atau endpoint Private Service Connect dan subnet lampiran jaringan) di port database (default1433) dan port Database Mirroring (default5022). Untuk mengetahui informasi selengkapnya tentang cara membuat aturan firewall, lihat Membuat aturan firewall. - Di mesin SQL Server sumber, verifikasi setelan firewall jaringan dan host berikut:
- TCP/IP diaktifkan di SQL Server Configuration Manager (atau
mssql-confdi Linux) dan instance memproses port TCP statis (default1433). - Firewall sistem operasi (seperti Windows Defender Firewall atau
iptablesataufirewalldLinux) mengizinkan koneksi TCP masuk di port database (default1433) dan port Database Mirroring (default5022), serta koneksi TCP keluar keDESTINATION_HOST_IP_ADDRESSdi port5022.
- TCP/IP diaktifkan di SQL Server Configuration Manager (atau
Memverifikasi keterjangkauan dengan uji konektivitas Cloud SQL
Sebelum mengonfigurasi Server Tertaut, sebaiknya jalankan tiga uji konektivitas dari tab Connections > Connectivity tests pada instance Cloud SQL untuk SQL Server di konsol Google Cloud . Untuk mengetahui petunjuk tentang cara menjalankan uji konektivitas, lihat Mengelola uji konektivitas:
- Untuk menguji konektivitas Linked Server keluar di port
1433, tetapkan Source ke Current Cloud SQL instance, Destination keSOURCE_HOST_IP_ADDRESS, dan Destination port ke1433(atau port database kustom Anda). - Untuk menguji konektivitas Pencerminan Database keluar di port
5022, tetapkan Source ke Current Cloud SQL instance, Destination keSOURCE_HOST_IP_ADDRESS, dan Destination port ke5022(atau portDBMkustom Anda). - Untuk menguji konektivitas Database Mirroring masuk pada port
5022, tetapkan Source keSOURCE_HOST_IP_ADDRESS, Destination ke Current Cloud SQL instance (atauDESTINATION_HOST_IP_ADDRESSjika Anda menggunakan Private Service Connect), dan Destination port ke5022(atau portDBMkustom Anda).
Membuat dan memverifikasi Server Tertaut di instance Cloud SQL untuk SQL Server tujuan Anda
Setelah konektivitas jaringan Anda siap, hubungkan ke instance Cloud SQL untuk SQL Server tujuan dan buat Server Tertaut yang mengarah ke instance SQL Server sumber Anda:
- Hubungkan ke instance Cloud SQL Anda dengan klien SQL. Anda dapat menggunakan
metode berikut:
- Klien
sqlcmd. Anda dapat menggunakan metode ini untuk terhubung ke IP pribadi instance, tetapi Anda mungkin perlu membuat virtual machine Compute Engine. - Perintah
gcloud sql connect. Perintah ini hanya berfungsi untuk instance Cloud SQL yang telah mengaktifkan alamat IP publik.
- Klien
- Login sebagai pengguna
sqlserverdan jalankan perintah T-SQL berikut untuk versi Cloud SQL untuk SQL Server tujuan Anda guna membuat Server Tertaut yang mengarah ke instance SQL Server sumber, memetakan@locallogin = N'sqlserver'ke login migrasi sumber, mengaktifkanrpc out, dan menguji koneksi denganOPENQUERY(untuk mengetahui informasi selengkapnya tentang opsi Server Tertaut di Cloud SQL, lihat Mengelola server tertaut):Cloud SQL untuk SQL Server 2017, 2019, dan 2022
USE [master]; GO EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct = N'', @provider = N'SQLNCLI', @datasrc = N'SOURCE_HOST_IP_ADDRESS,SOURCE_PORT_NUMBER'; GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINKED_SERVER_NAME', @useself = N'False', @locallogin = N'sqlserver', @rmtuser = N'SOURCE_USERNAME', @rmtpassword = N'SOURCE_PASSWORD'; GO EXEC master.dbo.sp_serveroption @server = N'LINKED_SERVER_NAME', @optname = N'rpc out', @optvalue = N'TRUE'; GO SELECT * FROM OPENQUERY([LINKED_SERVER_NAME], 'SELECT @@VERSION AS SourceServerVersion'); GO
Cloud SQL untuk SQL Server 2025
USE [master]; GO EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct = N'', @provider = N'MSOLEDBSQL19', @datasrc = N'SOURCE_HOST_IP_ADDRESS,SOURCE_PORT_NUMBER', @provstr = N'Encrypt=Optional;TrustServerCertificate=Yes;Authentication=SqlPassword;UID=Placeholder;'; GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINKED_SERVER_NAME', @useself = N'False', @locallogin = N'sqlserver', @rmtuser = N'SOURCE_USERNAME', @rmtpassword = N'SOURCE_PASSWORD'; GO EXEC master.dbo.sp_serveroption @server = N'LINKED_SERVER_NAME', @optname = N'rpc out', @optvalue = N'TRUE'; GO SELECT * FROM OPENQUERY([LINKED_SERVER_NAME], 'SELECT @@VERSION AS SourceServerVersion'); GO
Ganti kode berikut:
LINKED_SERVER_NAMEdengan nama untuk Server Tertaut Anda di Cloud SQL untuk SQL Server (misalnya,source_sql_linked_server).SOURCE_HOST_IP_ADDRESSdengan alamat IP pribadi instance SQL Server sumber Anda (atau alamat IP pemroses Grup Ketersediaan jika dikonfigurasi untuk Grup Ketersediaan sumber multi-replika).SOURCE_PORT_NUMBERdengan nomor port tempat mesin database SQL Server sumber Anda menerima koneksi (default1433).SOURCE_USERNAMEdengan nama login SQL khusus yang Anda buat di instance sumber di Membuat login dan izin Database Migration Service khusus.SOURCE_PASSWORDdengan sandi untuk loginSOURCE_USERNAME.
Membuat profil koneksi dan menjalankan tugas migrasi
Gunakan Google Cloud CLI untuk membuat profil koneksi sumber dan tujuan, membuat tugas migrasi DAG berkelanjutan, memverifikasi konfigurasi migrasi, dan memulai tugas migrasi:
-
Buat profil koneksi sumber.
Jalankan perintahgcloud database-migration connection-profiles create sqlserver(klik untuk meluaskan):gcloud database-migration connection-profiles create sqlserverContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.gcloud database-migration connection-profiles create sqlserver SOURCE_CONNECTION_PROFILE_ID \ --no-async \ --display-name=SOURCE_CONNECTION_PROFILE_NAME \ --region=REGION \ --role=SOURCE \ --host=SOURCE_HOST_IP_ADDRESS \ --port=SOURCE_PORT_NUMBER \ --dbm-port=SOURCE_DBM_PORT_NUMBER \ --username=SOURCE_USERNAME \ --password=SOURCE_PASSWORD
Ganti kode berikut:
SOURCE_CONNECTION_PROFILE_IDdengan ID yang dapat dibaca mesin untuk profil koneksi sumber Anda (misalnya,sqlserver-dag-source-profile).SOURCE_CONNECTION_PROFILE_NAMEdengan nama yang dapat dibaca manusia untuk profil koneksi sumber Anda. Nilai ini ditampilkan di Database Migration Service di konsol Google Cloud .REGIONdengan ID region tempat Anda ingin menyimpan profil koneksi (misalnya,us-central1).SOURCE_HOST_IP_ADDRESSdengan alamat IP pribadi instance SQL Server sumber Anda (atau alamat IP pemroses Grup Ketersediaan jika dikonfigurasi untuk Grup Ketersediaan sumber multi-replika).SOURCE_PORT_NUMBERdengan nomor port tempat mesin database SQL Server sumber Anda menerima koneksi (default1433).SOURCE_DBM_PORT_NUMBERdengan nomor port TCP endpoint Database Mirroring sumber Anda (default5022).SOURCE_USERNAMEdengan nama login SQL khusus yang Anda buat di instance sumber di Membuat login dan izin Database Migration Service khusus.SOURCE_PASSWORDdengan sandi untuk loginSOURCE_USERNAME.
-
Buat profil koneksi tujuan.
Jalankan perintahgcloud database-migration connection-profiles create sqlserver(klik untuk meluaskan):gcloud database-migration connection-profiles create sqlserverContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.gcloud database-migration connection-profiles create sqlserver DESTINATION_CONNECTION_PROFILE_ID \ --no-async \ --display-name=DESTINATION_CONNECTION_PROFILE_NAME \ --region=REGION \ --role=DESTINATION \ --cloudsql-instance=CLOUDSQL_INSTANCE_ID \ --host=DESTINATION_HOST_IP_ADDRESS \ --port=DESTINATION_PORT_NUMBER \ --dbm-port=DESTINATION_DBM_PORT_NUMBER \ --username=sqlserver \ --password=CLOUD_SQL_DB_USER_PASSWORD
Ganti kode berikut:
DESTINATION_CONNECTION_PROFILE_IDdengan ID yang dapat dibaca mesin untuk profil koneksi tujuan Anda (misalnya,sqlserver-dag-dest-profile).DESTINATION_CONNECTION_PROFILE_NAMEdengan nama yang dapat dibaca manusia untuk profil koneksi tujuan Anda. Nilai ini ditampilkan di Database Migration Service di konsol Google Cloud .REGIONdengan ID region tempat Anda ingin menyimpan profil koneksi.CLOUDSQL_INSTANCE_IDdengan nama instance Cloud SQL untuk SQL Server tujuan Anda.DESTINATION_HOST_IP_ADDRESSdengan alamat IP pribadi instance Cloud SQL untuk SQL Server tujuan Anda (atau alamat IP endpoint Private Service Connect-nya) yang dapat dijangkau dari instance SQL Server sumber Anda.DESTINATION_PORT_NUMBERdengan nomor port database instance Cloud SQL untuk SQL Server tujuan Anda (1433).DESTINATION_DBM_PORT_NUMBERdengan nomor port Database Mirroring instance Cloud SQL untuk SQL Server tujuan Anda (5022).CLOUD_SQL_DB_USER_PASSWORDdengan sandi untuk penggunasqlserverdi instance Cloud SQL untuk SQL Server tujuan Anda (--usernameharus ditetapkan kesqlserver).
-
Buat tugas migrasi DAG berkelanjutan.
Jalankan perintahgcloud database-migration migration-jobs create(klik untuk meluaskan):gcloud database-migration migration-jobs createContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.gcloud database-migration migration-jobs create MIGRATION_JOB_ID \ --no-async \ --display-name=MIGRATION_JOB_NAME \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --sqlserver-dag-source-ag=SOURCE_AVAILABILITY_GROUP_NAME \ --sqlserver-dag-linked-server=LINKED_SERVER_NAME
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID yang dapat dibaca mesin untuk tugas migrasi Anda (misalnya,sqlserver-dag-job).MIGRATION_JOB_NAMEdengan nama yang dapat dibaca manusia untuk tugas migrasi Anda. Nilai ini ditampilkan di konsol Google Cloud .REGIONdengan ID region tempat Anda ingin membuat tugas migrasi.SOURCE_CONNECTION_PROFILE_IDdengan ID profil koneksi sumber Anda.DESTINATION_CONNECTION_PROFILE_IDdengan ID profil koneksi tujuan Anda.SOURCE_AVAILABILITY_GROUP_NAMEdengan nama Grup Ketersediaan di instance SQL Server sumber Anda.LINKED_SERVER_NAMEdengan nama Server Tertaut yang Anda konfigurasi di instance Cloud SQL untuk SQL Server tujuan di Membuat dan memverifikasi Server Tertaut di instance Cloud SQL untuk SQL Server tujuan.
-
Verifikasi konfigurasi tugas migrasi.
Sebelum memulai tugas migrasi DAG, Anda harus menjalankanverifyuntuk memvalidasi konektivitas jaringan dua arah, akses RPC Server Tertaut, izingcp_dms_db(jika menggunakan hak istimewa terendah), pemilik database sumber (memastikan tidak ada database yang dimiliki olehsa), dan jalur file data default. Jalankan perintahgcloud database-migration migration-jobs verify(klik untuk meluaskan):gcloud database-migration migration-jobs verifygcloud database-migration migration-jobs verify MIGRATION_JOB_ID \ --region=REGION
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
Anda dapat memeriksa status operasi verifikasi dengan menjalankan perintah
gcloud database-migration operations describe. -
Mulai tugas migrasi.
Setelah verifikasi berhasil, jalankan perintahgcloud database-migration migration-jobs start(klik untuk meluaskan):gcloud database-migration migration-jobs startgcloud database-migration migration-jobs start MIGRATION_JOB_ID \ --region=REGION
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
Memantau dan memverifikasi migrasi Anda
Saat tugas migrasi DAG berjalan, Anda dapat memantau progresnya di
konsol Google Cloud , mengkueri database tujuan dalam mode hanya baca
selama CDC, dan mengelola replikasi aktif.
Memantau progres di konsol Google Cloud
Anda dapat memantau tugas migrasi DAG yang sedang berjalan di konsol Google Cloud di halaman Detail tugas migrasi, sama seperti tugas migrasi Database Migration Service lainnya:
- Di tabel Databases pada halaman detail tugas migrasi, lihat fase real-time (
Full dumpselama pemuatan penuh awal,CDCselama replikasi berkelanjutan, dan pesan error tingkat database) serta Restore lag untuk setiap database di Grup Ketersediaan Anda. - Di tab Monitoring, lihat diagram Restore lag (
datamigration.googleapis.com/migration_job/max_replica_sec_lag, yang melaporkan jeda replikasi Grup Ketersediaan Terdistribusi dalam detik per database).
Untuk mengetahui informasi selengkapnya tentang metrik pemantauan dan status tugas, lihat Metrik tugas migrasi dan Kode status tugas migrasi.
Memverifikasi database yang dimigrasikan dalam mode hanya baca selama CDC
Tidak seperti migrasi berbasis cadangan (tempat database tujuan tetap dalam status RESTORING hingga promosi), migrasi Distributed Availability Group memungkinkan Anda mengkueri database Cloud SQL untuk SQL Server tujuan dalam mode hanya baca segera setelah memasuki fase CDC.
Untuk setiap database yang dimiliki oleh login SQL di instance sumber,
Database Migration Service otomatis membuat login di instance Cloud SQL untuk SQL Server tujuan yang diawali dengan gcp_dms_, ID 6 karakter, dan nama pemilik sumber (misalnya, gcp_dms_a1b2c3_myowner).
Untuk mengkueri database dengan login tersebut sebelum promosi, hubungkan ke instance Cloud SQL untuk SQL Server tujuan sebagai sqlserver, temukan nama login yang dihasilkan di sys.server_principals, dan reset sandinya:
SELECT name FROM sys.server_principals WHERE name LIKE 'gcp_dms_%'; GO ALTER LOGIN [GENERATED_DMS_OWNER_LOGIN] WITH PASSWORD = 'NEW_OWNER_PASSWORD'; GO
Ganti kode berikut:
GENERATED_DMS_OWNER_LOGINdengan nama login pemilik database yang dihasilkan yang ditampilkan oleh kueri.NEW_OWNER_PASSWORDdengan sandi baru untuk login.
Untuk mengetahui informasi selengkapnya tentang cara memverifikasi objek dan data yang dimigrasikan, lihat Memverifikasi migrasi.
Mengelola tugas migrasi DAG yang aktif (Opsional)
Saat tugas migrasi berjalan dalam fase CDC, Anda dapat melakukan
operasi pengelolaan berikut:
- Tambahkan atau hapus database di Grup Ketersediaan sumber pada instance SQL Server sumber dengan menjalankan
ALTER AVAILABILITY GROUP ... ADD DATABASEatauALTER AVAILABILITY GROUP ... REMOVE DATABASE. Database Migration Service akan otomatis mendeteksi perubahan pada siklus polling berikutnya dan memperbarui instance Cloud SQL untuk SQL Server tujuan. - Hentikan sementara replikasi data dengan menjalankan
gcloud database-migration migration-jobs stop. Menghentikan tugas migrasi DAG hanya boleh digunakan untuk jangka waktu yang ditentukan dan singkat, karena pembaruan terus terakumulasi dalam log transaksi saat replikasi dihentikan dan dapat menyebabkan disk log transaksi penuh. Dari status dihentikan, Anda dapat menjalankangcloud database-migration migration-jobs resumeuntuk melanjutkan replikasi data, atau menjalankangcloud database-migration migration-jobs deleteuntuk menyelesaikan migrasi dan melakukan pembersihan yang diperlukan. - Mulai ulang tugas migrasi yang gagal dengan menjalankan
gcloud database-migration migration-jobs restart. Memulai ulang tugas migrasi DAG akan menghapus database yang dimigrasikan di instance Cloud SQL untuk SQL Server tujuan, membuat ulang Distributed Availability Group, dan menjalankan ulang pemuatan penuh awal melalui jaringan.
Mempromosikan, melakukan failback, atau menyelesaikan migrasi
Jika Anda sudah siap mengalihkan aplikasi ke Cloud SQL untuk SQL Server, promosikan
tugas migrasi. Dalam migrasi DAG, mempromosikan tugas akan mengalihkan Cloud SQL untuk SQL Server ke Primer baca/tulis dan mentransisikan tugas migrasi ke fase FAILBACK (PHASE_FAILBACK dalam respons Google Cloud CLI dan API) dengan replikasi balik aktif kembali ke instance SQL Server sumber Anda:
- Hentikan penulisan aplikasi ke database SQL Server sumber dan periksa metrik Restore lag di konsol Google Cloud untuk mengonfirmasi bahwa jeda replikasi telah mencapai nol.
-
Mempromosikan tugas migrasi untuk beralih ke Cloud SQL.
Jalankan perintahgcloud database-migration migration-jobs promote(klik untuk meluaskan):gcloud database-migration migration-jobs promotegcloud database-migration migration-jobs promote MIGRATION_JOB_ID \ --region=REGION
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
Selama promosi, Database Migration Service melakukan tindakan berikut:
- Menetapkan Grup Ketersediaan Terdistribusi ke commit sinkron, mengeluarkan
CHECKPOINTdi semua database sumber, menunggu semua transaksi disinkronkan tanpa kehilangan data, dan membalikkan peran Grup Ketersediaan sehingga instance Cloud SQL untuk SQL Server tujuan Anda menjadi Primer baca/tulis dan instance SQL Server sumber asli Anda menjadi Sekunder. - Mempertahankan tugas migrasi dalam status
Runningdan mentransisikan substatus ke faseFAILBACK(PHASE_FAILBACKdi Google Cloud CLI dan respons API), terus mereplikasi penulisan baru dari Cloud SQL untuk SQL Server tujuan kembali ke instance SQL Server sumber.
Setelah promosi selesai, hubungkan aplikasi Anda ke instance Cloud SQL untuk SQL Server yang baru.
-
(Opsional) Lakukan failback ke instance SQL Server sumber Anda.
Jika Anda mengalami masalah setelah mengalihkan aplikasi ke Cloud SQL untuk SQL Server saat tugas migrasi berada dalam faseFAILBACK, Anda dapat mengembalikan migrasi tanpa kehilangan data dengan menghentikan penulisan aplikasi di Cloud SQL untuk SQL Server dan menjalankan perintahgcloud database-migration migration-jobs promotedengan flag--failback(klik untuk meluaskan):gcloud database-migration migration-jobs promote --failbackgcloud database-migration migration-jobs promote MIGRATION_JOB_ID \ --region=REGION \ --failback
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
Menjalankan
promotedengan flag--failbackselama faseFAILBACKakan menyinkronkan semua perubahan yang ditulis ke Cloud SQL untuk SQL Server, mengalihkan arah replikasi lagi sehingga Grup Ketersediaan SQL Server sumber asli Anda menjadi Primer baca/tulis dan Cloud SQL untuk SQL Server menjadi Sekunder, dan mengembalikan tugas migrasi ke faseCDC. Perhatikan bahwa--failbackhanya valid jika tugas migrasi berada dalam faseFAILBACK; menjalankanpromotetanpa--failbackselama faseFAILBACK(atau meneruskan--failbackselama faseCDC) akan gagal dalam validasi dengan errorFAILED_PRECONDITIONdan membuat tugas migrasi tetap berjalan. -
(Opsional) Hentikan replikasi data sebelum menghapus tugas migrasi.
Jika Anda ingin menghentikan replikasi data sebelum menghapus tugas migrasi secara permanen, jalankan perintahgcloud database-migration migration-jobs stop(klik untuk meluaskan):gcloud database-migration migration-jobs stopgcloud database-migration migration-jobs stop MIGRATION_JOB_ID \ --region=REGION
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
-
Selesaikan migrasi dan hapus tugas migrasi.
Setelah Anda memverifikasi bahwa aplikasi Anda beroperasi sepenuhnya dengan instance tujuan Cloud SQL untuk SQL Server yang baru, dan Anda tidak lagi memerlukan replikasi terbalik ke instance SQL Server sumber, hapus tugas migrasi (dari statusRunningatauStopped) untuk menyelesaikan migrasi dan melakukan pembersihan yang diperlukan. Jalankan perintahgcloud database-migration migration-jobs delete(klik untuk meluaskan):gcloud database-migration migration-jobs deletePerintah ini menampilkan dialog konfirmasi interaktif yang memerlukan input Anda untuk menyelesaikannya. Anda dapat melewati perintah konfirmasi menggunakan flag
--quietopsional.gcloud database-migration migration-jobs delete MIGRATION_JOB_ID \ --region=REGION
Ganti kode berikut:
MIGRATION_JOB_IDdengan ID tugas migrasi Anda.REGIONdengan ID region tempat tugas migrasi disimpan.
Menghapus tugas migrasi akan menyelesaikan migrasi, menghentikan replikasi balik yang aktif, menghapus sertifikat Distributed Availability Group dan Database Mirroring di kedua instance, serta memungkinkan Anda mengaktifkan fitur Cloud SQL untuk SQL Server yang dibatasi selama replikasi DAG (seperti Pemulihan point-in-time (PITR) atau replika baca).
Setelah menghapus tugas migrasi, Anda dapat menonaktifkan atau menghapus flag database
cloud sql enable dag supportdi instance Cloud SQL untuk SQL Server tujuan, menghapus Server Tertaut di instance Cloud SQL untuk SQL Server (EXEC master.dbo.sp_dropserver @server = N'LINKED_SERVER_NAME', @droplogins = 'droplogins';), dan menghapus database helpergcp_dms_dbdan login migrasi di instance SQL Server sumber.