以下是操作步骤:
-- =========================================== 
-- 无论是主体服务器、镜像服务器, 还是见证服务器 
-- 除特别说明外,均需要保证下面的操作在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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- =========================================== 
-- 下面的操作可用于确定同步 
-- 1. 查询数据库状态 
-- 下面的脚本可以在主体服务器和镜像服务器上执行,执行结果为镜像的状态 
SELECT 
mirroring_role_desc,          -- 数据库在镜像会话中当前的角色 
mirroring_state_desc,          -- 镜像当前状态 
mirroring_safety_level_desc,  -- 镜像运行模式 
mirroring_witness_state_desc  -- 与见证服务器的连接情况 
FROM sys.database_mirroring 
WHERE database_id = DB_ID(N'DB_Mirror') 
GO

-- 2. 数据测试 
-- b. 主体服务器上执行下面的语句以建立测试表 
CREATE TABLE DB_Mirror.dbo.tb( 
id int) 
WAITFOR DELAY '00:00:01' 
GO

-- b. 镜像服务器上, 建立镜像数据库的快昭数据库,以便可以查询当前的数据 
CREATE DATABASE SNP_DB_Mirror 
ON( 
NAME = DB_Mirror_DATA, 
FILENAME = N'C:\SNP_DB_Mirror.mdf') 
AS SNAPSHOT OF DB_Mirror 
GO

-- c. 从快照数据库中查询测试表是否已经同步 
SELECT * FROM SNP_DB_Mirror.dbo.tb 
GO

-- d. 删除测试建立的快照数据库 
DROP DATABASE SNP_DB_Mirror 
GO

-- =========================================== 
-- 下面的操作用于删除此示例配置的镜像对象 
--  证书和数据库的备份需要在操作系统的资源管理器中删除 
-- 1. 主体服务器上执行的操作 
-- a. 停止镜像和删除主体数据库 
USE master 
GO

ALTER DATABASE DB_Mirror SET 
PARTNER OFF 
DROP DATABASE DB_Mirror 
GO

-- b. 删除镜像端点 
DROP ENDPOINT EDP_Mirror 
GO

-- c. 删除登录及证书 
DROP LOGIN LOGIN_Mirror_SrvB 
DROP LOGIN LOGIN_Mirror_SrvWitness 
DROP CERTIFICATE CT_Mirror_SrvA 
DROP CERTIFICATE CT_Mirror_SrvB 
DROP CERTIFICATE CT_Mirror_SrvWitness 
GO

-- 2. 镜像服务器上执行的操作 
-- a. 删除镜像数据库 
USE master 
GO

DROP DATABASE DB_Mirror 
GO

-- b. 删除镜像端点 
DROP ENDPOINT EDP_Mirror 
GO

-- c. 删除登录及证书 
DROP LOGIN LOGIN_Mirror_SrvA 
DROP LOGIN LOGIN_Mirror_SrvWitness 
DROP CERTIFICATE CT_Mirror_SrvA 
DROP CERTIFICATE CT_Mirror_SrvB 
DROP CERTIFICATE CT_Mirror_SrvWitness 
GO

-- 3. 见证服务器上执行的操作 
-- a. 删除端点 
DROP ENDPOINT EDP_Mirror 
GO

-- b. 删除登录及证书 
DROP LOGIN LOGIN_Mirror_SrvA 
DROP LOGIN LOGIN_Mirror_SrvB 
DROP CERTIFICATE CT_Mirror_SrvA 
DROP CERTIFICATE CT_Mirror_SrvB 
DROP CERTIFICATE CT_Mirror_SrvWitness 
GO

-------------------------------------------------------------------------------------------------------------------------------------------

转载自:http://www.cnblogs.com/tianyue3107/archive/2010/01/06/1640554.html


SQL Server 镜像的更多相关文章

  1. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  2. 第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护

    本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/ ...

  3. 三——第二部分——第二篇论文 计划建设SQL Server镜像

    本文接着前面的章节:SQL Server镜像简单介绍 本文出处:http://blog.csdn.net/dba_huangzj/article/details/27203053 俗话说:工欲善其事必 ...

  4. 第三篇——第二部分——第三文 配置SQL Server镜像——域环境

    原文:第三篇--第二部分--第三文 配置SQL Server镜像--域环境 原文出处:http://blog.csdn.net/dba_huangzj/article/details/28904503 ...

  5. 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境

    原文:第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj/ ...

  6. 第三篇——第二部分——第一文 SQL Server镜像简介

    原文:第三篇--第二部分--第一文 SQL Server镜像简介 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26951563 镜像是什 ...

  7. 第三篇——第二部分——第二文 计划搭建SQL Server镜像

    原文:第三篇--第二部分--第二文 计划搭建SQL Server镜像 本文紧跟上一章:SQL Server镜像简介 本文出处:http://blog.csdn.net/dba_huangzj/arti ...

  8. 第三篇——第二部分——第六文 监控SQL Server镜像

    原文:第三篇--第二部分--第六文 监控SQL Server镜像 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26846203 要优化, ...

  9. SQL SERVER镜像切换

    --SQL SERVER镜像切换 ------------------------------2013/11/30 切换条件   高性能 没有见证服务器的高安全性模式 具有见证服务器的高安全性模式 自 ...

  10. SQL Server 镜像证书过期处理

    转自:https://www.cnblogs.com/trams/archive/2012/01/13/2321637.html SQL Server 镜像证书过期处理 今天镜像中的主服务器进行维护重 ...

随机推荐

  1. & 和 && 区别

    java中&和&&的区别,&和&&虽然都是逻辑运算符,都是判断两边为真,则语句成立,但是在运行的时候,还是有差别的,下面举例来说明. java中& ...

  2. source、sh、bash、./执行脚本的区别

    1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用 ...

  3. MVC+JSON 无限滚动翻页

    public partial class News { public int ID{ get; set; } public int Title{ get; set; } } ) { Response. ...

  4. COB (Chip On Board) 製程介紹/簡介/注意事項 II

    銀膠 (Silver glue) 如果晶圓有接地或是散熱需求時,一般都會採用[銀膠],如果沒有的話則會採用[厭氧膠].[厭氧膠]顧名思義就是阻隔它與空氣接觸後就會自然固化,不需要高溫烘烤.使用銀膠則需 ...

  5. [android]清单文件中MAIN与LAUNCHER的区别

    原文:[android]清单文件中MAIN与LAUNCHER的区别 MAIN 和 LAUNCHER,之前一直不注意这两个有区别,写程序的时候都放到一个filter中,前两天面试问到了,总结一下: MA ...

  6. poj2328---"right on"进入下一个case的模板(while)

    #include <stdio.h> #include <stdlib.h> #include<string.h> int main() { ]; ,end=; w ...

  7. Vxlan 原理

    https://www.gitbook.com/book/yeasy/openstack_understand_neutron/details 自己总结一下: 分析 VTEP的情况, 即Vxlan跟V ...

  8. qemu 调试(二)

    我见过最全的剖析QEMU原理的文章 qemu代码分析 qemu中ELF文件的加载 几个关键点,可以设计断点,观察. $ cat command.gdbset breakpoint pending on ...

  9. i美股投资研报--Michael Kors(IPO版) _Michael Kors(KORS) _i美股

    i美股投资研报--Michael Kors(IPO版) _Michael Kors(KORS) _i美股 i美股投资研报--Michael Kors(IPO版)

  10. jquery判断移动设备代码片段;pc、iphone、安卓

    $(document).ready(function () { /* 判断设备*/ var browser={ versions:function(){ var u = navigator.userA ...