2015年5月25日 星期一

[Azure][SSMS] 使用SQL Server Management Studio 2014 將資料庫移轉至Azure SQL Database

紀錄如何使用SQL Server Management Studio(SSMS) 2014將資料移轉至Azure資料庫


  • 呼叫匯入匯出精靈
連線至本機資料庫後,在資料庫名稱上按右鍵,點擊[工作],點選[匯出資料]


看到歡迎畫面後,即可點擊[下一步]


  • 連線資料來源與目的
連線本地資料庫,資料來源請選擇SQL Server Native Client 11.0,選取你的伺服器名稱,鍵入帳密,選好資料庫,點擊[下一步]


目的地請選取.Net Framework Data Provider for SqlServerEncryptTrustServerCertificate選取True,鍵入使用者帳號及密碼,在DataSource填上資料庫伺服器名稱,Initial Catalog則是 azure上的資料庫名稱


上一步驟按下一步後,如果發生以下錯誤,表示你在Azure平台上未開啟防火牆允許目前IP連線


請至Auzre的資料庫管理畫面,點擊[為這個IP位址設定Microsoft Azure防火牆規則],將目前IP加入即可


  • 設定資料表對應與欄位對應並完成執行
資料來源與目的地連線成功後,我們選取[從一個或多個資料表或檢視表複製資料表]


檢查來源與目的資料表,我們使用預設設定,目的地的資料表圖示與來源的不同,因為Azure上的資料庫是空的,精靈會為我們建資料表


檢查資料類型對應,這邊不動,使用預設值


預設勾選立即執行,點擊下一步


點擊完成,就執行匯出動作了


  • 匯入失敗,需設Clustered Index
事情總是沒那麼順利,匯出失敗,點擊訊息查看


錯誤上說因為Azure上的資料表沒有Clustered Index,所以無法插入資料。因為Microsoft Azure SQL Database 要求所有資料表都有叢集索引,而本地端的資料表我只有設定主鍵,並未設定clustered index,才會造成失敗


至Azure上,點擊[設計您的SQL資料庫]


登入資料庫伺服器的帳號與密碼


點選[編輯]


勾選[在主索引鍵中嗎?],並點擊[儲存]


  • 再次呼叫匯入匯出精靈,進行資料匯出
請關閉目前的匯入匯出精靈(點擊上一步回到最開頭,精靈並不會重新抓取資料庫的改變),重新呼叫匯入匯出精靈,目的地的資料表圖示,已與來源的相同


這次就可以順利匯出資料至Azure資料庫


亦可登入Azure平台,雙重檢查資料是否已匯入資料表


希望對要匯入資料至azure資料庫的人提供一點幫助

參考:使用匯入和匯出精靈將資料庫移轉至 Azure SQL Database