ApsaraDB RDS for SQL Server mendukung migrasi data inkremental ke cloud. Pertama, unggah file cadangan penuh ke Alibaba Cloud Object Storage Service (OSS), lalu gunakan konsol ApsaraDB RDS untuk memulihkan data ke instans ApsaraDB RDS for SQL Server yang ditentukan. Terakhir, impor file cadangan diferensial atau log transaksi ke instans tersebut untuk menyelesaikan migrasi. Proses ini meminimalkan downtime menjadi hanya beberapa menit.
Kasus penggunaan
Gunakan migrasi data inkremental ke RDS SQL Server dalam skenario berikut:
-
Anda ingin melakukan migrasi fisik ke RDS SQL Server menggunakan file backup alih-alih migrasi logis.
Catatan-
Migrasi fisik berbasis file, sedangkan migrasi logis menghasilkan pernyataan DML dari data dan mengeksekusinya pada instans RDS SQL Server tujuan.
-
Migrasi fisik memastikan bahwa database tujuan identik 100% dengan database sumber. Sebaliknya, migrasi logis tidak dapat menjamin konsistensi ini. Misalnya, atribut seperti fragmentasi indeks dan informasi statistik mungkin berbeda setelah migrasi.
-
-
Anda memerlukan downtime minimal, terbatas hanya beberapa menit.
CatatanJika downtime yang lebih lama dapat diterima (misalnya, gangguan selama 2 jam) dan ukuran database Anda kurang dari 100 GB, migrasikan database Anda menggunakan file cadangan penuh.
Prasyarat
-
Instans RDS for SQL Server Anda harus memenuhi persyaratan berikut:
-
Instans harus menjalankan SQL Server 2012 atau versi lebih baru, atau merupakan instans SQL Server 2008 R2 yang menggunakan cloud disk.
-
Instans tidak boleh berisi database dengan nama yang sama dengan database yang akan dimigrasikan.
-
Ruang penyimpanan tersedia pada instans harus lebih besar daripada ukuran file data yang akan dimigrasikan. Jika ruang penyimpanan tidak mencukupi, tingkatkan kapasitas penyimpanan instans.
-
-
Model pemulihan (recovery model) untuk database SQL Server on-premises Anda harus
FULL.Catatan-
Migrasi data inkremental memerlukan cadangan log transaksi. Model pemulihan Simple tidak mendukung pencadangan log transaksi.
-
File cadangan diferensial yang besar dapat memperpanjang durasi migrasi data inkremental.
-
-
Jika Anda login sebagai Pengguna RAM, Anda harus memenuhi persyaratan berikut:
-
Pengguna RAM harus memiliki izin AliyunOSSFullAccess dan AliyunRDSFullAccess. Untuk informasi lebih lanjut, lihat Kontrol akses ke OSS menggunakan RAM dan Kontrol akses ke RDS menggunakan RAM.
-
Pastikan akun Alibaba Cloud Anda telah memberikan akses akun layanan resmi RDS ke sumber daya OSS Anda.
-
Anda harus secara manual membuat kebijakan akses di akun Alibaba Cloud Anda, lalu melampirkannya ke Pengguna RAM tersebut.
-
Persiapan
Jalankan perintah DBCC CHECKDB pada database yang dikelola sendiri untuk memeriksa allocation errors dan consistency errors. Output yang diharapkan adalah sebagai berikut:
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Catatan
-
Tingkat migrasi: Solusi ini hanya memigrasikan satu database. Untuk memigrasikan beberapa atau semua database, lihat Migrasi cloud tingkat instans SQL Server.
-
Kompatibilitas versi: Anda tidak dapat memulihkan backup dari instans SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server yang menjalankan versi SQL Server lebih lama.
-
Manajemen izin: Setelah Anda memberikan otorisasi kepada akun layanan ApsaraDB RDS untuk mengakses OSS, sebuah role bernama
AliyunRDSImportRoledibuat di Resource Access Management (RAM). Jangan mengubah atau menghapus role ini. Jika tidak, tugas migrasi cloud akan gagal. Jika Anda secara tidak sengaja mengubah atau menghapus role ini, Anda harus memberikan kembali izin tersebut melalui wizard migrasi. -
Manajemen akun: Setelah migrasi selesai, Anda tidak dapat menggunakan akun database yang ada sebelumnya. Anda harus membuat akun baru di konsol ApsaraDB RDS.
-
Retensi file OSS: Jangan menghapus file backup dari OSS sebelum tugas migrasi cloud selesai. Jika tidak, tugas tersebut akan gagal.
-
Persyaratan file backup:
-
Batasan nama file: Nama file backup tidak boleh mengandung karakter khusus (seperti
!@#$%^&*()_+-=). Jika tidak, migrasi cloud akan gagal. -
Ekstensi file: ApsaraDB RDS mendukung file backup dengan ekstensi berikut:
.bak(cadangan penuh),.diff(cadangan diferensial), dan.trnatau.log(cadangan log). ApsaraDB RDS tidak mengenali jenis file lainnya.Catatan-
Dalam praktiknya, ekstensi file tidak selalu menunjukkan jenis backup-nya. Misalnya, file
.bakdapat berisi cadangan penuh, cadangan diferensial, atau cadangan log transaksi. -
File cadangan log SQL Server yang diunduh dari konsol ApsaraDB RDS secara default memiliki format
.zip.log. Ini berbeda dengan file backup.bakyang dihasilkan oleh skrip resmi pada Langkah 1. Setelah Anda mengonversi format file tersebut, Anda dapat menggunakannya untuk migrasi cloud inkremental.Metode pemrosesan: Ubah ekstensi file menjadi
.zipdan ekstrak file tersebut. Kemudian, ubah nama file hasil ekstraksidatabase_name.lbakagar memiliki ekstensi.bak. Terakhir, unggah file.bakini ke OSS sebagai cadangan log inkremental untuk migrasi cloud.
-
-
Alur kerja contoh
|
Fase migrasi |
Langkah |
Deskripsi |
|
fase migrasi data penuh |
Langkah 1. Sebelum pukul 00:00 |
Selesaikan persiapan:
|
|
Langkah 2. Pukul 00:01 |
Lakukan cadangan penuh database sumber. Durasi: ~1 jam. |
|
|
Langkah 3. Pukul 02:00 |
Unggah file backup ke bucket OSS. Durasi: ~1 jam. |
|
|
Langkah 4. Pukul 03:00 |
Di konsol ApsaraDB RDS, pulihkan file cadangan penuh. Durasi: ~19 jam. |
|
|
fase migrasi inkremental |
Langkah 5. Pukul 22:00 |
Jalankan cadangan log inkremental database sumber dan unggah ke OSS. Durasi: ~20 menit. |
|
Langkah 6. Pukul 22:20 |
Pulihkan file cadangan log. Durasi: ~10 menit. |
|
|
Langkah 7. Pukul 22:30 |
|
|
|
Cutover |
Langkah 8. Pukul 22:34 |
Cadangan log terakhir dipulihkan dalam waktu sekitar 4 menit. Anda kemudian dapat membawa database online. |
|
Langkah 9. Pukul 22:35 |
Database sudah online. Jika Anda memilih untuk menjalankan pemeriksaan DBCC secara asinkron, langkah terakhir ini membutuhkan waktu sekitar 1 menit. |
Alur kerja ini menunjukkan bahwa downtime aplikasi yang diperlukan sangat singkat. Anda hanya perlu menghentikan penulisan aplikasi tepat sebelum cadangan log terakhir. Dalam contoh ini, total downtime kurang dari 5 menit.
Langkah 1: Cadangkan database lokal
-
Unduh skrip backup dan buka di SSMS.
-
Modifikasi parameter berikut.
Parameter
Deskripsi
@backup_databases_list
Daftar database yang akan dicadangkan, dipisahkan dengan titik koma atau koma.
@backup_type
Jenis backup yang akan dilakukan. Nilai yang valid:
-
FULL: cadangan penuh
-
DIFF: cadangan diferensial
-
LOG: cadangan log
@backup_folder
Direktori lokal untuk file backup. Skrip akan membuat direktori ini secara otomatis jika belum ada.
@is_run
Menentukan apakah akan menjalankan backup. Nilai yang valid:
-
1: Menjalankan backup.
-
0: Hanya menjalankan pemeriksaan tanpa melakukan backup.
-
-
Jalankan skrip backup.
Skrip ini menghasilkan file
.baksecara default, terlepas dari jenis backup yang dipilih.
2. Unggah file backup ke OSS
-
Untuk mengunggah file backup ke OSS, Anda harus membuat bucket terlebih dahulu.
-
Jika Anda sudah memiliki bucket di OSS, pastikan bucket tersebut memenuhi persyaratan berikut:
-
kelas penyimpanan bucket adalah Standard. Kelas penyimpanan tidak boleh Infrequent Access (IA), Archive, Cold Archive, atau Deep Cold Archive.
-
enkripsi data tidak diaktifkan untuk bucket tersebut.
-
-
Jika Anda belum memiliki bucket di OSS, buatlah satu. (Pastikan Anda telah mengaktifkan OSS.)
-
Login ke konsol OSS, klik Buckets, lalu klik Create bucket.
-
Konfigurasikan parameter utama berikut. Gunakan nilai default untuk parameter lainnya.
Penting-
Bucket ini hanya digunakan untuk migrasi data ini Anda hanya perlu mengonfigurasi parameter utama saja. Setelah migrasi selesai, segera hapus bucket tersebut untuk mencegah kebocoran data dan menghindari biaya terkait.
-
Jangan aktifkan enkripsi data saat membuat bucket.
Parameter
Deskripsi
Contoh
Bucket Name
Nama bucket. Nama harus unik secara global dan tidak dapat diubah setelah bucket dibuat.
Konvensi penamaan:
-
Hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).
-
Harus dimulai dan diakhiri dengan huruf kecil atau angka.
-
Panjangnya harus antara 3 hingga 63 karakter.
migratetest
Region
Wilayah tempat bucket berada. Untuk menggunakan jaringan internal saat mengunggah dari instans ECS dan memulihkan ke instans RDS, instans ECS, bucket, dan instans RDS harus berada di wilayah yang sama.
China (Hangzhou)
Storage Type
Pilih Standard. Metode migrasi yang dijelaskan dalam topik ini tidak mendukung bucket dengan kelas penyimpanan lainnya.
Standard
-
-
-
-
Unggah file backup ke OSS.
Setelah mencadangkan database lokal, unggah file backup ke bucket OSS yang berada di wilayah yang sama dengan instans RDS Anda. Hal ini memungkinkan komunikasi melalui jaringan internal, sehingga menghindari biaya trafik internet dan meningkatkan kecepatan unggah. Anda dapat menggunakan salah satu metode berikut:
3. Buat tugas migrasi cloud
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID-nya.
-
Di panel navigasi kiri, klik Restoration.
-
Di bagian atas halaman, klik Restore Backup Data from OSS.
-
Di halaman Import Guide, klik Next dua kali untuk menuju langkah Import Data.
CatatanJika ini pertama kalinya Anda menggunakan fitur migrasi data backup OSS ke RDS, Anda harus memberikan otorisasi kepada akun RDS untuk mengakses OSS. Klik Authorize untuk memberikan izin yang diperlukan. Jika tidak, daftar drop-down OSS Bucket akan kosong.
-
Atur parameter berikut dan klik Yes.
Tunggu hingga tugas migrasi cloud selesai. Klik Refresh untuk melihat status terbaru tugas tersebut. Jika tugas gagal, lakukan pemecahan masalah berdasarkan pesan kesalahan dalam deskripsi tugas. Untuk informasi lebih lanjut, lihat Kesalahan umum.
Parameter
Deskripsi
Database Name
Nama database tujuan pada instans RDS. Nama harus sesuai dengan konvensi penamaan SQL Server.
Penting-
Sebelum memulai migrasi, pastikan instans tujuan tidak memiliki database atau file database yang tidak terpasang dengan nama yang sama dengan database dalam file backup.
-
Jika database dengan nama yang sama dengan database yang ditentukan dalam file backup sudah ada pada instans tujuan, atau jika file database yang tidak terpasang dengan nama yang sama sudah ada, migrasi cloud akan gagal.
OSS Bucket
Pilih bucket OSS tempat file backup disimpan.
OSS File
Klik ikon kaca pembesar untuk melakukan pencarian fuzzy file backup berdasarkan awalan. Hasilnya menampilkan nama file, ukuran file, dan waktu modifikasi terakhir. Pilih file backup yang akan dimigrasikan.
Cloud Migration Method
Pilih Do Not Open Database.
-
Immediate Access (Full Backup): Gunakan metode ini untuk migrasi data penuh ke cloud jika Anda memiliki satu file cadangan penuh yang akan dimigrasikan. Untuk opsi ini, operasi
CreateMigrateTaskmenggunakan parameter berikut:BackupMode = FULLdanIsOnlineDB = True. -
Access Pending (Incremental Backup): Gunakan metode ini untuk migrasi data inkremental ke cloud jika Anda memigrasikan file cadangan penuh diikuti oleh file cadangan diferensial atau log. Untuk opsi ini, operasi
CreateMigrateTaskmenggunakan parameter berikut:BackupMode = UPDFdanIsOnlineDB = False.
-
4. Impor cadangan diferensial atau log
Setelah memigrasikan cadangan penuh database SQL Server yang dikelola sendiri, impor file cadangan diferensial atau log tersebut.
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID-nya.
-
Di panel navigasi kiri, klik Restoration, lalu tab Backup Data Upload History.
-
Di daftar tugas, temukan tugas yang sesuai dan klik Upload Incremental Files di kolom Actions. Pilih file inkremental dan klik OK.
Catatan-
Jika Anda memiliki beberapa file cadangan log, buat tugas migrasi terpisah untuk masing-masing file.
-
Pastikan file backup terakhir tidak melebihi 500 MB. Hal ini akan meminimalkan waktu yang diperlukan untuk migrasi cloud inkremental.
-
Sebelum menghasilkan file cadangan log terakhir, hentikan semua operasi tulis pada database yang dikelola sendiri. Hal ini memastikan konsistensi data antara database yang dikelola sendiri dan instans RDS for SQL Server.
-
5. Buka database
Setelah mengimpor file backup, database pada instans ApsaraDB RDS for SQL Server Anda masuk ke status In Recovery atau Restoring. Untuk instans Edisi Ketersediaan Tinggi, statusnya adalah In Recovery, sedangkan untuk instans Edisi Dasar, statusnya adalah Restoring. Dalam kedua status tersebut, database tidak tersedia untuk operasi baca dan tulis. Anda harus membuka database agar tersedia.
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID-nya.
-
Di panel navigasi kiri, pilih Restoration, lalu klik tab Cloud Migration Records of Backup Data.
-
Di daftar tugas, temukan catatan impor file backup dan klik Open Database di kolom Actions.
-
Pilih opsi pemeriksaan konsistensi database dan klik OK.
CatatanOpsi berikut tersedia untuk pemeriksaan konsistensi database:
-
Asynchronous DBCC: Opsi ini menjalankan operasi
DBCC CHECKDBsecara asinkron setelah database dibuka. Metode ini meminimalkan downtime dengan membawa database online lebih cepat. Opsi ini ideal jika database Anda besar dan operasiDBCC CHECKDBmemakan waktu lama. Gunakan opsi ini jika layanan Anda sensitif terhadap downtime dan Anda tidak memerlukan hasil pemeriksaan segera. Untuk panggilan API CreateMigrateTask, opsi ini mengatur parameterCheckDBModemenjadiAsyncExecuteDBCheck. -
Synchronous DBCC: Opsi ini menjalankan operasi
DBCC CHECKDBsaat database dibuka. Metode ini memungkinkan Anda segera memverifikasi konsistensi data dan mengidentifikasi kesalahan apa pun. Gunakan opsi ini jika Anda memprioritaskan verifikasi data, tetapi perhatikan bahwa hal ini meningkatkan waktu yang diperlukan untuk membuka database. Untuk panggilan API CreateMigrateTask, opsi ini mengatur parameterCheckDBModemenjadiSyncExecuteDBCheck.
-
6. Lihat detail backup migrasi cloud
Untuk melihat detail file backup untuk tugas migrasi cloud, buka halaman Restoration di panel navigasi kiri instans RDS. Di tab Cloud Migration Records of Backup Data, temukan tugas tersebut dan klik View File Details di kolom paling kanan.
Setelah migrasi cloud, sistem secara otomatis membuat backup berdasarkan kebijakan backup otomatis instans RDS. Backup ini dijalankan pada waktu backup tertentu, yang dapat Anda sesuaikan. Set cadangan yang dihasilkan berisi data yang dimigrasikan dan tersedia di halaman Restoration.
Jika Anda memerlukan backup sebelum waktu terjadwal berikutnya, Anda dapat melakukan backup manual.
Kesalahan umum
Untuk kesalahan umum selama migrasi data cadangan penuh, lihat Kesalahan umum dalam migrasi data cadangan penuh.
Anda mungkin mengalami kesalahan berikut selama unggah inkremental:
-
Gagal membuka database
-
Pesan error: Gagal membuka database xxx.
-
Penyebab: Database SQL Server sumber menggunakan fitur lanjutan yang tidak didukung oleh edisi instans ApsaraDB RDS for SQL Server yang dipilih. Misalnya, kesalahan ini terjadi jika instans SQL Server sumber menjalankan Edisi Perusahaan dengan kompresi data atau partisi yang diaktifkan, dan Anda memigrasikan data ke instans ApsaraDB RDS for SQL Server yang menjalankan Edisi Web.
-
Solusi:
-
Nonaktifkan fitur lanjutan pada instans SQL Server sumber, buat backup baru, lalu coba migrasi lagi.
-
Beli instans ApsaraDB RDS for SQL Server dengan edisi SQL Server yang sama dengan instans sumber Anda. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for SQL Server.
CatatanUntuk informasi lebih lanjut, lihat Perbandingan fitur antar versi SQL Server dan edisi RDS yang berbeda.
-
-
-
Ketidaksesuaian LSN dalam rantai backup
-
Pesan kesalahan: Log dalam set cadangan ini dimulai pada LSN XXX, yang terlalu baru untuk diterapkan ke database. RESTORE LOG dihentikan secara tidak normal.
-
Penyebab: Di SQL Server, cadangan diferensial atau log hanya dapat dipulihkan jika Log Sequence Number (LSN) awalnya sesuai dengan LSN file backup yang dipulihkan sebelumnya. Kesalahan ini terjadi jika LSN tidak cocok.
-
Solusi: Pilih file backup dengan LSN yang cocok untuk unggah inkremental. Pastikan Anda mengunggah file backup secara kronologis.
-
-
Asynchronous DBCC CHECKDB failed
-
Pesan kesalahan: asynchronously DBCC checkdb failed: CHECKDB found 0 allocation errors and 2 consistency errors in table 'XXX' (object ID XXX).
-
Penyebab: Setelah file backup dipulihkan ke instans ApsaraDB RDS for SQL Server, sistem menjalankan DBCC CHECKDB asinkron. Jika pemeriksaan ini gagal, berarti database sumber sudah mengandung kesalahan konsistensi.
-
Solusi:
-
Pada instans ApsaraDB RDS for SQL Server tujuan, jalankan perintah berikut:
DBCC CHECKDB (DBName,REPAIR_ALLOW_DATA_LOSS)PentingPerintah perbaikan ini dapat menyebabkan kehilangan data.
-
Pada instans sumber, jalankan perintah berikut untuk memperbaiki kesalahan, lalu coba lagi unggah inkremental.
DBCC CHECKDB (DBName,REPAIR_ALLOW_DATA_LOSS)
-
-
-
Jenis file backup salah untuk unggah inkremental
-
Pesan kesalahan: Backup set (xxx) is a Database FULL backup, we only accept transaction log or differential backup.
-
Penyebab: Selama unggah inkremental ke instans ApsaraDB RDS for SQL Server, sistem hanya menerima file cadangan log atau diferensial setelah cadangan penuh dipulihkan. Kesalahan ini terjadi jika Anda memilih kembali file cadangan penuh.
-
Solusi: Pilih file cadangan log atau diferensial.
-
-
Jumlah database melebihi batas
-
Pesan kesalahan: Migrasi database (xxx) gagal karena melebihi batas jumlah database yang diizinkan.
-
Penyebab: Kesalahan ini terjadi saat Anda memigrasikan database ke instans yang telah mencapai batas maksimum jumlah database.
-
Solusi: Migrasikan database ke instans ApsaraDB RDS for SQL Server lain, atau hapus database yang tidak diperlukan dari instans saat ini.
-
-
Izin Pengguna RAM Tidak Cukup
-
Q1: Pada Langkah 5 Buat tugas migrasi data, mengapa tombol OK tampak redup dan tidak dapat diklik meskipun semua parameter telah dikonfigurasi?
-
A1: Hal ini dapat terjadi jika Pengguna RAM Anda tidak memiliki izin yang diperlukan. Lihat bagian Prasyarat dalam topik ini dan berikan izin yang diperlukan.
-
Q2: Bagaimana cara mengatasi kesalahan
no permissionyang terjadi saat Pengguna RAM mencoba memberikan roleAliyunRDSImportRole? -
A2: Gunakan akun Alibaba Cloud Anda untuk sementara memberikan izin
AliyunRAMFullAccesskepada Pengguna RAM. Untuk petunjuk cara memberikan izin kepada Pengguna RAM, lihat Gunakan RAM untuk mengelola izin ApsaraDB RDS.
-
-
Cadangan inkremental dipulihkan ke cadangan penuh yang salah
-
Pesan kesalahan: Backup diferensial ini tidak dapat dipulihkan karena database tidak berada dalam keadaan yang sesuai. RESTORE DATABASE dihentikan secara tidak normal.
-
Penyebab: Kesalahan ini terjadi jika cadangan inkremental yang lebih baru dipulihkan ke cadangan penuh yang lebih lama. Hal ini memutus rantai backup karena LSN file cadangan diferensial tidak sesuai dengan LSN file cadangan penuh yang dipulihkan dengan opsi
NORECOVERY. -
Solusi: Pastikan Anda memilih file backup yang benar dan mengunggahnya dalam urutan yang tepat. Anda dapat mengkueri tabel
msdb.dbo.backupsetpada instans sumber untuk memverifikasi urutan dan hubungan LSN antara file cadangan penuh dan diferensial Anda.
-
-
Kesalahan dengan Striped Backups multi-file
-
Pesan kesalahan: Gagal memverifikasi (xxx.bak). Pesan kesalahan: Set media memiliki xxx keluarga media, tetapi hanya satu yang disertakan. Semua anggota harus disertakan. VERIFY DATABASE dihentikan secara tidak normal.
-
Penyebab: Database sumber dicadangkan menggunakan fitur Striped Backup, yang menulis satu cadangan penuh ke beberapa file .bak. Namun, Anda hanya menyediakan salah satu file tersebut untuk tugas migrasi. ApsaraDB RDS for SQL Server tidak mendukung migrasi data dari beberapa file backup dalam satu tugas.
-
Solusi: Cadangkan database sumber ke satu file .bak tunggal, lalu coba unggah lagi.
-
Referensi API
|
API |
Deskripsi |
|
Membuat tugas migrasi data dengan memulihkan file backup dari OSS ke instans ApsaraDB RDS for SQL Server. |
|
|
Membawa database online setelah dipulihkan sebagai bagian dari tugas migrasi data. |
|
|
Menampilkan daftar tugas migrasi data untuk instans ApsaraDB RDS for SQL Server. |
|
|
Mengembalikan detail file backup untuk tugas migrasi data. |

, pilih file backup yang akan diunggah, lalu klik Open.