這幾天為了解決資料庫的備份以及出現問題能夠在最快的時間內恢復的問題,用到了sql server 2005的資料庫映象功能,參考了園子裡一些文章,在區域網測試成功後就在伺服器上實施了。
資料庫映象不一定要在域環境中實施, 由於伺服器限制我沒有用見證伺服器,認證方式採用證書認證,據說採用證書認證是最容易成功的一種方式。
主機、映象分別master key。
主機執行:
usemaster
;create
master
keyencryption
bypassword
='password'
;create
certificate host_a_cert with
subject
='host_a certificate'
,start_date
='01/01/2008'
;映象執行:
usemaster
;create
master
keyencryption
bypassword
='password'
;create
certificate host_b_cert with
subject
='host_b certificate'
,start_date
='01/01/2008'
;這個master key對於每個sql server例項唯一的,如果資料庫中已經建立了master key,可以用如下的sql刪除之後重新執行:
drop
master
key主機、映象分別建立endpoint
主機執行:
create
endpoint endpoint_mirroring
state
=started
astcp
(listener_port
=5022 ,
listener_ip
=all
)for
database_mirroring
(authentication
=certificate host_a_cert ,
encryption
=required algorithm aes ,
role
=all
);映象執行:
create
endpoint endpoint_mirroring
state
=started
astcp
(listener_port
=5022 ,
listener_ip
=all
)for
database_mirroring
(authentication
=certificate host_b_cert ,
encryption
=required algorithm aes ,
role
=all
);endpoint 貌似也是唯一的,如果已經提示錯誤如沒有許可權之類的,可以先刪除建立過的endpoint(如果你用圖形介面建立過映象則endpoint的名稱預設為"映象")
drop
endpoint
映象備份證書,將主機和映象的證書互換
主機執行
backup
certificate host_a_cert to
file
='d:\host_a_cert.cer'
;映象執行
backup
certificate host_b_cert to
file
='d:\host_b_cert.cer'
;將備份好的證書檔案相互copy
同步login
主機執行
create
login host_b_login with
password
='password'
;create
user host_b_user for
login host_b_login;
create
certificate host_b_cert authorization host_b_user from
file
='d:\host_b_cert.cer'
;grant connect on
endpoint
::endpoint_mirroring to [host_b_login];
映象執行
create
login host_a_login with
password
='password'
;create
user host_a_user for
login host_a_login;
create
certificate host_a_cert authorization host_a_user from
file
='d:\host_a_cert.cer'
;grant connect on
endpoint
::endpoint_mirroring to [host_a_login];
經過以上步驟,兩個sql server 例項的準備工作就差不多了,加入我們要同步的資料庫為billing。
首先將主機上的billing資料庫完整備份,在映象機上建立同名資料庫,用主機的備份還原(選擇覆蓋現有資料庫以及restor with norecovery),還原後資料庫的狀態為"正在還原"。
將主機的billing資料庫的事務日誌備份,同樣在映象機上還原。
下面我們就要開始執行映象的同步了,
映象執行
alter
database billing set
partner
='tcp://
主機ip:5022'
;主機執行
alter
database billing set
partner
='tcp://
映象ip:5022'
;如遇錯誤,首先保證防火牆等是否將相關埠遮蔽,sql server是否允許遠端連線等,如果還是沒有解決問題,如提示'tcp://映象ip:5022'無法訪問,
那麼————————————"重啟"!
完成後主機資料庫顯示"主題-已同步",映象顯示"映象-已同步/正在還原"。
也許你還會用到如下語句:
關閉映象
alter
database billing set
partner
off在主機執行一下sql切換主機和映象
usemaster
goalter
database billing set
partner
failover
go
SQL SERVER2005映象服務配置
a 我們這裡使用windows賬號認證,需要設定主體和映象的資料庫啟動賬號密碼為相同。b 配置映象服務 需要在主體和映象伺服器設定 create endpoint db mirror authorization sa state started as tcp listener port 5022,l...
SQL Server 2005資料庫映象簡介
sql server 2005資料庫映象簡介 自從sql server 2000以來,你已經能夠通過使用複製來建立乙個備用的伺服器 傳輸日誌,以及備份和重新儲存了 但是現在微軟又引入了乙個內建的工具,它可以實現自動的錯誤恢復。資料庫映象是sql server 2005的乙個新特性,它允許你將乙個sq...
SQLSERVER2005刪除資料庫映象
sqlserver2005刪除資料庫映象,其實這之前有個很詭異的問題.在資料庫映象斷開後,如何從新建立映象的連線呢?alter database hrmis set partner off?然後再行操作?嘗試後再來結貼。不過這裡要說的是當sqlserver2005映象斷開連線後如何刪除映象的問題,如...