• SQL Server数据库镜像笔记


    1.主服务器与镜像服务器创建1个同样用户名,密码的账号

    2.主服务器与镜像服务器更改数据库服务的账号为刚创建的账号

    3.按照http://liulike.blog.51cto.com/1355103/339183的步骤完成配置

     解决方法为:配置两台机器上,启动sql server为同一名字账户,且密码要相同;重启SQL Server服务; 然后在两机器上,都删除端点(drop endpoint ...),再重启配置。 

    不知道好不好用  等下看看~~~:)

    1. 首先要将主数据库恢复模式设置为完整:alter database WLDB set recovery full with no_wait

    2.备份主数据库和日志:

    BACKUP DATABASE [WLDB] TO  DISK = N'D:\Backup\WLDB.bak' WITH NOFORMAT, NOINIT,  NAME = N'WLDB-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 
    GO 
    BACKUP LOG [WLDB] TO  DISK = N'D:\Backup\WLDB.bak' WITH NOFORMAT, NOINIT,  NAME = N'WLDB-事务日志  备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 
    GO

    3.在镜像服务器上以不回滚提交事务方式恢复数据库:

    RESTORE DATABASE [WLDB] FROM  DISK = N'D:\Backup\WLDB.bak' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 10 
    GO 
    RESTORE LOG [WLDB] FROM  DISK = N'D:\Backup\WLDB.bak' WITH  FILE = 2,  NORECOVERY,  NOUNLOAD,  STATS = 10 
    GO

     

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

    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; --切换主备

     

  • 相关阅读:
    ListView与ArrayAdapter(二)
    ListView与SimpleAdapter(三)
    对于ListView的一些用法(一)
    如何使用AsyncTask
    you must restart adb and eclipse的相关解决办法
    leetcode 移动零 JAVA
    leetcode 有效的字母异位词 java
    leetcode 单词拆分 II java
    leetcode 分割回文串 java
    leetcode 验证回文串 java
  • 原文地址:https://www.cnblogs.com/luxx/p/2673367.html
Copyright © 2020-2023  润新知