Topik ini menjelaskan cara menggunakan Alibaba Cloud CLI untuk membuat dan mengonfigurasi tugas Data Transmission Service (DTS) guna migrasi data, sinkronisasi data, langganan data, dan validasi data.
Ikhtisar
Pembuatan tugas DTS menggunakan Alibaba Cloud CLI mencakup tiga langkah utama:
Purchase a DTS instance: Panggil operasi CreateDtsInstance untuk membeli instans DTS dengan tipe tertentu dan mendapatkan ID instansnya.
Configure the DTS task: Panggil operasi ConfigureDtsJob untuk mengonfigurasi informasi koneksi database sumber dan tujuan, objek yang akan dimigrasikan atau disinkronkan, serta pengaturan lainnya.
Start the DTS task: Panggil operasi StartDtsJob untuk menjalankan tugas, lalu panggil operasi DescribeDtsJobDetail untuk mengecek statusnya.
Contoh dalam topik ini menunjukkan transfer data dari database sumber RDS for MySQL ke database tujuan RDS for MySQL. Contoh tersebut mencakup perintah CLI untuk membuat tugas migrasi data, sinkronisasi data, langganan data, dan validasi data. Anda dapat menyesuaikan parameter untuk database sumber dan tujuan sesuai kebutuhan.
Prasyarat
Anda telah menginstal dan mengonfigurasi Alibaba Cloud CLI. Untuk informasi lebih lanjut, lihat Install or update Alibaba Cloud CLI dan Configure and manage credentials.
Pengguna RAM untuk AccessKey Anda harus memiliki izin yang diperlukan untuk mengelola DTS. Untuk informasi lebih lanjut, lihat Grant permissions to a RAM user to manage DTS by using system policies.
Anda telah membuat instans database sumber dan tujuan serta menyelesaikan persiapan yang diperlukan untuk DTS. Untuk informasi lebih lanjut, lihat Preparations.
Catatan
Parameter
SourceRegiondanDestinationRegiondalam operasi CreateDtsInstance harus sesuai dengan wilayah database sumber dan tujuan Anda.Parameter
Typedalam operasi CreateDtsInstance menentukan tipe tugas. Nilai yang valid:MIGRATION(migrasi data),SYNC(sinkronisasi data), danSUBSCRIBE(langganan data).Parameter
DbListdalam operasi ConfigureDtsJob berformat JSON dan menentukan objek yang akan dimigrasikan atau disinkronkan. Untuk detail format, lihat Objects to migrate, synchronize, or subscribe to.Tugas migrasi data hanya mendukung metode penagihan pay-as-you-go. Tugas sinkronisasi data dan langganan data mendukung metode penagihan pay-as-you-go maupun subscription.
Teruskan parameter kata sandi database, seperti
SourceEndpointPassworddanDestinationEndpointPassword, sebagai variabel lingkungan untuk menghindari penampakannya dalam bentuk teks biasa di command line.
Buat tugas migrasi data
Contoh berikut menunjukkan cara menggunakan Alibaba Cloud CLI untuk membuat tugas migrasi data dari database RDS for MySQL ke database lainnya.
Langkah 1: Beli instans migrasi
Jalankan perintah berikut untuk memanggil operasi CreateDtsInstance guna membeli instans migrasi data.
aliyun dts CreateDtsInstance \
--Type MIGRATION \
--SourceRegion cn-hangzhou \
--DestinationRegion cn-shanghai \
--SourceEndpointEngineName MySQL \
--DestinationEndpointEngineName MySQL \
--PayType PostPaid \
--InstanceClass smallContoh output:
{
"InstanceId": "dtsse7s11v26j****",
"JobId": "se7s11v26j****",
"RequestId": "E52C5BD7-AF7D-4F5D-A8F5-D3B5F0****",
"Success": true
}Catat InstanceId dari hasil respons. Nilai ini adalah ID instans DTS dan digunakan sebagai parameter DtsInstanceId pada langkah-langkah selanjutnya.
Langkah 2: Konfigurasi tugas migrasi
Jalankan perintah berikut untuk memanggil operasi ConfigureDtsJob guna mengonfigurasi database sumber dan tujuan.
aliyun dts ConfigureDtsJob \
--DtsInstanceId dtsse7s11v26j**** \
--DtsJobName "rds_mysql_migration_demo" \
--JobType MIGRATION \
--SourceEndpointInstanceType RDS \
--SourceEndpointInstanceID rm-bp1imrtn6fq**** \
--SourceEndpointEngineName MYSQL \
--SourceEndpointRegion cn-hangzhou \
--SourceEndpointDatabaseName source_db \
--SourceEndpointUserName dts_user \
--SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
--DestinationEndpointInstanceType RDS \
--DestinationEndpointInstanceID rm-bp1k5v0rm3d**** \
--DestinationEndpointEngineName MYSQL \
--DestinationEndpointRegion cn-shanghai \
--DestinationEndpointDataBaseName target_db \
--DestinationEndpointUserName dts_user \
--DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
--StructureInitialization true \
--DataInitialization true \
--DataSynchronization true \
--DbList '{"source_db":{"name":"source_db","all":true}}'Contoh output:
{
"RequestId": "1D234B10-5C84-4F26-B06A-3E48D2****",
"DtsJobId": "se7s11v26j****",
"ErrCode": "",
"Success": "true",
"HttpStatusCode": 200
}Langkah 3: Jalankan tugas migrasi
Jalankan perintah berikut untuk memanggil operasi StartDtsJob guna menjalankan tugas migrasi.
aliyun dts StartDtsJob \
--DtsJobId se7s11v26j****Contoh output:
{
"RequestId": "A7B3E61D-2C2F-4B3B-A5D8-F7E49D****",
"ErrCode": "",
"Success": "true",
"HttpStatusCode": 200
}Langkah 4: Tanyakan status tugas
Jalankan perintah berikut untuk memanggil operasi DescribeDtsJobDetail guna mengecek status tugas migrasi.
aliyun dts DescribeDtsJobDetail \
--DtsJobId se7s11v26j****Konfirmasi bahwa Status dalam hasil respons adalah Migrating, yang menunjukkan bahwa tugas migrasi sedang berjalan.
Buat tugas sinkronisasi data
Contoh berikut menunjukkan cara menggunakan Alibaba Cloud CLI untuk membuat tugas sinkronisasi data dari database RDS for MySQL ke database lainnya.
Langkah 1: Beli instans sinkronisasi
Jalankan perintah berikut untuk memanggil operasi CreateDtsInstance guna membeli instans sinkronisasi data.
aliyun dts CreateDtsInstance \
--Type SYNC \
--SourceRegion cn-hangzhou \
--DestinationRegion cn-hangzhou \
--SourceEndpointEngineName MySQL \
--DestinationEndpointEngineName MySQL \
--PayType PostPaid \
--InstanceClass small \
--SyncArchitecture onewayContoh output:
{
"InstanceId": "dtsbi6e22ay24****",
"JobId": "bi6e22ay24****",
"RequestId": "6C2FE2A1-B9D3-4E5C-8A1B-C3F28E****",
"Success": true
}Langkah 2: Konfigurasi tugas sinkronisasi
Jalankan perintah berikut untuk memanggil operasi ConfigureDtsJob guna mengonfigurasi database sumber dan tujuan untuk tugas sinkronisasi.
aliyun dts ConfigureDtsJob \
--DtsInstanceId dtsbi6e22ay24**** \
--DtsJobName "rds_mysql_sync_demo" \
--JobType SYNC \
--SourceEndpointInstanceType RDS \
--SourceEndpointInstanceID rm-bp1imrtn6fq**** \
--SourceEndpointEngineName MYSQL \
--SourceEndpointRegion cn-hangzhou \
--SourceEndpointDatabaseName source_db \
--SourceEndpointUserName dts_user \
--SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
--DestinationEndpointInstanceType RDS \
--DestinationEndpointInstanceID rm-bp1k5v0rm3d**** \
--DestinationEndpointEngineName MYSQL \
--DestinationEndpointRegion cn-hangzhou \
--DestinationEndpointDataBaseName target_db \
--DestinationEndpointUserName dts_user \
--DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
--StructureInitialization true \
--DataInitialization true \
--DataSynchronization true \
--DbList '{"source_db":{"name":"source_db","all":true}}'Contoh output:
{
"RequestId": "8E2D3A9C-4B5F-4C6A-9D7E-A1B2C3****",
"DtsJobId": "bi6e22ay24****",
"ErrCode": "",
"Success": "true",
"HttpStatusCode": 200
}Langkah 3: Jalankan tugas sinkronisasi
Jalankan perintah berikut untuk memanggil operasi StartDtsJob guna menjalankan tugas sinkronisasi.
aliyun dts StartDtsJob \
--DtsJobId bi6e22ay24****Langkah 4: Tanyakan status tugas
Jalankan perintah berikut untuk memanggil operasi DescribeDtsJobDetail guna mengecek status tugas sinkronisasi.
aliyun dts DescribeDtsJobDetail \
--DtsJobId bi6e22ay24****Konfirmasi bahwa Status dalam respons adalah Synchronizing, yang menunjukkan bahwa tugas sinkronisasi sedang berlangsung.
Buat tugas langganan data
Contoh berikut menunjukkan cara menggunakan Alibaba Cloud CLI untuk membuat tugas langganan data untuk database RDS for MySQL.
Langkah 1: Beli instans langganan
Jalankan perintah berikut untuk memanggil operasi CreateDtsInstance guna membeli instans langganan data.
aliyun dts CreateDtsInstance \
--Type SUBSCRIBE \
--SourceRegion cn-hangzhou \
--DestinationRegion cn-hangzhou \
--SourceEndpointEngineName MySQL \
--PayType PostPaid \
--InstanceClass smallContoh output:
{
"InstanceId": "dtsk3m1zb527a****",
"JobId": "k3m1zb527a****",
"RequestId": "3F5A8B2C-6D7E-4A9B-8C1D-E2F3A4****",
"Success": true
}Langkah 2: Konfigurasi tugas langganan
Jalankan perintah berikut untuk memanggil operasi ConfigureSubscription guna mengonfigurasi tugas langganan data.
aliyun dts ConfigureSubscription \
--RegionId cn-hangzhou \
--DtsInstanceId dtsk3m1zb527a**** \
--DtsJobName "rds_mysql_subscribe_demo" \
--SourceEndpointInstanceType RDS \
--SourceEndpointInstanceID rm-bp1imrtn6fq**** \
--SourceEndpointEngineName MYSQL \
--SourceEndpointRegion cn-hangzhou \
--SourceEndpointDatabaseName source_db \
--SourceEndpointUserName dts_user \
--SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
--DbList '{"source_db":{"name":"source_db","all":true}}' \
--SubscriptionDataTypeDDL true \
--SubscriptionDataTypeDML true \
--SubscriptionInstanceNetworkType vpc \
--SubscriptionInstanceVPCId vpc-bp1opxu1zkhn00g**** \
--SubscriptionInstanceVSwitchId vsw-bp1s5fnvk4gn2tw****Contoh output:
{
"RequestId": "B4C5D6E7-8F9A-4B1C-2D3E-F4A5B6****",
"DtsJobId": "k3m1zb527a****",
"ErrCode": "",
"Success": "true",
"HttpStatusCode": 200
}SubscriptionInstanceNetworkType adalah parameter yang diperlukan yang saat ini hanya mendukung vpc. Saat Anda mengatur parameter ini ke vpc, Anda juga harus menentukan parameter SubscriptionInstanceVPCId dan SubscriptionInstanceVSwitchId.
Langkah 3: Jalankan tugas langganan
Jalankan perintah berikut untuk memanggil operasi StartDtsJob guna menjalankan tugas langganan.
aliyun dts StartDtsJob \
--DtsJobId k3m1zb527a****Langkah 4: Tanyakan status tugas
Jalankan perintah berikut untuk memanggil operasi DescribeDtsJobDetail guna mengecek status tugas langganan.
aliyun dts DescribeDtsJobDetail \
--DtsJobId k3m1zb527a****Verifikasi bahwa Status dalam respons adalah Normal, yang menunjukkan bahwa tugas langganan sedang berjalan.
Buat tugas validasi data
Tugas validasi data memverifikasi konsistensi data antara database sumber dan tujuan setelah migrasi atau sinkronisasi data. Contoh berikut menunjukkan cara membuat tugas validasi untuk tugas migrasi data yang sudah ada.
Langkah 1: Beli instans validasi
Jalankan perintah berikut untuk memanggil operasi CreateDtsInstance guna membeli instans validasi data.
aliyun dts CreateDtsInstance \
--Type CHECK \
--SourceRegion cn-hangzhou \
--DestinationRegion cn-shanghai \
--SourceEndpointEngineName MySQL \
--DestinationEndpointEngineName MySQL \
--PayType PostPaid \
--InstanceClass smallContoh output:
{
"InstanceId": "dtsp2w8rx6315****",
"JobId": "p2w8rx6315****",
"RequestId": "D5E6F7A8-9B0C-4D1E-2F3A-B4C5D6****",
"Success": true
}Langkah 2: Konfigurasi tugas validasi
Jalankan perintah berikut untuk memanggil operasi ConfigureDtsJob guna mengonfigurasi database sumber dan tujuan untuk tugas validasi.
aliyun dts ConfigureDtsJob \
--DtsInstanceId dtsp2w8rx6315**** \
--DtsJobName "rds_mysql_check_demo" \
--JobType CHECK \
--SourceEndpointInstanceType RDS \
--SourceEndpointInstanceID rm-bp1imrtn6fq**** \
--SourceEndpointEngineName MYSQL \
--SourceEndpointRegion cn-hangzhou \
--SourceEndpointDatabaseName source_db \
--SourceEndpointUserName dts_user \
--SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
--DestinationEndpointInstanceType RDS \
--DestinationEndpointInstanceID rm-bp1k5v0rm3d**** \
--DestinationEndpointEngineName MYSQL \
--DestinationEndpointRegion cn-shanghai \
--DestinationEndpointDataBaseName target_db \
--DestinationEndpointUserName dts_user \
--DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
--StructureInitialization false \
--DataInitialization true \
--DataSynchronization false \
--DbList '{"source_db":{"name":"source_db","all":true}}'Contoh output:
{
"RequestId": "E6F7A8B9-0C1D-4E2F-3A4B-C5D6E7****",
"DtsJobId": "p2w8rx6315****",
"ErrCode": "",
"Success": "true",
"HttpStatusCode": 200
}Langkah 3: Jalankan tugas validasi
Jalankan perintah berikut untuk memanggil operasi StartDtsJob guna menjalankan tugas validasi.
aliyun dts StartDtsJob \
--DtsJobId p2w8rx6315****Langkah 4: Tanyakan hasil validasi
Jalankan perintah berikut untuk memanggil operasi DescribeDtsJobDetail guna mengecek hasil tugas validasi.
aliyun dts DescribeDtsJobDetail \
--DtsJobId p2w8rx6315****Konfirmasi bahwa Status dalam hasil respons adalah Finished. Hal ini menunjukkan bahwa tugas verifikasi telah selesai. Anda dapat melihat detail verifikasi dalam hasil respons untuk menentukan apakah data konsisten.