?
可下載附件
/*
**********************主機ANNATROV******************************
*/
/*
數據庫鏡像
主機:ANNATROV
備機:JOHN
見證機:KATE
以上三臺機器均:XP SP3;SQL SERVER 2008 SP1.備機,見證機均為VM虛擬機,主機為本機
由于系統是XP,所以沒有做域.因此采用證書認證方式來連接.所以,如果要用于透明數據加密的請注意.MASTER證書可以共用,需要建的是數據庫證書.
數據庫要能夠互相訪問,不懂的端口的可以把防火墻關掉.
由于數據庫鏡像只對數據庫內數據進行同步,因此主庫上的(msdb)作業,(master)登陸名需要手工同步,以免造成不必要的麻煩.
*/
/*
如果數據庫MASTER有加密碼了,可以刪除.
刪除證書
--SET ENCRYPTION OFF
DROP CERTIFICATE HOST_C_cert --刪除加密的證書,就是加密碼的數據庫證書.
drop MASTER KEY --刪除主密鑰,也就是MASTER的
drop database encryption key
*/
--
創建證書
USE
master;
CREATE
MASTER
KEY
ENCRYPTION
BY
PASSWORD
=
'
OOOooo
'
;
CREATE
CERTIFICATE ANNATROV
WITH
SUBJECT
=
'
ANNATROV
'
,
START_DATE
=
'
2010-07-23
'
;
--
創建鏈接端點
CREATE
ENDPOINT Endpoint_Mirroring
STATE
=
STARTED
AS
TCP ( LISTENER_PORT
=
5022
, LISTENER_IP
=
ALL
)
FOR
DATABASE_MIRRORING
( AUTHENTICATION
=
CERTIFICATE ANNATROV , ENCRYPTION
=
REQUIRED ALGORITHM AES , ROLE
=
ALL
);
--
備份證書,并拷貝證書至各機確保互聯
BACKUP
CERTIFICATE ANNATROV
TO
FILE
=
'
g:\test\ANNATROV.cer
'
;
/*
主機,備機,見證機三機都備份完證書以后,然后再將各自的證書拷貝到其他兩臺機器上,因為下面的添加登陸名創建的賬號需要各自的
證書來驗證.比如主機ANNATROV上,就需要有JOHN,KATE的證書
*/
--
添加登陸名,用戶
--
備機用戶--JOHN
CREATE
LOGIN JOHN
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
JOHN
FOR
LOGIN JOHN;
CREATE
CERTIFICATE JOHN
AUTHORIZATION
JOHN
FROM
FILE
=
'
g:\test\JOHN.cer
'
;
--
證書驗證
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
JOHN
]
;
--
見證機用戶--KATE
CREATE
LOGIN KATE
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
KATE
FOR
LOGIN KATE;
CREATE
CERTIFICATE KATE
AUTHORIZATION
KATE
FROM
FILE
=
'
g:\test\KATE.cer
'
;
--
證書驗證
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
KATE
]
;
/*
--手工同步登陸名,密碼
--鏡像的缺點就是不能同步數據庫用戶名和作業,因為需要手工同這兩項.
--在主機上找出合建名
USE master;
select sid,name from syslogins;
--在備機上創建登陸名
USE master;
exec sp_addlogin
@loginame = 'Data_Syn',
@passwd = '123,./',
@sid = 0x9FD492E8D353394AA8893CE7B0EC1E08;
*/
--
等各主機都執行以上步驟再可以執行以下語句.
--
建立鏡像
ALTER
DATABASE
PpP
SET
PARTNER
=
'
TCP://john:5022
'
--
先在備機執行然后再這個
ALTER
DATABASE
PpP
SET
WITNESS
=
'
TCP://kate:5022
'
--
見證機上不需要執行
/*
*************************備機 JOHN**************************
*/
/*
如果數據庫MASTER有加密碼了,可以刪除.
刪除證書
--SET ENCRYPTION OFF
DROP CERTIFICATE HOST_C_cert --刪除加密的證書,就是加密碼的數據庫證書.
drop MASTER KEY --刪除主密鑰,也就是MASTER的
drop database encryption key
*/
--
創建證書
USE
master;
CREATE
MASTER
KEY
ENCRYPTION
BY
PASSWORD
=
'
OOOooo
'
;
CREATE
CERTIFICATE JOHN
WITH
SUBJECT
=
'
JOHN
'
,
START_DATE
=
'
2010-07-23
'
;
--
-------------------
--
創建點鏈接
CREATE
ENDPOINT Endpoint_Mirroring
STATE
=
STARTED
AS
TCP ( LISTENER_PORT
=
5022
, LISTENER_IP
=
ALL
)
FOR
DATABASE_MIRRORING
( AUTHENTICATION
=
CERTIFICATE JOHN , ENCRYPTION
=
REQUIRED ALGORITHM AES , ROLE
=
ALL
);
--
備份證書,并拷貝證書至各機確?;ヂ?
BACKUP
CERTIFICATE JOHN
TO
FILE
=
'
c:\sqlt\JOHN.cer
'
;
--
添加登陸名,用戶
--
主機用戶--ANNATROV
CREATE
LOGIN ANNATROV
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
ANNATROV
FOR
LOGIN ANNATROV;
CREATE
CERTIFICATE ANNATROV
AUTHORIZATION
ANNATROV
FROM
FILE
=
'
c:\sqlt\ANNATROV.cer
'
;
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
ANNATROV
]
;
--
見證機用戶
CREATE
LOGIN KATE
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
KATE
FOR
LOGIN KATE;
CREATE
CERTIFICATE KATE
AUTHORIZATION
KATE
FROM
FILE
=
'
c:\sqlt\KATE.cer
'
;
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
KATE
]
;
--
在備機上創建登陸名
/*
USE master;
exec sp_addlogin
@loginame = 'Data_Syn',
@passwd = '123,./',
@sid = 0x9FD492E8D353394AA8893CE7B0EC1E08;
*/
--
建立鏡像
ALTER
DATABASE
PpP
SET
PARTNER
=
'
TCP://annatrov:5022
'
--
先在備機執行再在主機執行
/*
**********************見證機 KATE*********************************
*/
/*
如果數據庫MASTER有加密碼了,可以刪除.
刪除證書
--SET ENCRYPTION OFF
DROP CERTIFICATE HOST_C_cert --刪除加密的證書,就是加密碼的數據庫證書.
drop MASTER KEY --刪除主密鑰,也就是MASTER的
drop database encryption key
*/
--
創建證書
USE
master;
CREATE
MASTER
KEY
ENCRYPTION
BY
PASSWORD
=
'
OOOooo
'
;
CREATE
CERTIFICATE KATE
WITH
SUBJECT
=
'
KATE
'
,
START_DATE
=
'
2010-07-23
'
;
--
---------------
--
創建端點鏈接
CREATE
ENDPOINT Endpoint_Mirroring
STATE
=
STARTED
AS
TCP ( LISTENER_PORT
=
5022
, LISTENER_IP
=
ALL
)
FOR
DATABASE_MIRRORING
( AUTHENTICATION
=
CERTIFICATE KATE , ENCRYPTION
=
REQUIRED ALGORITHM AES , ROLE
=
ALL
);
--
備份證書,并拷貝證書至各機確?;ヂ?
BACKUP
CERTIFICATE KATE
TO
FILE
=
'
c:\sqlt\KATE.cer
'
;
--
添加登陸名,用戶
--
主機登陸用戶
CREATE
LOGIN ANNATROV
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
ANNATROV
FOR
LOGIN ANNATROV;
CREATE
CERTIFICATE ANNATROV
AUTHORIZATION
ANNATROV
FROM
FILE
=
'
c:\sqlt\ANNATROV.cer
'
;
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
ANNATROV
]
;
--
備機登陸用戶
CREATE
LOGIN JOHN
WITH
PASSWORD
=
'
123456
'
;
CREATE
USER
JOHN
FOR
LOGIN JOHN;
CREATE
CERTIFICATE JOHN
AUTHORIZATION
JOHN
FROM
FILE
=
'
c:\sqlt\JOHN.cer
'
;
GRANT
CONNECT
ON
ENDPOINT::Endpoint_Mirroring
TO
[
JOHN
]
;
/*
************************主備手工切換*****************************
*/
--
測試:主備互換
USE
master;
ALTER
DATABASE
PpP
SET
PARTNER FAILOVER;
USE
master;
ALTER
DATABASE
PpP
SET
PARTNER SAFETY
FULL
;
--
事務安全,同步模式
ALTER
DATABASE
PpP
SET
PARTNER SAFETY
OFF
;
--
事務不安全,異步模式,高性能
--
--------------
--
測試:主備互換
USE
master;
ALTER
DATABASE
PpP
SET
PARTNER FAILOVER;
--
主服務器Down掉,備機緊急啟動并且開始服務
--
備機執行
USE
master;
ALTER
DATABASE
PpP
SET
PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
--
備機執行:
USE
master;
ALTER
DATABASE
PpP
SET
PARTNER RESUME;
--
恢復鏡像
ALTER
DATABASE
PpP
SET
PARTNER FAILOVER;
--
切換主備
--
結果圖
作者:ANNATROV
時間:
2010
-
8
-
4
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

