RDS SQL Server提供了將本地SQL Server資料庫遷移到阿里雲RDS SQL Server的資料庫上雲方案。您只需將本地SQL Server資料庫的全量備份資料上傳至阿里雲的Object Storage Service服務(OSS),然後通過RDS控制台將全量備份資料移轉至指定RDS SQL Server資料庫中。該方案採用微軟官方的備份恢複方案,可保障相容性。適用於資料備份、遷移和災備恢複等情境。
本方案僅適用於將資料上雲至RDS SQL Server 2008 R2本地碟執行個體中。
如需將資料上雲至RDS SQL Server 2008 R2雲端硬碟、2012及以上版本的執行個體中,請參見全量備份資料上雲(SQL Server 2008 R2雲端硬碟、2012及以上版本)。
前提條件
RDS SQL Server執行個體版本為2008 R2本地碟。
說明RDS SQL Server 2008 R2雲端硬碟執行個體已停止新售。
在RDS SQL Server執行個體中建立與待遷移的資料庫名稱相同的資料庫。具體操作,請參見建立資料庫和帳號。
如果通過RAM使用者登入,則必須滿足以下條件:
RAM帳號具備AliyunOSSFullAccess許可權和AliyunRDSFullAccess許可權。如何為RAM使用者授權,請參見通過RAM對OSS進行許可權管理和通過RAM對RDS進行許可權管理。
阿里雲帳號(主帳號)已授權RDS官方服務帳號可以訪問您OSS的許可權。
所在阿里雲帳號(主帳號)需手動建立權限原則,然後將許可權添加到RAM帳號中。如何建立權限原則,請參見通過指令碼編輯模式建立自訂權限原則。
策略內容如下:
{ "Version": "1", "Statement": [ { "Action": [ "ram:GetRole" ], "Resource": "acs:ram:*:*:role/AliyunRDSImportRole", "Effect": "Allow" } ] }
注意事項
本方案遷移的層級為資料庫,即每次只能遷移一個資料庫上雲。如果需要遷移多個或所有資料庫,建議採用執行個體級的遷移上雲方案。具體詳情,請參見SQL Server執行個體層級遷移上雲。
費用說明
本方案中僅會產生OSS的相關費用,詳情如下圖所示。
情境 | 費用說明 |
將本機資料備份檔案上傳至OSS | 不產生費用。 |
備份檔案儲存在OSS | 會產生OSS的儲存費用,計費詳情請參見OSS定價。 |
將備份檔案從OSS遷移至RDS |
|
步驟一:備份本機資料庫
開啟Microsoft SQL Server Management Studio(SSMS)用戶端。
登入待遷移的資料庫。
執行如下命令,確認來源資料庫當前的復原模式。
USE master; GO SELECT name, CASE recovery_model WHEN 1 THEN 'FULL' WHEN 2 THEN 'BULK_LOGGED' WHEN 3 THEN 'SIMPLE' END model FROM sys.databases WHERE name NOT IN ('master','tempdb','model','msdb'); GO
如果返回結果中的
model
值不為FULL
,請執行步驟4。如果返回結果中的
model
值為FULL
,請執行步驟5。
執行如下命令,將來源資料庫的復原模式設定為
FULL
。ALTER DATABASE [dbname] SET RECOVERY FULL; go ALTER DATABASE [dbname] SET AUTO_CLOSE OFF; go
重要復原模式設定為
FULL
後,會使SQL Server的日誌資訊增多,請確保具備足夠的硬碟空間。執行如下命令,備份來源資料庫。本案例中,將dbtestDatabase Backup至backup.bak檔案中。
USE master; GO BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT; GO
執行如下命令,校正備份檔案的完整性。
USE master GO RESTORE FILELISTONLY FROM DISK = N'D:\backup\backup.bak';
重要如果有結果集返回,代表備份檔案有效。
如果提示錯誤,請重新執行備份操作。
可選:執行如下命令,還原資料庫的復原模式。
重要如果資料庫的復原模式原本就是
FULL
,無需執行本步驟。ALTER DATABASE [dbname] SET RECOVERY SIMPLE; GO
步驟二:上傳備份檔案到OSS
建立儲存空間Bucket。
登入OSS管理主控台。
單擊Bucket列表,然後單擊建立Bucket。
配置如下關鍵參數,其他參數可以保持預設。
重要建立的儲存空間僅用於本次資料上雲,且上雲後不再使用,因此只需配置關鍵參數即可,為避免資料泄露及產生相關費用,上雲完成後請及時刪除。
建立Bucket時請勿開啟資料加密。更多詳情,請參見資料加密。
參數
說明
取值樣本
Bucket 名稱
儲存空間名稱,全域唯一,設定後無法修改。
命名規則:
只能包括小寫字母、數字和短劃線(-)。
必須以小寫字母或者數字開頭和結尾。
長度必須在3~63字元之間。
migratetest
地區
Bucket所屬的地區,如果您通過ECS內網上傳資料至Bucket中,且通過內網將資料恢複至RDS中,則需要三者地區保持一致。
華東1(杭州)
儲存類型
選擇標準儲存。本文上雲操作不支援其他儲存類型的Bucket。
標準儲存
上傳備份檔案到OSS。
說明當RDS執行個體和OSS的Bucket在同一地區時,二者可以通過內網互連,且資料上傳速度更快,並且不會產生外網流量費用。因此,在上傳備份檔案時,建議將檔案上傳至與目標RDS執行個體在同一地區的Bucket上。
本機資料庫備份完成後,需要將備份檔案上傳到您的OSS Bucket中,您可以採用如下方法之一:
設定備份檔案的連結有效時間,並擷取檔案的連結地址。
登入OSS 管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇檔案管理 > 檔案清單。
單擊目標Database Backup檔案的檔案名稱。
在彈出的詳情面板中,將到期時間 (秒)修改為28800秒,即8小時。
重要將備份檔案從OSS遷移至RDS時,需要使用備份檔案的連結地址,如果超過了連結有效時間,將導致資料移轉失敗。
單擊複製檔案URL,擷取檔案的連結地址。
修改擷取到的資料備份檔案連結地址。
預設擷取的是檔案的外網串連地址,如需通過內網遷移資料,您需要將檔案連結地址中的Endpoint改成內網Endpoint。
例如,備份檔案的連結地址為
http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP****
,您需要將連結地址中的oss-cn-shanghai.aliyuncs.com
修改為oss-cn-shanghai-internal.aliyuncs.com
。重要不同的網路類型、不同地區所對應的內網Endpoint不同。具體詳情,請參見訪問網域名稱和資料中心。
步驟三:將備份檔案從OSS遷移至RDS
- 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列,單擊資料庫管理。
找到目標資料庫,單擊操作列的從OSS上的備份檔案遷入。
在資料匯入嚮導對話方塊中,閱讀提示內容,單擊下一步。
閱讀OSS上傳的相關提示內容,單擊下一步。
在備份檔案OSS URL欄中填寫備份檔案在OSS的連結地址,單擊確定。
說明RDS SQL Server 2008 R2本地碟執行個體當前僅支援將全量備份檔案一次性遷入雲上的方案。
步驟四:查看資料上雲進度
您可以在左側導覽列,單擊資料上雲,然後找到目標遷移任務來查看資料移轉的進度。
如果任務狀態顯示為失敗,請查看任務描述或單擊目標遷移任務後面的查看檔案詳情,確認任務失敗的原因並修複,然後重新執行資料移轉。
相關API
API | 描述 |
將OSS上的備份檔案還原到RDS SQL Server執行個體,建立資料上雲任務。 | |
開啟RDS SQL Server備份資料上雲任務的資料庫。 | |
查詢RDS SQL Server執行個體備份資料上雲工作清單。 | |
查詢RDS SQL Server備份資料上雲任務的檔案詳情。 |