-- ===========================================
-- 无论是主体服务器、镜像服务器, 还是见证服务器 -- 除特别说明外,均需要保证下面的操作在master库中执行 USE master GO -- =========================================== --(1) 建立镜像主体数据库 -- 此操作主体服务器上执行 -- a. 建立测试数据库 CREATE DATABASE DB_Mirror ON( NAME = DB_Mirror_DATA, FILENAME = N'C:\DB_Mirror.mdf' ) LOG ON( NAME = DB_Mirror_LOG, FILENAME = N'C:\DB_Mirror.ldf' ) ALTER DATABASE DB_Mirror SET RECOVERY FULL GO -- b. 完全备份 BACKUP DATABASE DB_Mirror TO DISK = N'C:\DB_Mirror.bak' WITH FORMAT GO -- =========================================== --(2) 初始化镜像主体数据库 -- 此操作镜像服务器上执行 -- 假设主体数据库的完全备份已经复制到 c:\DB_Mirror.bak RESTORE DATABASE DB_Mirror FROM DISK = N'C:\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 -- =========================================== --(3) 主体服务器上的数据库镜像端点及身份验证用的证书 -- 此操作主体服务器上执行 -- a. 用于数据库镜像端点身份验证的证书 IF NOT EXISTS( -- 使用数据库主密钥加密证书 SELECT * FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##') CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'abc.123' CREATE CERTIFICATE CT_Mirror_SrvA WITH SUBJECT = N'certificate for database mirror', START_DATE = '19990101', EXPIRY_DATE = '99991231' GO -- b. 备份证书, 以便在与此端点通信的另一端建立此证书 BACKUP CERTIFICATE CT_Mirror_SrvA TO FILE = 'C:\CT_Mirror_SrvA.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_SrvA, -- 证书身份验证 ENCRYPTION = DISABLED, -- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法 ROLE = ALL) -- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴) GO -- =========================================== --(4) 镜像服务器上的数据库镜像端点及身份验证用的证书 -- 此操作镜像服务器上执行 -- a. 用于数据库镜像端点身份验证的证书 IF NOT EXISTS( -- 使用数据库主密钥加密证书 SELECT * FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##') CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'abc.123' 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:\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:\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 -- =========================================== --(6) 在主体服务器上完成镜像服务器数据库镜像端点的传输安全模式配置 -- 此操作主体服务器上执行 -- a. 建立主体服务器上的证书(假设镜像服务器上备份的证书已经复制到 C:\CT_Mirror_SrvB.cer) CREATE CERTIFICATE CT_Mirror_SrvB FROM FILE = 'C:\CT_Mirror_SrvB.cer' -- b. 建立登录 CREATE LOGIN LOGIN_Mirror_SrvB FROM CERTIFICATE CT_Mirror_SrvB -- c. 授予对数据库镜像端点的 connect 权限 GRANT CONNECT ON ENDPOINT::EDP_Mirror TO LOGIN_Mirror_SrvB GO -- =========================================== --(7) 在镜像服务器上启用数据库镜像 -- 此操作镜像服务器上执行 ALTER DATABASE DB_Mirror SET PARTNER = 'TCP://SrvA:5022' GO -- =========================================== --(8) 在主体服务器上启用数据库镜像(默认为高安全性模式,所以不用进行模式设置) -- 此操作主体服务器上执行 ALTER DATABASE DB_Mirror SET PARTNER = 'TCP://SrvB:5022' GO -- =========================================== --(9) 配置见证服务器 -- 此操作在见证服务器上执行 -- a. 完成见证服务器上数据库镜像端点的传输安全模式配置 -- (a). 用于数据库镜像端点身份验证的证书 IF NOT EXISTS( -- 使用数据库主密钥加密证书 SELECT * FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##') CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'abc.123' CREATE CERTIFICATE CT_Mirror_SrvWitness WITH SUBJECT = N'certificate for database mirror', START_DATE = '19990101', EXPIRY_DATE = '99991231' GO -- (b). 备份证书, 以便在与此端点通信的另一端建立此证书 BACKUP CERTIFICATE CT_Mirror_SrvWitness TO FILE = 'C:\CT_Mirror_SrvWitness.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_SrvWitness, -- 证书身份验证 ENCRYPTION = DISABLED, -- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法 ROLE = ALL) -- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴) GO -- b. 完成主体服务器上数据库镜像端点的传输安全模式配置 -- (a). 建立主体服务器上的证书(假设主体服务器上备份的证书已经复制到 C:\CT_Mirror_SrvA.cer) CREATE CERTIFICATE CT_Mirror_SrvA FROM FILE = 'C:\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 -- c. 完成镜像服务器上数据库镜像端点的传输安全模式配置 -- (a). 建立镜像服务器上的证书(假设镜像服务器上备份的证书已经复制到 C:\CT_Mirror_SrvB.cer) CREATE CERTIFICATE CT_Mirror_SrvB FROM FILE = 'C:\CT_Mirror_SrvB.cer' -- (b). 建立登录 CREATE LOGIN LOGIN_Mirror_SrvB FROM CERTIFICATE CT_Mirror_SrvB -- (c). 授予对数据库镜像端点的 connect 权限 GRANT CONNECT ON ENDPOINT::EDP_Mirror TO LOGIN_Mirror_SrvB GO -- =========================================== --(10) 在镜像服务器上完成见证服务器数据库镜像端点的传输安全模式配置 -- 此操作镜像服务器上执行 -- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 C:\CT_Mirror_SrvWitness.cer) CREATE CERTIFICATE CT_Mirror_SrvWitness FROM FILE = 'C:\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 -- =========================================== --(11) 在主体服务器上完成见证服务器数据库镜像端点的传输安全模式配置 -- 此操作主体服务器上执行 -- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 C:\CT_Mirror_SrvWitness.cer) CREATE CERTIFICATE CT_Mirror_SrvWitness FROM FILE = 'C:\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://SrvWitness:5022' GO本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/feng2375/archive/2009/02/16/3897056.aspx