[SQL SERVER]SQL2016-Stretch Database

SQL Server 2016可安全又便利,將特定資料表延展到Azure Cloud。

Stretch Databases是SQL Server 2016中一項新功能,

你可以選擇某些資料表延展到Azure Cloud,

特別是那些龐大的歷史資料,或是使用者很少查詢資料都很適合,

現在我們來看看如何啟用Stretch Databases。

use master
-- Enable stretch database at the instance level
exec sp_configure 'remote data archive', '1';
GO
RECONFIGURE
GO

1選擇要啟用延展的資料庫

2選擇資料表

可自訂資料篩選條件和資料表名稱

3登入Azure

4設定IP

延展資料庫圖示改變如下

 

如何監控

1透過SSMS2016

2使用sys.dm_db_rda_migration_status

SELECT *
FROM sys.dm_db_rda_migration_status
WHERE table_id = OBJECT_ID('Warehouse.StockItems_Archive')
AND database_id = DB_ID()

查詢有那些延展資料庫、資料表

select name
from master.sys.databases
where is_remote_data_archive_enabled = 1

select object_id,name
, is_remote_data_archive_enabled
from sys.tables 
where is_remote_data_archive_enabled = 1

 

修改資料表、資料表延展狀態

--SQL SERVER資料延展至Azure
alter table Warehouse.StockItems_Archive
   set ( REMOTE_DATA_ARCHIVE ( MIGRATION_STATE = outbound ) ) ; 

--遠端資料從 Azure複製回 SQL Server
alter table Warehouse.StockItems_Archive
   set ( REMOTE_DATA_ARCHIVE ( MIGRATION_STATE = INBOUND ) ) ; 

--暫停延展
alter table Warehouse.StockItems_Archive
   set ( REMOTE_DATA_ARCHIVE ( MIGRATION_STATE = paused ) ) ;

--資料表停用 Stretch 並放棄遠端資料
alter table Warehouse.StockItems_Archive
   SET ( REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY ( MIGRATION_STATE = PAUSED ) ) ;
--停用 Stretch
alter table Warehouse.StockItems_Archive set (REMOTE_DATA_ARCHIVE = ON(MIGRATION_STATE=INBOUND));
Note:將資料表的遠端資料從 Azure 複製回 SQL Server 會產生資料傳輸成本。

--資料庫停用 Stretch Database
ALTER DATABASE WideWorldImporters
    SET REMOTE_DATA_ARCHIVE = OFF ;  
GO
Note:必須先停用所有延展資料表。
Cannot disable REMOTE_DATA_ARCHIVE because the database contains at least one table having REMOTE_DATA_ARCHIVE enabled.

 

結論

目前Stretch Database還是有一些限制,例如你無法更新、刪除已經移轉或可進行移轉資料,

同時篩選索引也不會傳播到Azure DB…等。但如果你有一些龐大資料表,

這些資料表又很少使用的話,那麼可以延展至Azure DB,

一來可以減少復原時間也可減少資料庫大小,二來也可以節省儲存成本。

Enjoy SQL Server 2016

 

參考

Stretch Database

Disable Stretch Database and bring back remote data

Limitations for Stretch Database

SQL SERVER 2016 – How to Use SQL Server 2016 – Stretch Database – Notes from the Field #127

SQL Server 2016 Stretch Database

SQL Server 2016 – Introduction to Stretch Database