/*--映射磁盘
EXEC master..xp_cmdshell 'net use '
EXEC ConfigDB.dbo.spb_netuse 'R'
EXEC master..xp_cmdshell 'net use R: /del'
EXEC master..xp_cmdshell 'dir e:\sqldata\*.cer'
*/
--第1步
--1、创建数据库主密钥
use master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mirror0';
GO
--ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'mirror0';
GO
--2、为此服务器制作一个证书
USE master;
CREATE CERTIFICATE name1
WITH SUBJECT = 'name1 certificate',
start_date = '06/10/2008',
EXPIRY_DATE = '10/31/2099';
GO
--3、使用该证书为服务器实例创建一个镜像端点
CREATE ENDPOINT [Endpoint_Mirroring]
AUTHORIZATION sa
STATE=STARTED
AS TCP (LISTENER_PORT = 5022
, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL
, AUTHENTICATION = CERTIFICATE name1
, ENCRYPTION = REQUIRED ALGORITHM RC4)
go
BACKUP CERTIFICATE name1 TO FILE = 'e:\sqldata\name1.cer';
EXEC XP_CMDSHELL 'COPY e:\sqldata\name1.cer R:\certificate\'
EXEC XP_CMDSHELL 'COPY R:\certificate\name2.cer e:\sqldata\'
--第3步
--1、在主机上为辅机创建一个登录名
USE master;
CREATE LOGIN usvr_mirror WITH PASSWORD = 'mirror0';
GO
--2、创建一个使用该登录名的用户
CREATE USER usvr_mirror_user FOR LOGIN usvr_mirror;
GO
--3、使证书与该用户关联
CREATE CERTIFICATE name2
AUTHORIZATION usvr_mirror_user
FROM FILE = 'e:\sqldata\name2.cer'
GO
--4、授予对远程镜像端点的登录名的CONNECT 权限
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO usvr_mirror;
GO
--第6步
--2、在主体服务器上,指定伙伴端点
--xp_cmdshell 'ipconfig'
ALTER DATABASE DATABASENAME
SET PARTNER = N'TCP://172.16.144.120:5022'
GO
--第7步
--在主体服务器上,配置数据库镜像事务安全级别
ALTER DATABASE DATABASENAME SET SAFETY OFF
GO
----------------------------
--八. 故障转移
--1. 切换域名指向,由主机改为备机
--2. 在备机上执行命令,转换镜像数据库为主体
ALTER DATABASE <dbname> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
--3. 在备机上还原主机的用户和JOB
--4. 重建Replication配置
--5. 业务测试
</dbname>