Topik ini menjelaskan cara memigrasikan data dari instans ApsaraDB RDS for SQL Server ke instans SQL Server yang dikelola sendiri. Anda harus mengunduh file cadangan fisik penuh dan inkremental dari Konsol ApsaraDB RDS, mengunggahnya ke server yang menjalankan instans SQL Server yang dikelola sendiri, mengekstrak file tersebut, lalu memulihkan database.
Prasyarat
Pastikan Anda memiliki file cadangan fisik lengkap dari instans ApsaraDB RDS for SQL Server Anda.
Anda juga dapat menggunakan Data Transmission Service (DTS) untuk memigrasikan file cadangan fisik atau Snapshot. Di DTS, konfigurasikan ApsaraDB RDS for SQL Server sebagai sumber dan instans SQL Server yang dikelola sendiri sebagai tujuan.
Prosedur
-
Unduh file cadangan fisik penuh dan inkremental dari instans ApsaraDB RDS for SQL Server Anda.
Jika server tujuan dapat mengakses instans sumber, Anda juga dapat mengunduh file cadangan menggunakan perintah
wget "URL". Ganti "URL" dengan URL unduhan file cadangan. -
Unggah file cadangan yang telah diunduh ke server yang menjalankan instans SQL Server yang dikelola sendiri, lalu ekstrak file cadangan penuh dan inkremental tersebut.
CatatanSetelah diekstrak, file cadangan penuh dan inkremental memiliki nama file yang sama. Untuk memudahkan pemeliharaan, kami menyarankan agar Anda mengganti nama file dalam format
<Nama database>_<Metode cadangan>_<Tanggal>. Contohnya:-
testdb_datafull_201901071320.bak, di manadatafullmenunjukkan cadangan penuh. -
testdb_datadiff_201901071330.bak, di manadatadiffmenunjukkan cadangan inkremental.
-
-
Catat jalur file cadangan penuh dan inkremental yang telah diekstrak. Topik ini menggunakan jalur berikut sebagai contoh:
-
Jalur file cadangan penuh:
/tmp/testdb_datafull_201901071320.bak -
Jalur file cadangan inkremental:
/tmp/testdb_datadiff_201901071330.bak
-
-
Login ke instans SQL Server yang dikelola sendiri dan jalankan pernyataan berikut untuk mengkueri nama file logis dalam file cadangan:
RESTORE FILELISTONLY FROM DISK='/tmp/testdb_datafull_201901071320.bak'; GOHasil kueri menunjukkan bahwa nama file logis untuk file data adalah 'testdb' dan nama file logis untuk file log adalah 'testdb_log'.
-
Pulihkan database dari file cadangan penuh dan tentukan lokasi penyimpanan untuk file data dan file log.
PentingJika Anda perlu memulihkan cadangan inkremental, lanjutkan ke Langkah 6. Jika hanya memulihkan cadangan penuh, lewati ke Langkah 7.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datafull_201901071320.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOSetelah menjalankan pernyataan ini, database testdb berada dalam status restoring.
Catatan-
/var/opt/mssql/data/testdb.mdfadalah jalur file data, dantestdb.mdfadalah nama file logis file data. -
/var/opt/mssql/data/testdb_log.ldfadalah jalur file log, dantestdb_log.ldfadalah nama file logis file log.
Anda dapat melihat jalur file data dan file log di bagian pada database tujuan.
-
-
(Opsional) Pulihkan database dari file cadangan inkremental dan tentukan lokasi penyimpanan untuk file data dan file log.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datadiff_201901071330.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOSetelah menjalankan pernyataan ini, database testdb berada dalam status restoring.
-
Jalankan pernyataan berikut untuk memulihkan database dan membawanya online.
RESTORE DATABASE testdb WITH RECOVERY; GO