SQL 2016 Stretch database-1

之前我們談過時的備份媒體(磁帶)的挑戰,也介紹了目前有哪些的主流解決方案。本篇將介紹另一種雲地共存的混合方案,在完全不需擴充既有資料庫的條件下,同時滿足二種不同需求的資料使用者。例如在會計事務所到企業內稽核時,不需要額外找機器來還原歷史資料,只需使用Stretch database功能,為會計事務所的稽核員開好帳號與限縮好他能存取的範圍,省時又省力。

 

要實作 StretchDB 延展資料庫功能有三個前題:
1.要事先準備好Azure account
2.SQL Server要設定 tcp 1433 的 inbound firewall
3.Azure SQL database的ACL要設定,地端SQL Server的IP range


本篇主要是以介紹 StretchDB Wizard為主,並佐以AdventureWorks 2016 CTP3 的微軟範例資料庫為例,若想要進階使用T-SQL指令請參考另一篇
一開始裡面有二個既有的Table Transaction與TransactionHistory,但是基於延展的限制(例如不能有 Constraints(Check or Default or Foreign key...), Replicated table, Memory-optimized table(in-meomry), Spatial indexes...) 細節請參考官網,我故意把二個資列表合併至 TransactionHistoryNew 整個Table總共202696筆,[TransactionDate]資料分佈為2011~2014

select * into Production.TransactionHistoryNew from Production.TransactionHistoryArchive

insert into Production.TransactionHistoryNew select * from Production.TransactionHistory

exec sp_spaceused N'Production.TransactionHistoryNew'

透過SSMS的精靈,選到TransactionHistoryNew指定的Table,開始執行Stretch DB作業(Enable)
系統會自動喚起精靈協助我們,看完歡迎畫面,按下下一步
選取標地Table,若是不符合延展資料庫的條件,會呈現"禁止"的符號
至於 Hot/Cold data的設計規劃當你選 Entire Table時,只會將資料全部移到雲端,並沒有發揮這個產品冷熱資料分流的混合雲優勢,所以可以利用精靈協助我們在 Filter function的撰寫。以本例資料的特性是分佈2011~2014的時間,我只留近期 2014(四分之一)其他都上雲端。
選擇Azure帳號(需登入)以及Azure SQL Database(含Azure SQL Server)要建立在哪個 Region的數據中心
指定一組新的database master key 密碼
選擇要用什麼方式(固定/IP範圍)連接到地端的資料庫的環境
系統貼心的列出Summary資料,確認後,按下下一步,就開始運行了
系統會顯示,相關的進度與資訊,若都是綠燈就是正常
完成後,DB的Icon已經變了
若不放心,我們可以透過DMV指令了解雲地同步的狀態
也可以透過指令了解雲/地端資料的分佈或筆數
到Azure portal看一下Azure SQL Database的建立狀況
標地資料庫,已經在雲端有了一份(按照自己命名的方式存在雲端)
最後,我們透過執行計畫,證明使用者在不改變使用的方式(一樣的TSQL語法),但是底層的架構,已經變成混合雲了,請注意[Remote Query]指的就是去雲端把資料要回來
至於維運,可以透過SSMS的工具來操作Monitor或是取消Disable
監控畫面

接下來示範,Disable要怎麼做?你可以選擇把資料抄寫回地端,或是把資料拋棄在雲端,視你的需求來選擇
接下來會以要抄寫回地端為例,選擇好,會出現確認畫面
按下確認後就會開始把資料抄寫回地端,完成後會亮綠燈
最後,就是去刪除Azure SQL Database
大功告成!

 

李秉錡 Christian Lee
Once worked at Microsoft Taiwan