zoukankan      html  css  js  c++  java
  • 低成本两台服务器备份,SQL SERVER数据库镜像(二)

    承接上文《异地(公网)数据库容灾,SQL SERVER互联网自动备份,SQL SERVER数据库镜像》说到我们已经备份并到镜象服务器里还原了数据库,接下一来我们就要把主服务器和镜象服务器连接起来,这里我们使用证书进行连接,我这里只使用命令行操作:

    配置出站连接的进程分为以下基本步骤:

    1. master 数据库中,创建数据库主密钥。
    2. master 数据库中,为服务器实例创建加密证书。
    3. 使用服务器实例的证书为该服务器实例创建端点。
    4. 将证书备份到文件,并将其安全地复制到其他系统。

    1. 在主服务器上执行下列命令:

    master 数据库中,创建数据库主密钥。
    create master key encryption by password='pass@word1'

    master 数据库中,为服务器实例创建加密证书。
    create certificate Host_A_cert with subject='HOST_A_certificate',start_date = '01/01/2010', expiry_date='01/01/2099'
    SELECT * FROM sys.certificates;
    使用服务器实例的证书为该服务器实例创建端点。
    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 = ALL)
    go
    SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints;
    将证书备份到文件,并将其安全地复制到其他系统。
    backup certificate HOST_A_cert to FILE='C:\HOST_A_cert.cer'

    2.在镜象服务器上执行同样的操作:

    create master key encryption by password='pass@word1'
    create certificate Host_B_cert with subject='HOST_B_certificate',start_date = '01/01/2010', expiry_date='01/01/2099'
    go
    create endpoint Endpoint_Mirroring
    state = started
    as tcp(LISTENER_PORT=5022, LISTENER_IP = ALL)
    for
    DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE HOST_B_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL)
    go
    backup certificate HOST_B_cert to FILE='C:\HOST_B_cert.cer'

    3. 交换证书,将主服务器C盘上的HOST_A_cert.cer复制到镜象服务器上的C盘上。将镜像服务器C盘的HOST_B_cert.cer也复制到主服务器的C盘上。

    配置入站连接的过程通常有以下几个步骤:

    1. 为其他系统创建登录名。
    2. 创建一个使用该登录名的用户。
    3. 获取其他服务器实例的镜像端点的证书。
    4. 将该证书与在步骤 2 中创建的用户相关联。
    5. 授予对该镜像端点的登录名的 CONNECT 权限。

    1.在主服务器上执行:

    为其他系统创建登录名。
    create login HOST_B_login with password='pass@word1';
    创建一个使用该登录名的用户。
    create user HOST_B_user FOR LOGIN HOST_B_login;
    将该证书与在步骤 2 中创建的用户相关联。
    create certificate HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE='C:\HOST_B_cert.cer';
    授予对该镜像端点的登录名的 CONNECT 权限。
    grant connect on endpoint::Endpoint_Mirroring TO [HOST_B_login];

    2.在镜像服务器上执行同样的操作

    create login HOST_A_login with password='pass@word1';
    create user HOST_A_user FOR LOGIN HOST_A_login;
    create certificate HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE='C:\HOST_A_cert.cer';
    grant connect on endpoint::Endpoint_Mirroring TO [HOST_A_login];

    3.先在镜像服务器上设置数据库的镜像

    alter database Northwind SET Partner = 'TCP://主服务器IP地址:5022'

    4.设置主服务器上的数据库镜象:

    alter database Northwind SET Partner = 'TCP://镜象服务器IP地址:5022'

    好了,到这里我们就大功搞成了,现在这两台服务器已经开始镜像了。因为现在我们做的是手动镜像故障转移,所以当主服务器宕机后我们需要手动切换到镜像服务器上。

    主机宕掉时执行:ALTER DATABASE Northwind SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

    当主机恢复时执行:
    ALTER DATABASE Northwind SET PARTNER RESUME; --恢复镜像
    ALTER DATABASE Northwind SET PARTNER SAFETY FULL --事务安全,同步模式
    ALTER DATABASE Northwind SET PARTNER FAILOVER; --切换主备

    下一篇文我们将执行主备服务器自动切换,实现自动镜象故障转移。

  • 相关阅读:
    在HTML中使用css3实现雪人动画效果
    不一样的函数防抖和节流
    2020全球C++及系统软件技术大会成功落下帷幕
    详解flex布局做骰子案例
    LeetCode-环形链表|+环形链表||
    03:成绩排序
    02:奇数单增序列
    谁考了第k名
    【23.59%】【hdu 5883】The Best Path
    【30.53%】【hdu 5878】I Count Two Three
  • 原文地址:https://www.cnblogs.com/biyusoft/p/3432038.html
Copyright © 2011-2022 走看看