zoukankan      html  css  js  c++  java
  • SQL Server的数据库镜像实施笔记 一

      最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像)

      在虚拟机环境下部署成功,一切都是那么的完美。 故障转移3秒之内就可以顺利完成。

      1.高可用性的实施代码:

      主体数据库

    /********************************************************
    此脚本在主体服务器执行
    ********************************************************/
    --镜像只支持完全恢复模式,在备份数据库之前检查恢复的模式
    --对要镜像的数据库进行完整备份后,复制到镜像数据库以NORECOVERNY选项进行恢复
    USE master;
    --DROP MASTER KEY
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
    GO
    --为此服务器实例制作一个证书。
    --DROP CERTIFICATE HOST_A_cert
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate',START_DATE  = '01/01/2009';
    GO 
    --使用该证书为服务器实例创建一个镜像端点。
    --DROP ENDPOINT Endpoint_Mirroring
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5022
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_A_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = PARTNER
       );
    GO

    --备份 HOST_A 证书,并将其复制到其他机器,将 C:HOST_A_cert.cer 复制到 HOST_BHOST_C。
    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'e:HOST_A_cert.cer';
    GO
    --为入站连接配置 Host_A
    --在 HOST_A 上为 HOST_B 创建一个登录名。 
    USE master;
    --DROP LOGIN HOST_B_login
    CREATE LOGIN HOST_B_login WITH PASSWORD = 'password';
    GO

    --创建一个使用该登录名的用户。
    --DROP USER HOST_B_user
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    --使证书与该用户关联。
    --DROP CERTIFICATE HOST_B_cert
    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'e:HOST_B_cert.cer'
    GO

    --授予对远程镜像端点的登录名的 CONNECT 权限。
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
     
    --在 HOST_A 上为 HOST_C 创建一个登录名。 
    USE master;
    --DROP LOGIN HOST_C_login
    CREATE LOGIN HOST_C_login WITH PASSWORD = 'password';
    GO

    --创建一个使用该登录名的用户。
    --DROP USER HOST_C_user
    CREATE USER HOST_C_user FOR LOGIN HOST_C_login;
    GO
    --使证书与该用户关联。
    --DROP CERTIFICATE HOST_C_cert
    CREATE CERTIFICATE HOST_C_cert
       AUTHORIZATION HOST_C_user
       FROM FILE = 'e:HOST_C_cert.cer'
    GO

    --授予对远程镜像端点的登录名的 CONNECT 权限。
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_C_login];
    GO

    USE master;
    --DROP LOGIN HOST_A_login
    CREATE LOGIN HOST_A_login WITH PASSWORD = 'password';
    GO
    --创建一个使用该登录名的用户。
    --DROP USER HOST_A_user
    CREATE USER HOST_A_user FOR CERTIFICATE HOST_A_cert;
    GO
    --授予对远程镜像端点的登录名的 CONNECT 权限。
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    GO

    --必须要在镜像数据库中先设置好伙伴后,才能在主体服务器执行
    --在 HOST_A 的主体服务器实例上,将 HOST_B 上的服务器实例设置为伙伴(使其成为初始镜像服务器实例)。
    ALTER DATABASE crm 
        SET PARTNER = 'TCP://192.168.1.205:5022';
    GO

    --设置见证服务器
    ALTER DATABASE crm SET WITNESS = N'TCP://192.168.1.204:5022';
    GO

  • 相关阅读:
    CCF201712-2游戏
    SpringMVC(未完待续....)
    MySQL----商品表及商品分类表例子
    Spring----属性注入的三种方式
    Spring的配置文件applicationContext.xml
    Spring----getBean的四种用法
    Spring----工厂模式
    spring第一个小例子(Spring_xjs1)
    JSON
    XStream(可把JavaBean转换成XML的小工具)
  • 原文地址:https://www.cnblogs.com/xgbzsc/p/2694066.html
Copyright © 2011-2022 走看看