ApsaraDB RDS for SQL Server menyediakan solusi tingkat instans untuk migrasi database ke cloud. Anda dapat memigrasikan data penuh dari satu atau beberapa database pada instans SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server. Untuk melakukannya, cadangkan semua database di instans SQL Server yang dikelola sendiri, unggah file cadangan penuh ke folder yang sama di dalam Bucket OSS, lalu jalankan skrip migrasi.
Jika Anda melakukan migrasi tingkat database, yang berarti hanya satu database dipindahkan pada satu waktu, lihat Migrating Full Backups to the Cloud dan Migrating Incremental Backups to the Cloud.
Prasyarat
Database sumber harus berupa database SQL Server yang dikelola sendiri.
Instans ApsaraDB RDS untuk SQL Server tujuan harus memenuhi kondisi berikut:
Ruang penyimpanan yang tersedia dari instans harus lebih besar dari ukuran file data yang akan dimigrasikan. Jika ruang tidak mencukupi, tingkatkan spesifikasi instans terlebih dahulu.
Untuk instans SQL Server 2008 R2: Buat database pada instans tujuan dengan nama yang sama seperti database yang akan dimigrasikan. Langkah ini tidak diperlukan untuk versi SQL Server lainnya.
Jika Anda menggunakan Pengguna Resource Access Management (RAM), kondisi berikut harus dipenuhi:
Pengguna RAM memiliki izin AliyunOSSFullAccess dan AliyunRDSFullAccess. Untuk informasi lebih lanjut tentang cara memberikan izin kepada pengguna RAM, lihat Kelola izin OSS menggunakan RAM dan Kelola izin ApsaraDB RDS menggunakan RAM.
Akun Alibaba Cloud Anda telah memberikan izin akun layanan ApsaraDB RDS untuk mengakses sumber daya OSS Anda.
Akun Alibaba Cloud Anda harus secara manual membuat kebijakan akses dan kemudian menyambungkan kebijakan tersebut ke pengguna RAM.
Keterbatasan
Solusi ini hanya mendukung full migration dan tidak mendukung migrasi tambahan (incremental migration).
Penagihan
Jika Anda menggunakan metode yang dijelaskan dalam topik ini untuk melakukan migrasi data, Anda hanya akan dikenakan biaya untuk penggunaan Bucket OSS.
Skenario | Aturan Penagihan |
Mengunggah file cadangan ke Bucket OSS | Tidak dikenakan biaya. |
Menyimpan file cadangan di Bucket OSS | Anda akan dikenakan biaya penyimpanan. Untuk informasi lebih lanjut, kunjungi halaman Harga dari OSS. |
Memigrasikan file cadangan dari Bucket OSS ke Instans RDS Anda |
|
Persiapan
1. Instal Python 3
Kunjungi situs resmi Python untuk mengunduh dan menginstal paket sesuai sistem operasi Anda. Pilih Python 3.12 atau versi lebih baru.
Untuk Windows: Selama instalasi, pilih kotak centang
Add python.exe to PATHuntuk menghindari konfigurasi manual variabel lingkungan.Untuk macOS atau Linux: Instal Python melalui situs resmi atau gunakan manajer paket seperti Homebrew, apt, atau dnf. Untuk detail lebih lanjut, lihat dokumentasi resmi Python.
2. Verifikasi instalasi dan versi Python
Nama file yang dapat dieksekusi mungkin berbeda tergantung pada sistem operasi dan metode instalasi. Nama umum mencakup python, python3, dan py. Coba perintah berikut secara berurutan dan gunakan yang sesuai dengan instalasi Anda.
3. Instal dependensi SDK
pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v21. Cadangkan semua database pada instans SQL Server yang dikelola sendiri
Untuk memastikan konsistensi data, jangan tulis data baru selama proses cadangan penuh. Rencanakan cadangan sebelumnya guna menghindari gangguan layanan.
Jika Anda tidak menggunakan skrip cadangan, pastikan file cadangan diberi nama dalam format
DatabaseName_BackupType_BackupTime.bak. Sebagai contoh,Testdb_FULL_20180518153544.bak. Jika tidak, migrasi akan gagal.
Unduh skrip cadangan.
Klik dua kali file skrip cadangan untuk membukanya menggunakan Microsoft SQL Server Management Studio (SSMS). Untuk informasi lebih lanjut tentang cara terhubung menggunakan SSMS, lihat dokumentasi resmi.
Sesuaikan parameter berikut sesuai kebutuhan.
Item konfigurasi
Deskripsi
@backup_databases_list
Database yang akan dicadangkan. Pisahkan beberapa database dengan titik koma (;) atau koma (,).
@backup_type
Tipe cadangan. Nilai yang valid:
FULL: cadangan penuh.
DIFF: backup diferensial.
LOG: cadangan log.
PentingDalam solusi ini, atur parameter ini ke FULL.
@backup_folder
Folder lokal tempat file cadangan disimpan. Jika folder tidak ada, maka akan dibuat secara otomatis.
@is_run
Menentukan apakah akan melakukan cadangan. Nilai yang valid:
1: Lakukan cadangan.
0: Hanya lakukan pemeriksaan tanpa melakukan cadangan.
Jalankan skrip cadangan. Database akan dicadangkan ke folder yang telah ditentukan.

