上船容易——從阿里雲遷移SQL數據庫到Azure雲的嘗試 之一

開始之前先說我的情況,SQL 2000的DBA,之後沒怎麼搞過SQL。所以以下寫的內容如果有錯誤,請DBA大拿不要笑噴~

    有個朋友之前把應用搬到了阿里雲,數據庫也搬上去了,用的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還是可以的,不過一跑嚮導就立刻報錯了~

    image_thumb[7]

    啥?系統數據庫沒法select?

    image_thumb[3]

    我趕緊下了個SSMS,準備看看登錄的賬號是不是有權限,結果:

    clip_image001_thumb[2]

    clip_image001[6]_thumb[2]

    原來,RDS是切了一個SQL上的Instance給租戶使用,我猜爲了避免租戶通過系統數據庫操作和獲取信息,阿里簡單粗暴的把這些數據庫的權限都給Deny了。

    更別說期待RDS提供分發、跑SQL Agent服務了……

    那麼,Azure SQL是不是也是這樣的呢?好奇心來了,看了看最低配的每月5.99刀,起一個看看~

    image_thumb[9]

    從連接的數據庫看,Azure SQL對組件做了更精細的劃分,很多組件變得不可見了。但是,系統數據庫還是可以訪問的。我猜,應該對數據庫的表做了權限限制,但至少遷移需要的讀取權限還是有的。可能關鍵表的行說不定也做了權限控制,未進行測試驗證。

     爲什麼有以上“遷移需要的讀取權限還是有的”的結論呢?因爲我用SSMS 2017從Azure SQL遷了一個數據庫到它本身~遷移過程沒有問題。

    image_thumb[12]

   爲啥我說阿里RDS是一個數據庫上的一個實例呢?因爲SSMS說的,哈哈

    image_thumb[15]

    這事兒還沒完。欲知後事,且聽下回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章