?
可下載附件
/* **********************主機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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
