SQL Server 2012中的Contained Database嘗試


簡介

    SQL Server 2012新增的Contained Database是為了解決數據庫在不同SQL Server實例之間遷移的問題。在以往的情況下,數據庫本身並不包含一些實例級別的配置參數(比如:數據庫的一些metadata和登錄名之類的)將數據庫從一台服務器遷移到另一台服務器使用備份和恢復(或分離和附加)使得需要額外工作來設置這些數據庫實例級別的metadata,而使用Contained Database,可以將這類信息包含在數據庫中,從而大大減少這類工作的工作量。

    下面我們從配置Contained Database開始。

 

配置Contained Database

    在開始使用Contained Database之前,首先要通過Sp_config或SSMS來配置實例級別的參數開啟Contained Database.如代碼1和圖1所示。

--開啟允許配置Contained database
sp_configure 'show advanced options',1 reconfigure
go 
sp_configure 'contained database authentication',1 reconfigure 
go

   代碼1.通過sp_configure開啟Contained Database

 

    1   

    圖1.通過SSMS開啟Contained Database

 

    在實例級別開啟允許使用Contained Database后,通過對希望變為Contained Database的數據庫在SSMS中進行設置。如圖2所示。

    2

    圖2.Contained Database在數據庫級別的設置

 

    下面我們在數據庫級別設置用戶,如圖3所示.

    3

    圖3.在數據庫級別添加用戶

 

   同時我們為用戶在成員身份中指定到db_owner組。現在,我們就能通過SSMS連接到這個Contained Database了。如圖4所示。

    4

    圖4.使用剛剛在數據庫級別創建的用戶進行登錄

   

    用我們剛剛創建的用戶登錄,在選項中指定連接數據庫為剛才設置為Contained Database的數據庫,如圖5所示。

    5

    圖5.指定設置為Contained Database的數據庫(Test數據庫)

 

     連接成功后,我們可以看到,作為數據庫級別設置的用戶,是無法訪問實例中的其它數據庫的。而在圖6中我們可以看到,實例不不包含剛剛創建的登錄名的,而是包含在數據庫級別。

     6

     圖6.兩種連接方式對比

 

備份和恢復Contained Database

     當然,Contained Database最大的作用是在備份和恢復時的便利性。下面,我們將剛才的Contained Database進行備份,然后在另一個實例中進行恢復。如圖7和圖8所示。

    b1

    圖7.備份數據庫

 

    b2

    圖8.在另一個實例中恢復數據庫

 

    這里要注意的是,在另一個實例必須也是sql server 2012並且在實例級別開啟了”啟用包含數據庫”選項。我們嘗試登錄另一台服務器后,可以看到Contained Database,如圖9所示。

   9

 

總結

    本文簡單講述了Contained Database,使用Contained Database大大減少數據庫在實例之間的遷移工作。但Contained Database真正的強大之處是和AlwaysOn結合使用,我將在后續文章中講到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM