
想像一下,你要把家裡一整棟圖書館的書,全部搬到遠在天邊的微軟雲端資料庫。如果你用錯方法,就像是用筷子一粒一粒夾米一樣,天黑了都搬不完。
以下是常見的幾種搬家方法與速度大比拼:
第一名: sqlpackage 工具( BACPAC 格式)
速度是三顆星!這是官方推薦的最速傳說。它會把你的資料庫打包成一個特製的壓縮檔,然後用高鐵般的速度直接倒進雲端,非常適合追求效率的人。
第二名: Python 腳本
速度只有兩顆星。這就像是你雇用了一個排版工人,他必須一頁一頁看懂你的書,再抄寫到雲端上。因為多了解析文字的時間,所以速度慢了一截。
第三名: 透過網頁( Azure Portal )匯入
速度同樣是兩顆星。這個方法的缺點是,你得先自己把大行李箱扛到雲端的置物櫃放好,雲端系統才肯幫你處理,多了一道手續。
第四名: 使用微軟資料庫管理軟體( SSMS )直接發佈
速度只有可憐的一顆星。雖然動動滑鼠就能搞定,但它只適合資料量極少、一輩子只想搬一次家的新手。
如果你想用最快的第一名方法,只需要簡單的兩個步驟:
步驟一:在自己的電腦輸入這行指令,把資料庫打包成一個叫做 portal.bacpac 的行李箱。
sqlpackage /Action:Export `
/SourceServerName:"10.113.82.1,1733" `
/SourceDatabaseName:"portal" `
/SourceUser:"<user>" `
/SourcePassword:"<pass>" `
/TargetFile:"portal.bacpac"
步驟二:在雲端的虛擬機器上輸入這行指令,把行李箱拆開並倒進雲端資料庫。
sqlpackage /Action:Import \
/TargetServerName:"itsc-sqlsvr.database.windows.net" \
/TargetDatabaseName:"portal-stg" \
/TargetUser:"" \
/SourceFile:"portal.bacpac" \
/p:DatabaseEdition=GeneralPurpose \
/AccessToken:"$(az account get-access-token --resource https://database.windows.net --query accessToken -o tsv)"
最棒的是,第二步在雲端執行時,使用特別的通行證就可以直接開門,連帳號密碼都不用輸入,安全又省事。
