• sql2005镜像实现


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

  • 相关阅读:
    大型网站应用之海量数据和高并发解决方案总结
    反转二叉树
    Spring bean循环依赖
    死磕Spring AOP (学习持续更新中。。)
    Context 初始化流程
    ConcurrentHashMap
    2-MySQL高级-事务-基本概念(1)
    1-MySQL高级-视图
    11-python基础—格式化的两种方式
    22-MySQL-Ubuntu-备份与恢复
  • 原文地址:https://www.cnblogs.com/BlogNetSpace/p/1534031.html
Copyright © 2020-2023  润新知