• 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

  • 相关阅读:
    sparkSQL
    Spark分区实例(teacher)
    SparkCore的性能优化
    Linux 输出当前路径下某个文件的绝对路径
    bulid runnable jar file with dependencies
    bulid runnable jar file with dependencies and main class
    spring mvc 整合jsp和thymeleaf两个模板引擎
    解决Volley中的JsonObjectRequest jsonRequest参数无法被服务端读取的问题
    为volley的http请求添加自定义request header
    使用spring-boot-starter-data-jpa 怎么配置使运行时输出SQL语句
  • 原文地址:https://www.cnblogs.com/xgbzsc/p/2694066.html
Copyright © 2020-2023  润新知