遷移RDS SQL Server數(shù)據(jù)到本地SQL Server
RDS SQL Server支持通過物理備份文件將云上的數(shù)據(jù)遷移到本地?cái)?shù)據(jù)庫。
除了本文介紹的遷移方法外,您還可以使用數(shù)據(jù)傳輸服務(wù)DTS(Data Transmission Service),將RDS SQL Server數(shù)據(jù)遷移至自建SQL Server。
操作步驟
下載RDS SQL Server的全量和增量物理備份文件,并上傳至自建SQL Server所在的服務(wù)器。備份文件獲取方法,請(qǐng)參見下載備份。
如果目標(biāo)服務(wù)器可以訪問源實(shí)例,您也可以使用
wget "URL"
下載備份文件。其中URL為備份文件下載地址。下載完成后,解壓全量物理備份文件和增量物理備份文件。
說明由于解壓后的全量和增量文件名相同,建議按數(shù)據(jù)庫名+備份方式+日期的規(guī)則進(jìn)行重命名,方便后續(xù)維護(hù),例如:
testdb_datafull_201901071320.bak,datafull表示全量備份。
testdb_datadiff_201901071330.bak,datadiff表示增量備份。
獲取解壓后的全量備份文件和增量備份文件,本例以如下路徑為例:
全量備份文件存放路徑:/tmp/testdb_datafull_201901071320.bak
增量備份文件存放路徑:/tmp/testdb_datadiff_201901071330.bak
登錄本地SQL Server數(shù)據(jù)庫,通過備份文件查詢?cè)茢?shù)據(jù)庫的文件邏輯名。
restore filelistonly from disk='/tmp/testdb_datafull_201901071320.bak' go
系統(tǒng)顯示如下,紅框中為數(shù)據(jù)文件邏輯名testdb和日志文件邏輯名testdb_log。
將數(shù)據(jù)庫從全量備份文件中恢復(fù),并指定數(shù)據(jù)文件和日志文件的存儲(chǔ)位置。
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'; GO
說明/var/opt/mssql/data/testdb.mdf為數(shù)據(jù)文件地址,testdb.mdf為數(shù)據(jù)文件邏輯名。
/var/opt/mssql/data/testdb_log.ldf為日志文件地址,testdb_log.ldf為日志文件邏輯名。
您可在目標(biāo)數(shù)據(jù)庫的
中可以查看到數(shù)據(jù)文件和日志文件的地址。執(zhí)行完成后,數(shù)據(jù)庫testdb將顯示正在還原狀態(tài)。
說明如果只需恢復(fù)全量備份數(shù)據(jù),請(qǐng)直接跳至步驟7。如果還需要恢復(fù)增量備份數(shù)據(jù),請(qǐng)執(zhí)行步驟6。
將數(shù)據(jù)庫從增量備份文件中恢復(fù),并指定數(shù)據(jù)文件和日志文件的存儲(chǔ)位置。
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'; GO
執(zhí)行完成后,數(shù)據(jù)庫testdb將顯示正在還原狀態(tài)。
執(zhí)行以下命令,將數(shù)據(jù)庫恢復(fù)為可用狀態(tài)。
RESTORE DATABASE testdb WITH RECOVERY; GO