閱讀472 返回首頁    go 魔獸


使用 DTS 遷移 SQL Server 數據__遷移數據_快速入門(SQL Server)_雲數據庫 RDS 版-阿裏雲

使用數據傳輸服務 (DTS) 將本地數據庫遷移到 RDS for SQL Server,可以實現應用不停服務的情況下,平滑完成數據庫的遷移工作。

背景信息

DTS 支持 SQL Server 數據結構遷移和全量遷移。

  • 結構遷移

    DTS 會將本地數據庫的結構定義遷移到目標實例。目前DTS支持結構遷移的對象有:表、視圖、表觸發器、同義詞、SQL 存儲過程、SQL 函數、自定義類型、plan guid、rule、default。

  • 全量遷移

    DTS 會將本地數據庫遷移對象的數據全部遷移到目標實例。如果在遷移過程中有增量更新的話,這些增量不會被遷移到目標庫。所以建議在業務無寫入時,使用 DTS 進行全量數據遷移。

遷移限製

將本地數據庫遷移到 RDS 上有以下限製:

  • 遷移過程中,不支持 DDL 操作
  • 結構遷移不支持 assemblies、庫級存儲過程、service broker、全文索引、全文目錄、分布式 schema、分布式函數、CLR 標量函數、CLR 標值函數、內部表、聚合函數和係統的遷移
  • 如果使用了對象名映射功能後,依賴這個對象的其他對象可能遷移失敗

前提條件

已完成 RDS 實例數據庫的準備,可參見 設置連接模式創建數據庫和賬號

操作步驟

本例以有公網 IP 的本地數據庫遷移到 RDS 上為例。

準備本地數據

在正式遷移之前,需要先在本地數據庫和RDS實例中創建遷移賬號,並在RDS實例中創建要遷移的數據庫,並將要遷移的數據庫的讀寫權限授權給遷移賬號。不同的遷移類型需要不同的權限,如下表所示。

遷移類型 結構遷移 全量遷移
本地數據庫 select select
RDS 實例 讀寫權限 讀寫權限
  1. 在本地數據庫中創建遷移賬號。

    1. create login username with password='password', default_database=mydb;
    2. go
    3. create user username for login username with default_schema=dbo;
    4. go

    參數說明:

    • username:要創建的賬號
    • password:該賬號的登錄密碼
    • mydb:默認連接的數據庫
    • dbo:默認的數據表

    例:要創建賬號為 William,密碼為 Changme123 的賬號訪問數據 mydb 的數據表 dbo,命令如下:

    1. create login William with password='Changme123', default_database=mydb;
    2. go
    3. create user William for login William with default_schema=dbo;
    4. go
  2. 在本地數據庫中給遷移賬號授權,本地數據庫中遷移賬號的權限要求請參見上表。

    1. GRANT privileges ON tablename TO username WITH GRANT OPTION;

    參數說明:

    • privileges:該賬號的操作權限,如 SELECT、INSERT、UPDATE 等。如果要授權該賬號所有權限,則使用 ALL
    • tablename:表名。如果要授權該賬號所有的表權限,則使用通配符 *
    • username:要授權的賬號名
    • WITH GRANT OPTION:授權該賬號能使用GRANT命令,該參數為可選

    例:授權賬號 William 對所有數據庫和表的所有權限,命令如下:

    1. GRANT ALL ON * TO William;

正式遷移操作

  1. RDS 管理控製台 上單擊 遷移數據庫,進入DTS,如下圖所示。

    DTS

  2. 單擊 創建在線遷移任務,進入 創建遷移任務 頁麵,如下圖所示。

    創建遷移任務

  3. 輸入任務名稱、本地數據庫信息和目標數據庫信息,單擊 授權白名單並進入下一步,如下圖所示。

    填寫遷移任務信息

    • 任務名稱:自定義任務名稱,可以保持默認值
    • 源庫信息
      • 實例類型:本地數據庫的實例類型,可以選擇 有公網 IP 的自建數據庫ECS 上的自建數據庫RDS 實例雲數據庫 MongoDB
      • 數據庫類型:本地數據庫的類型,可以選擇 OracleMySQLSQLServerPostgreSQLMongoDB
      • 主機名或IP地址:本地數據庫的公網地址
      • 端口:本地數據庫的公網端口
      • 賬號:本地數據庫的遷移賬號
      • 密碼:本地數據庫遷移賬號對應的密碼
    • 目標庫信息
      • 實例類型:默認為 RDS 實例
      • RDS實例ID:目標 RDS 實例的 ID。點擊下拉菜單將自動聯想當前登錄管理控製台的賬號的 RDS 實例,點擊選擇所需要的實例
      • 數據庫名稱:要遷移到目標數據庫的名稱
      • 賬號:目標 RDS 數據庫的遷移賬號
      • 密碼:目標 RDS 數據庫遷移賬號對應的密碼
  4. 擇遷移類型,並在 遷移對象 中選擇要遷移的對象,單擊 > 將要遷移的對象放入 已選擇 中,單擊 預檢查並啟動,如下圖所示。

    注意

    • 數據遷移隻會將本地數據庫的數據(結構)複製一份到目標數據庫,並不會對本地數據庫數據(結構)造成影響
    • 數據遷移過程中,不支持DDL操作,如進行DDL操作可能導致遷移失敗
    • DTS增量遷移的時間最長支持15天,如果超過15天不停止任務,係統資源可能被回收

    選擇遷移類型及對象

    如果要修改遷移對象在目標數據庫上的名字,可以在 已選擇 列表右側單擊 編輯 ,修改已選擇的對象名稱,如上圖中4所示。

    說明: 以下以預檢查不通過為例進行描述,如果預檢查通過,請直接參見步驟 8。

  5. 係統顯示預檢查結果,如下圖所示。

    檢查不通過

  6. 單擊 檢測結果失敗 的檢測項後的 !,查看失敗詳細信息,根據失敗詳細信息完成錯誤排查。

  7. 錯誤排查完畢後,在 遷移任務列表 頁麵,選擇當前遷移任務,單擊 啟動,如下圖所示。

    啟動遷移任務

  8. 係統預檢查通過後,單擊 確定,自動進行遷移任務,如下圖所示。

    檢查通過

後續操作

為了保證本地數據庫安全,請在數據遷移完成後,刪除本地數據庫和 RDS 實例中的遷移賬號。

最後更新:2016-11-28 15:11:23

  上一篇:go 創建數據庫和帳號(SQL Server 2012)__設置實例基礎配置_快速入門(SQL Server)_雲數據庫 RDS 版-阿裏雲
  下一篇:go 使用 FTP 遷移 SQL Server 數據__遷移數據_快速入門(SQL Server)_雲數據庫 RDS 版-阿裏雲