• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用

    发布者: 涵韵 | 发布时间: 2025-6-18 12:40| 查看数: 106| 评论数: 0|帖子模式

    一、配置主备机
    1、 服务器基本信息
    主机名称为:HOST_A,IP地址为:192.168.1.155
    备机名称为:HOST_B,IP地址为:192.168.1.156
    二、主备实例互通
    实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2008的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。
    1、创建证书(主备可并行执行)
    1. --主机执行:
    2. USE master;
    3. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456';
    4. CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' ,
    5. START_DATE = '2012-08-02',
    6. EXPIRY_DATE = '2099-08-02';

    7. --备机执行:

    8. USE master;
    9. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456';
    10. CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate',
    11. START_DATE = '2012-08-02',
    12. EXPIRY_DATE = '2099-08-02';
    复制代码
    2、创建连接的端点(主备可并行执行)
    1. --主机执行:

    2. CREATE ENDPOINT Endpoint_Mirroring

    3. STATE = STARTED

    4. AS

    5. TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )

    6. FOR

    7. DATABASE_MIRRORING

    8. ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );



    9. --备机执行:

    10. CREATE ENDPOINT Endpoint_Mirroring

    11. STATE = STARTED

    12. AS

    13. TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )

    14. FOR

    15. DATABASE_MIRRORING

    16. ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
    复制代码
    3、备份证书以备建立互联(主备可并行执行)
    1. --主机执行:

    2. BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\SQLBackup\HOST_A_cert.cer';


    3. --备机执行:

    4. BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\SQLBackup\HOST_B_cert.cer';
    复制代码
    4、互换证书
    将备份到C:\SQLBackup\的证书进行互换,即HOST_A_cert.cer复制到备机的C:\SQLBackup\。HOST_B_cert.cer复制到主机的C:\SQLBackup\。
    5、添加登陆名、用户(主备可并行执行)
    以下操作只能通过命令行运行,通过图形界面无法完成。(截至SQL Server2005的补丁号为SP2)
    1. --主机执行:
    2. CREATE LOGIN HOST_B_login WITH PASSWORD = '123456';
    3. CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    4. CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\SQLBackup\HOST_B_cert.cer';
    5. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

    6. --备机执行:
    7. CREATE LOGIN HOST_A_login WITH PASSWORD = '123456';
    8. CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    9. CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\SQLBackup\HOST_A_cert.cer';
    10. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    复制代码
    三、建立镜像关系
    以下步骤是针对每个数据库进行的,例如:现有主机中有5个数据库以下过程就要执行5次。
    1、 手工同步登录名和密码
    在上文中提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录。
    通常来说数据库都将会有若干个用户作为访问数据库的用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用'myuser'作为登录名访问数据库,但是在备机中没有'myuser'这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"。在主机和备机数据库上建立相同用户名及密码即可。
    2、 准备备机数据库(主机备份及镜像还原)
    在主机上备份数据库,先做完整备份,再做日志事务备份。
    1、主数据必须设置成完整模式进行备份,如下图:

      上图中将“恢复模式”选成“完整模式”。

    2、备份数据库,如下图:


    备份时将“备份类型”选成“完整”。

    3、备份事务日志,如下图:


    将“备份类型”选成“事务日志”且备份目录与备份数据库的目录一致。

    将备份文件在备机上使用主机的全备文件进行还原,在还原数据的时候需要使用选上“with non recover”。如图所示:


    如果执行成功数据库将会变成这个样子:

    3、 建立镜像
    1. --在备机中执行如下语句:

    2. ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.155:5022';

    3. 说明:shishan为数据库名,需要根据实际进行修改。192.168.1.155为主机IP地址,需根据实际进行修改。

    4. --主机执行:

    5. ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.156:5022';
    复制代码
    说明:shishan为数据库名,需要根据实际进行修改。192.168.1.156为备机IP地址,需根据实际进行修改。
    执行成功后:


    到此,SQL镜像热备配置完成。
    四、常见命令
    1. --切换主备
    2. use master;
    3. alter database testdb set partner failover;

    4. -- 备机强制切换
    5. use master;
    6. alter database testdb set partner force_service_allow_data_loss;

    7. --恢复镜像
    8. use master;
    9. alter database testdb set partner resume;


    10. --取消见证服务器
    11. ALTER DATABASE testdb SET WITNESS OFF ;

    12. --取消镜像
    13. ALTER DATABASE testdb SET PARTNER OFF;

    14. --设置镜像数据库还原为正常
    15. RESTORE DATABASE testdb WITH RECOVERY;
    复制代码
    备份主数据库出现:Backup a database on a HDD with a different sector size,可以执行以下语句备份:
    BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', STATS = 10, FORMAT
    总结
    要进行以上sql server的镜像设置一定要使用sql server 的配置管理器开启TCP/IP协议,如下图


    如果没有启用TCP/IP协议则只能在同一个网段内的机器配置镜像,前面的配置步骤里面所用到的IP地址要换成对应的实例名。同一个网段配置并使用镜像的时实性、传输速率更高,适用于大数据量的同步,跨网段或者跨公网的sql server 镜像一般适用于数据量小,时实性要求不高的数据同步,而且数据库在公网上同步也不安全。

    来源:https://www.jb51.net/article/110694.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表