• SQL 数据库备份和恢复 镜像配置(证书方式)


    最近公司在进行数据库容灾和备份上的工作,记录关于镜像配置的总结

    步骤一:备份和恢复数据库
    -- 以完整和事务日志备份主数据库
    -- 从服务器上先后还原完整备份和事务日志备份,注意选择不对数据库执行任何操作(WITH NORECOVERY)
    
    步骤二:主服务器A配置证书
    -- 创建主密钥
    CREATE master KEY ENCRYPTION BY password = 'PASSWORDA' ;
    GO
    -- 创建证书
    CREATE CERTIFICATE Cert_A WITH subject = 'A证书' ;
    GO
    -- 创建端点
    IF EXISTS( SELECT 1 FROM sys. endpoints WHERE name= '主镜像' )
      DROP endpoint [主镜像]
    GO
    CREATE endpoint [主镜像]
      AUTHORIZATION [sa]
      STATE= started
      AS TCP (listener_port = 5022 , listener_IP = ALL)
      FOR data_mirroring (ROLE = partner, authentication = CERTIFICATE Cert_A, ENCRYPTION=required algorithm RC4)
    GO
    -- 导出证书
    BACKUP CERTIFICATE Cert_A TO FILE = 'H:MyCertCert_A.cer'
    
    步骤三:从服务器B配置证书
    -- 创建主密钥
    CREATE master KEY ENCRYPTION BY password = 'PASSWORDB' ;
    GO
    -- 创建证书
    CREATE CERTIFICATE Cert_B WITH subject = 'B证书' ;
    GO
    -- 创建端点
    IF EXISTS( SELECT 1 FROM sys. endpoints WHERE name= '从镜像' )
      DROP endpoint [从镜像]
    GO
    CREATE endpoint [从镜像]
      AUTHORIZATION [sa]
      STATE= started
      AS TCP (listener_port = 5022 , listener_IP = ALL)
      FOR data_mirroring (ROLE = partner, authentication = CERTIFICATE Cert_B, ENCRYPTION=required algorithm RC4)
    GO
    -- 导出证书
    BACKUP CERTIFICATE Cert_CY08 TO FILE = 'C:Cert_B.cer'
    
    步骤四:交换证书
    
    步骤五:主服务器A创建登陆用户
    USE master ;
    -- 创建登录名
    CREATE LOGIN B_login WITH PASSWORD = 'PASSWORDA';
    GO
    -- 创建用户
    CREATE USER CY08_user FOR LOGIN B_login;
    GO
    -- 还原B 证书
    CREATE CERTIFICATE Cert_B
      AUTHORIZATION B_user
      FROM FILE = 'H:MyCertCert_B.cer'
    GO
    -- 授权端点给登陆名
    GRANT CONNECT ON ENDPOINT::[ 主镜像] TO [B_login] ;
    
    步骤六:从服务器A创建登陆用户
    USE master ;
    -- 创建登录名
    CREATE LOGIN A_login WITH PASSWORD = 'PASSWORDA';
    GO
    -- 创建用户
    CREATE USER A_user FOR LOGIN A_login;
    GO
    -- 还原B证书
    CREATE CERTIFICATE Cert_A
      AUTHORIZATION A_user
      FROM FILE = 'C:Cert_A.cer'
    GO
    -- 授权端点给登陆名
    GRANT CONNECT ON ENDPOINT::[从镜像] TO [A_login] ;
    
    步骤七:开始镜像
    -- 从数据库执行,连接镜像
    USE master
    GO  
    ALTER DATABASE CYEMS SET PARTNER = 'TCP://192.168.0.A:5022';  
    GO
    
    -- 主数据库执行
    USE master
    GO
    ALTER DATABASE CYEMS SET PARTNER = 'TCP://192.168.0.B:5022';
    GO
    
    相关脚本
    -- 停止镜像,之后可重新连接;配置过程中发生问题可用
    ALTER DATABASE CYEMS SET PARTNER OFF;
    -- 高安全模式,OFF为异步模式
    ALTER DATABASE CYEMS SET SAFETY FULL;
    --切换主备;可用于数据库升级维护
    ALTER DATABASE [DBName] SET PARTNER FAILOVER;
    --当主库故障无法连接时,强制将镜像库设置为主库,允许数据丢失
    ALTERDATABASE[DBName]SETPARTNERFORCE_SERVICE_ALLOW_DATA_LOSS;
    --恢复镜像
    ALTER DATABASE [DBName] SET PARTNER RESUME;
    --设置数据库联机
    ALTER DATABASE [DBName] SET ONLINE;
    
    -- 在主备执行:创建数据库镜像监视器作业
    use msdb ;  
    exec sys .sp_dbmmonitoraddmonitoring  
    --exec sys.sp_dbmmonitorhelpmonitoring  
    --exec sys.sp_dbmmonitorresults DBName,0,0  
    --exec sys.sp_dbmmonitorchangemonitoring  
    --exec sys.sp_dbmmonitordropmonitoring

    这种镜像备份的方式用于多台服务器同时运行上,在数据库的还原和备份上实现了短时间内的及时备份,在数据库文件隔天备份或者月度周度备份上又将维度扩大了,中小型数据库中有较好的使用。

     
     
    你永远不知道下一个转角等待你的是什么。
  • 相关阅读:
    docker 镜像相关
    docker相关网站
    docker初识 一
    loadrunner Windows资源指标
    Codeforces Round #368 (Div. 2) Brain's Photos
    CodeForce 589J Cleaner Robot
    CodeForce 677I Lottery
    CodeForce 677D Boulevard
    CodeForce 589B Layer Cake
    Map的遍历
  • 原文地址:https://www.cnblogs.com/Nagisa-Saku/p/5694019.html
Copyright © 2020-2023  润新知