上船容易——從阿裏雲遷移SQL數據庫到Azure雲的嘗試 之一
??? 有個朋友之前把應用搬到了阿裏雲,數據庫也搬上去了,用的RDS(別問我為啥這名字和AWS一樣哦)。最近這朋友忽然想把架構遷移到Azure上,於是問我是不是能遷移。應用有Java和.Net的,數據庫有MySQL和SQL Server,前面的都不是事兒,到了SQL Server這兒,有點麻煩了。
??? 朋友的數據庫挺大,而且業務在線,所以常規的導出導入,備份恢復和虛機遷移都會有停機時間。而且阿裏的數據庫,跑的是SQL 2008 R2…Always On是哪個版本出來的?我第一想到的是,使用分發/訂閱的方式來做平滑復制。
??? 上網一搜,微軟有個SQL Server 到Azure SQL的數據遷移工具DMA,趕緊下了一個想看看。雖然說的是SQL Server到Azure SQL,嘗試連接阿裏的RDS還是可以的,不過一跑向導就立刻報錯了~
? ??
??? 啥?系統數據庫沒法select?
? ??
??? 我趕緊下了個SSMS,準備看看登錄的賬號是不是有權限,結果:
? ??
? ??
??? 原來,RDS是切了一個SQL上的Instance給租戶使用,我猜為了避免租戶通過系統數據庫操作和獲取信息,阿裏簡單粗暴的把這些數據庫的權限都給Deny了。
??? 更別說期待RDS提供分發、跑SQL Agent服務了……
??? 那麽,Azure SQL是不是也是這樣的呢?好奇心來了,看了看最低配的每月5.99刀,起一個看看~
? ??
??? 從連接的數據庫看,Azure SQL對組件做了更精細的劃分,很多組件變得不可見了。但是,系統數據庫還是可以訪問的。我猜,應該對數據庫的表做了權限限制,但至少遷移需要的讀取權限還是有的。可能關鍵表的行說不定也做了權限控制,未進行測試驗證。
???? 為什麽有以上“遷移需要的讀取權限還是有的”的結論呢?因為我用SSMS 2017從Azure SQL遷了一個數據庫到它本身~遷移過程沒有問題。
? ??
?? 為啥我說阿裏RDS是一個數據庫上的一個實例呢?因為SSMS說的,哈哈
? ??
? ? 這事兒還沒完。欲知後事,且聽下回。
上船容易——從阿裏雲遷移SQL數據庫到Azure雲的嘗試 之一