【SQLServer高可用性】数据库镜像:在SQLServer2008R2上的配置数据库镜像(二)

2014-11-24 08:28:44 · 作者: · 浏览: 15
====== --(8) 在主体服务器上启用数据库镜像(默认为高安全性模式,所以不用进行模式设置) -- 此操作主体服务器上执行 ALTER DATABASE DB_Mirror SET PARTNER = 'TCP://192.168.1.105:5022' GO 把在见证服务器上创建的证书,复制到主体服务器上,然后执行如下代码:
-- ===========================================
--(11)  在主体服务器上完成见证服务器数据库镜像端点的传输安全模式配置
-- 此操作主体服务器上执行
-- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 c:\share\CT_Mirror_SrvWitness.cer)
CREATE CERTIFICATE CT_Mirror_SrvWitness
FROM FILE = 'c:\share\CT_Mirror_SrvWitness.cer'

-- b. 建立登录
CREATE LOGIN LOGIN_Mirror_SrvWitness
FROM CERTIFICATE CT_Mirror_SrvWitness

-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvWitness
GO
-- ===========================================
--(12)  在主体服务器上为数据库镜像启用见证服务器
-- 此操作主体服务器上执行
ALTER DATABASE DB_Mirror SET
	WITNESS = 'TCP://192.168.1.104:5022'
GO
3、镜像服务器的配置

把主体服务器上的数据库备份文件,拷贝到镜像服务器上后,再执行下面的代码:

-- ===========================================
-- 无论是主体服务器、镜像服务器, 还是见证服务器
-- 除特别说明外,均需要保证下面的操作在master库中执行
USE master
GO

-- ===========================================
--(2)  初始化镜像主体数据库
-- 此操作镜像服务器上执行
-- 假设主体数据库的完全备份已经复制到 c:\share\DB_Mirror.bak
-- SQL Server必须使用相同的账户名来启动
RESTORE DATABASE DB_Mirror
FROM DISK = 'c:\share\DB_Mirror.bak'
WITH REPLACE
	, NORECOVERY
-- 如果镜像数据库文件要放在指定位置, 则启用下面的 Move 选项
--	, MOVE 'DB_Mirror_DATA' TO N'C:\DB_Mirror.mdf'
--	, MOVE 'DB_Mirror_LOG' TO N'C:\DB_Mirror.ldf'
GO
-- ===========================================
--(4)  镜像服务器上的数据库镜像端点及身份验证用的证书
-- 此操作镜像服务器上执行
-- a. 用于数据库镜像端点身份验证的证书
IF NOT EXISTS(  -- 使用数据库主密钥加密证书
		SELECT * FROM sys.symmetric_keys
		WHERE name = N'##MS_DatabaseMasterKey##')
	CREATE MASTER KEY
		ENCRYPTION BY PASSWORD = N'wwwwc123'


CREATE CERTIFICATE CT_Mirror_SrvB
WITH
	SUBJECT = N'certificate for database mirror',
	START_DATE = '19990101',
	EXPIRY_DATE = '99991231'
GO


-- b. 备份证书, 以便在与此端点通信的另一端建立此证书
BACKUP CERTIFICATE CT_Mirror_SrvB
TO FILE = 'c:\share\CT_Mirror_SrvB.cer'
GO

-- c. 数据库镜像端点
CREATE ENDPOINT EDP_Mirror
	STATE = STARTED 
	AS TCP(
		LISTENER_PORT = 5022,  -- 镜像端点使用的通信端口
		LISTENER_IP = ALL)     -- 侦听的IP地址
    FOR DATABASE_MIRRORING(
		AUTHENTICATION = CERTIFICATE CT_Mirror_SrvB, -- 证书身份验证
		ENCRYPTION = DISABLED,                       -- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法
		ROLE = ALL)                                  -- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴)
GO

把主体服务器上的证书,拷贝到镜像服务器上后,再执行下面的代码:
-- ===========================================
--(5)  在镜像服务器上完成主体服务器数据库镜像端点的传输安全模式配置
-- 此操作镜像服务器上执行
-- a. 建立主体服务器上的证书(假设主体服务器上备份的证书已经复制到 C:\CT_Mirror_SrvA.cer)
CREATE CERTIFICATE CT_Mirror_SrvA
FROM FILE = 'c:\share\CT_Mirror_SrvA.cer'


-- b. 建立登录
CREATE LOGIN LOGIN_Mirror_SrvA
FROM CERTIFICATE CT_Mirror_SrvA


-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvA
GO
-- ===========================================
--(7)  在镜像服务器上启用数据库镜像
-- 此操作镜像服务器上执行
ALTER DATABASE DB_Mirror SET
	PARTNER = 'TCP://192.168.1.101:5022'
GO
把见证服务器上的证书,拷贝到镜像服务器上后,再执行下面的代码:
-- ===========================================
--(10)  在镜像服务器上完成见证服务器数据库镜像端点的传输安全模式配置
-- 此操作镜像服务器上执行
-- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 C:\CT_Mirror_SrvWitness.cer)
CREATE CERTIFICATE CT_Mirror_SrvWitness
FRO