2. Unggah file cadangan ke OSS
Sebelum mengunggah file cadangan ke OSS, Anda harus membuat bucket di OSS.
Jika bucket sudah ada di OSS, pastikan memenuhi persyaratan berikut:
Kelas penyimpanan bucket adalah Standard. Kelas penyimpanan lainnya, seperti Akses Jarang, Arsip, Penyimpanan Arsip Dingin, dan Deep Cold Archive, tidak didukung.
Enkripsi sisi server dinonaktifkan untuk bucket tersebut.
Jika tidak ada bucket yang tersedia di OSS, Anda harus membuat satu. (Pastikan Anda telah mengaktifkan OSS.)
Masuk ke Konsol OSS, klik Buckets, lalu klik Create Bucket.
Konfigurasikan parameter kunci berikut. Anda dapat mempertahankan nilai default untuk parameter lainnya.
PentingBucket ini dibuat terutama untuk migrasi data ini. Anda hanya perlu mengonfigurasi parameter kunci. Anda dapat menghapus bucket setelah migrasi selesai untuk mencegah pelanggaran data dan mengurangi biaya.
Saat membuat bucket, jangan aktifkan enkripsi sisi server.
Parameter
Deskripsi
Contoh
Bucket Name
Nama bucket. Nama tersebut harus unik secara global dan tidak dapat diubah setelah bucket dibuat.
Konvensi penamaan:
Nama dapat berisi hanya huruf kecil, angka, dan tanda hubung (-).
Nama harus dimulai dan diakhiri dengan huruf kecil atau angka.
Nama harus memiliki panjang 3 hingga 63 karakter.
migratetest
Region
Wilayah tempat bucket berada. Jika Anda mengunggah data ke bucket dari instance ECS melalui jaringan internal dan memulihkan data ke instance ApsaraDB RDS melalui jaringan internal, bucket, instance ECS, dan instance ApsaraDB RDS harus berada di wilayah yang sama.
Tiongkok (Hangzhou)
Storage Class
Pilih Standard. Operasi migrasi dalam topik ini tidak mendukung bucket dari kelas penyimpanan lainnya.
Standard
Unggah file cadangan ke OSS.
Setelah mencadangkan database lokal, unggah file cadangan ke bucket OSS yang berada di wilayah yang sama dengan instance ApsaraDB RDS Anda. Jika bucket dan instance berada di wilayah yang sama, Anda dapat menggunakan jaringan internal untuk interkoneksi layanan. Metode ini gratis untuk lalu lintas internet keluar dan memberikan kecepatan unggah data yang lebih cepat. Anda dapat menggunakan salah satu metode berikut:
3. Jalankan skrip migrasi untuk memigrasikan database ke ApsaraDB RDS
Unduh skrip migrasi SQL Server.
Setelah mengekstrak paket tersebut, jalankan perintah berikut untuk melihat parameter yang diperlukan untuk skrip.
python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -hHasil berikut akan ditampilkan:
RDSSQLCreateMigrateTasksBatchly.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -e <oss_endpoint> -b <oss_bucket> -d <directory>Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
access_key_id
ID AccessKey dari akun Alibaba Cloud yang memiliki instans ApsaraDB RDS tujuan.
access_key_secret
Rahasia AccessKey dari akun Alibaba Cloud yang memiliki instans ApsaraDB RDS tujuan.
rds_instance_id
ID dari instans ApsaraDB RDS tujuan.
oss_endpoint
Titik akhir bucket tempat file cadangan disimpan.
oss_bucket
Nama bucket tempat file cadangan disimpan.
directory
Folder di dalam bucket OSS tempat file cadangan disimpan. Jika file berada di direktori root, masukkan
/.Jalankan skrip migrasi untuk menyelesaikan tugas migrasi.
Contoh ini menunjukkan cara memigrasikan semua file cadangan yang memenuhi syarat dari folder
Migrationdatadi bucket OSStestdatabucketke instans ApsaraDB RDS for SQL Server dengan ID rm-2zesz5774ud8s****.python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -k yourAccessKeyID -s yourAccessKeySecret -i rm-2zesz5774ud8s**** -e oss-cn-beijing.aliyuncs.com -b testdatabucket -d Migrationdata
4. Lihat kemajuan tugas migrasi
Pilih metode sesuai versi instans ApsaraDB RDS for SQL Server Anda.
SQL Server 2012 dan yang lebih baru
Di panel navigasi sebelah kiri instans ApsaraDB RDS, klik Backup and Restoration. Pada tab Data Migration Records, Anda dapat melihat catatan migrasi, termasuk status tugas, waktu mulai, dan waktu selesai. Secara default, catatan dari minggu terakhir ditampilkan. Anda dapat menyesuaikan rentang waktu sesuai kebutuhan.

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk tugas migrasi yang gagal guna mengidentifikasi penyebab kegagalan. Setelah memperbaiki masalah tersebut, jalankan skrip migrasi data kembali.
SQL Server 2008 R2
Di panel navigasi sebelah kiri instans ApsaraDB RDS, klik Data Migration To Cloud. Temukan tugas migrasi target untuk melihat kemajuannya.
Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk tugas migrasi yang gagal guna mengidentifikasi penyebab kegagalan. Setelah memperbaiki masalah tersebut, jalankan skrip migrasi data kembali.
Kesalahan umum
|
Pesan Kesalahan |
Penyebab |
Solusi |
|
|
ID AccessKey yang digunakan untuk memanggil operasi OpenAPI salah. |
Masukkan ID AccessKey dan Rahasia AccessKey yang benar. |
|
|
Rahasia AccessKey yang digunakan untuk memanggil operasi OpenAPI salah. |
|
|
|
Solusi ini hanya mendukung ApsaraDB RDS untuk SQL Server. Mesin database lainnya tidak didukung. |
Gunakan instans ApsaraDB RDS untuk SQL Server sebagai instans tujuan. |
|
|
ID instans ApsaraDB RDS tidak ada. |
Periksa apakah ID instans ApsaraDB RDS sudah benar. |
|
|
Titik akhir salah, menyebabkan koneksi gagal. |
Periksa apakah titik akhir yang ditentukan sudah benar. |
|
|
Bucket OSS tidak ada. |
Periksa apakah bucket OSS yang ditentukan sudah benar. |
|
|
Folder yang ditentukan tidak ada di bucket OSS, atau folder tersebut tidak berisi file cadangan database yang memenuhi syarat. |
Periksa apakah folder ada di bucket OSS dan apakah folder tersebut berisi file cadangan database yang memenuhi syarat. |
|
|
Nama file cadangan tidak mengikuti konvensi penamaan. |
Jika Anda tidak menggunakan skrip cadangan, Anda harus menamai file cadangan dalam format |
|
|
Pengguna RAM tidak memiliki izin yang cukup. |
Anda harus memberikan pengguna RAM izin untuk menggunakan OSS dan ApsaraDB RDS (izin AliyunOSSFullAccess dan AliyunRDSFullAccess). |
|
|
Pesan kesalahan dikembalikan saat memanggil operasi OpenAPI. |
Analisis penyebab berdasarkan kode kesalahan dan pesan kesalahan. |
Kode Kesalahan OpenAPI
Kode Status HTTP | Kesalahan | Deskripsi | Deskripsi |
403 | InvalidDBName | Nama database yang ditentukan tidak diizinkan. | Nama database tidak valid. Anda tidak dapat menggunakan nama database sistem. |
403 | IncorrectDBInstanceState | Status instans DB saat ini tidak mendukung operasi ini. | Instans ApsaraDB RDS berada dalam status tidak valid. Sebagai contoh, status instans adalah Creating. |
400 | IncorrectDBInstanceType | Tipe instans DB saat ini tidak mendukung operasi ini. | Mesin database tidak didukung. Fitur ini hanya tersedia untuk ApsaraDB RDS untuk SQL Server. |
400 | IncorrectDBInstanceLockMode | Mode kunci instans DB saat ini tidak mendukung operasi ini. | Database berada dalam status kunci yang tidak valid. |
400 | InvalidDBName.NotFound | Satu atau lebih nama DB yang ditentukan tidak ada atau status DB tidak mendukung. | Database tidak ada.
|
400 | IncorrectDBType | Tipe DB saat ini tidak mendukung operasi ini. | Tipe database tidak mendukung operasi ini. |
400 | IncorrectDBState | Status DB saat ini tidak mendukung operasi ini. | Database berada dalam status tidak valid. Sebagai contoh, database sedang dibuat atau tugas migrasi sedang berlangsung. |
400 | UploadLimitExceeded | UploadTimesQuotaExceeded: Melebihi jumlah unggahan harian untuk DB ini. | Jumlah operasi migrasi melebihi batas. Anda dapat melakukan maksimal 20 operasi migrasi per database pada setiap instans per hari. |
400 | ConcurrentTaskExceeded | Tugas bersamaan melebihi jumlah yang diizinkan. | Jumlah operasi migrasi melebihi batas. Anda dapat melakukan maksimal 500 operasi migrasi pada setiap instans per hari. |
400 | IncorrectFileExtension | Ekstensi file tidak didukung. | Ekstensi file dari file cadangan tidak valid. |
400 | InvalidOssUrl | URL oss yang ditentukan tidak valid. | URL unduhan OSS yang disediakan tidak tersedia. |
400 | BakFileSizeExceeded | Melebihi ukuran file bak yang diizinkan. | File cadangan database melebihi batas ukuran. Ukuran maksimum adalah 3 TB. |
400 | FileSizeExceeded | Melebihi ukuran file yang diizinkan untuk instans DB. | File cadangan yang dipulihkan akan melebihi kapasitas penyimpanan instans saat ini. |
Operasi API terkait
API | Deskripsi |
Memulihkan file cadangan dari OSS ke instans ApsaraDB RDS for SQL Server dan membuat tugas migrasi data. | |
Membuka database dari tugas migrasi data ApsaraDB RDS for SQL Server. | |
Memeriksa daftar tugas migrasi data untuk instans ApsaraDB RDS for SQL Server. | |
Memeriksa detail file dari tugas migrasi data ApsaraDB RDS for SQL Server. |



, pilih file cadangan yang ingin Anda unggah, lalu klik Buka. File lokal diunggah ke OSS.

