SQLServer数据库镜像高性能模式下维护

概述:

最近公司业务说不需要见证服务器那么高配置,所以打算降配置

降低配置阿里云这边需要关闭实例服务器,所以这边做了个本地测试会不会影响镜像

目录:

1、(高性能模式)测试把见证服务器关闭是否影响镜像使用

2、(高性能模式)测试把镜像服务器关闭,保留主库和见证是否影响镜像使用

3、(高性能模式)测试把主库服务器关闭,保留镜像和见证服务器查看镜像状态

4、(高性能模式)镜像服务器和见证服务器关闭,查看主库服务器数据库是否能访问

5、(高性能模式)主库服务器和见证服务器关闭,查看镜像服务器数据库是否能访问

6、(高性能模式)去除见证服务器,镜像服务器关闭,查看主库服务器状态

7、(高性能模式)去除见证服务器,主库服务器关闭,查看镜像服务器状态

8、总结

下面做了一波测试:

环境:SQLServer2012 Enterprise Edition (64-bit)

主库服务器:主机名(WIN-B8O213PTCEMN);IP(192.168.1.213)

镜像服务器:主机名(WIN-B8O214PTCEMN);IP(192.168.1.214)

见证服务器:主机名(WIN-B8O215PTCEMN);IP(192.168.1.215)

1、(高性能模式)测试把见证服务器关闭是否影响镜像使用

1.1、直接停止见证服务器的sqlserver服务,然后查看镜像状态显示已断开连接

1.2、然后这边查看主库的镜像状态,查看到镜像是不受影响的!

2、(高性能模式)测试把镜像服务器关闭,保留主库和见证是否影响镜像使用

直接把镜像SQL服务停止,见证和主库服务开启状态

查看镜像:主库不受影响,但是镜像受到影响

3、(高性能模式)测试把主库服务器关闭,保留镜像和见证服务器查看镜像状态

3.1、这边把主库服务器关闭后,在镜像从库查看到如下状态

这边主要模拟在主库宕机了,能否镜像库开启访问的状态

这边是高性能模式,没法自动故障转移,也不能手动故障转移,所以这边除非强制服务,但是强制服务可能会造成数据丢失

强制服务(可能造成数据丢失)说明:

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms189977(v=sql.105)

如果主服务器真的没办法恢复了,能接收可能的数据丢失风险则可以在镜像服务器执行强制服务

在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器失败而镜像服务器可用,

则数据库所有者可以在出现故障时强制将服务转移到镜像数据库(可能造成数据丢失),从而使数据库可用。 此选项仅在以下情况中可用:

  • 主体服务器已关闭。
  • WITNESS 设置为 OFF 或连接到镜像服务器。

注意:

严格讲来,强制服务是一种灾难恢复方法。 强制服务可能会导致一些数据丢失。

因此,只有在为了立即恢复数据库服务而不惜丢失某些数据时,才可强制执行服务。

如果强制服务面临丢失重要数据的风险,则建议您停止镜像并手动重新同步数据库。

强制服务会挂起会话并启动新的恢复分叉。 强制服务的结果相当于删除镜像并恢复以前的主体数据库。

但是,强制服务便于在恢复镜像时重新同步数据库(可能造成数据丢失)。

在数据库镜像会话中强制执行服务

  1. 连接到镜像服务器。
  2. 发出以下语句:

    ALTER DATABASE <数据库名称> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

    其中,<数据库名称> 为镜像数据库。

    镜像服务器将立即转换为主体服务器,并且镜像挂起。

4、(高性能模式)镜像服务器和见证服务器关闭,查看主库服务器数据库是否能访问

经过测试现在主库显示如下状态,如果镜像服务器和见证服务器同时宕机,主库服务器是没法使用的,除非去掉见证库!

或者拆除镜像的情况下才能访问数据,迅速恢复!

USE [master]
GO
--拆除镜像
--当镜像库显示正在恢复想变为正在还原模式执行下面
ALTER DATABASE 数据库名称 SET PARTNER OFF
GO
--将数据库从还原状态转化成正常模式
ALTER DATABASE 数据库名称 WITH RECOVERY
GO

镜像拆除后的状态是可以访问数据的

5、(高性能模式)主库服务器和见证服务器关闭,查看镜像服务器数据库是否能访问

主库服务器和见证服务器都关闭显示如下状态

如果主库和见证服务器宕机一时半会没法恢复,但是急需恢复业务

可以执行拆除镜像来快速恢复使用

但是有可能在镜像服务器有些数据没有及时同步主库的,所以可以有数据丢失的情况!(除非能接收数据可丢失的情况,不然别轻易操作)

USE [master]
GO
--拆除镜像
--当镜像库显示正在恢复想变为正在还原模式执行下面
ALTER DATABASE 数据库名称 SET PARTNER OFF
GO
--将数据库从还原状态转化成正常模式
ALTER DATABASE 数据库名称 WITH RECOVERY
GO

6、(高性能模式)去除见证服务器,镜像服务器关闭,查看主库服务器状态

查看到主库的状态是断开镜像连接,但是能正常访问到表数据,不受影响!

7、(高性能模式)去除见证服务器,主库服务器关闭,查看镜像服务器状态

镜像服务器的状态是(镜像,已断开连接/正在恢复)

强制服务把镜像库变为主库,但是这样可能会造成数据丢失

--在高性能下手动转移镜像(在从服务器上),此时主服务器已停止
--同样适用高安全
--FORCE_SERVICE_ALLOW_DATA_LOSS=强制服务允许数据丢失
USE [master]
GO
ALTER DATABASE 数据库名称 SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
GO

也可以把镜像拆除,但是这种情况也会跟主库数据不一致的情况,因为高性能模式是主库数据传输到镜像库

当主库突然宕机,有些数据没来得及传输到镜像库就宕机了,这种情况就好镜像库的数据跟主库对比有所丢失!

USE [master]
GO
--拆除镜像
--当镜像库显示正在恢复想变为正在还原模式执行下面
ALTER DATABASE 数据库名称 SET PARTNER OFF
GO
--将数据库从还原状态转化成正常模式
ALTER DATABASE 数据库名称 WITH RECOVERY
GO

8、总结:

经过测试高性能模式得出如下结论:

原文地址:https://www.cnblogs.com/Sungeek/p/12069330.html

时间: 2024-10-11 19:58:29

SQLServer数据库镜像高性能模式下维护的相关文章

sqlserver数据库镜像运行模式

运行模式: 从大层面来说,SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作.可以从图1-1中查看运行模式. 在高性能模式下,主体服务器不需要等待镜像服务器响应即可提交事务. 在高安全性模式,需要把事务同步到镜像并得到响应后才最终提交主体服务器的事务 这种模式是同步模式,可以细分为带有自动故障转移(即有见证服务器)的高安全模式和不带自动故障转移(即没有见证服务器)的高安全性模式.如果没有配置见证服务器,那么[带自动故障转移功能的高安全性(同步)

SQLServer 数据库镜像(二)域环境中完整镜像脚本配置

SQLServer 数据库镜像(一)单服务器无见证的镜像脚本配置 断断续续弄了几天,搭建了域,服务器加入域后再测试另一种情况. 测试环境: 主服务器:   IP = 192.168.2.10 InstanceName = MSSQLSERVER LISTENER_PORT = 5022 镜像服务器:    IP = 192.168.2.10 InstanceName = MSSQLSERVERA LISTENER_PORT = 5023 见证服务器: IP = 192.168.2.11 Inst

SQLServer 数据库镜像+复制切换方案

目标: 主机做了Mirror和Replication,当主机出现问题时,Replication和Mirror实现自动的故障转移(Mirror 和Replication都切换到备机,而当主机 重新启动后,自动充当备机的角色). 环境: 五台虚拟机,配置均为Windows2008 Enterprise + SQLServer2008R2 Enterprise 08R201:Mirror 见证机(WITNESS)           IP:192.168.56.101 08R202:主机(Rep+Mi

SqlServer 数据库镜像 随笔

2.建立数据库镜像. A)确保环境稳定:在备份主数据库前,需保证主数据库没有大量的读写操作,让主数据库处于尽量稳定的状态下.如果条件允许,在镜像建立好之前,最好关闭所有会大量读写数据库的服务.下面假设主数据库的名称为"Brandwisdom_v9". B)建立完整备份:为主库建立一个备份类型为"完整"的数据库备份,假设备份的文件名为"bw_v9_20130813.bak",为了减少拷贝备份文件的时间,可以在备份选项中,设置备份压缩为"压

SqlServer 数据库镜像 从库故障

数据库镜像同步失败 提示从库5022无法访问或不存在 在做数据库镜像最多的错误时在最后一个步骤中,进行镜像同步时,需要在每一台SQL08R2服务器上启用"Remote DAC",否则可能会收到错误提[数据库镜像同步失败 提示从库5022无法访问或不存在 错误1418] 开启办法: 1. 右击服务器节点,选择"方面"     2. 打开"查看方面"窗口,在"方面"下拉菜单中选择"外围应用配置器",指定&quo

SQLServer 数据库镜像+复制方案

目标: 主机做了Mirror和Replication,当主机出现问题时,Replication和Mirror实现自动的故障转移(Mirror 和Replication都切换到备机,而当主机 重新启动后,自动充当备机的角色). 环境: 五台虚拟机,配置均为Windows2008 Enterprise + SQLServer2008R2 Enterprise 08R201:Mirror 见证机(WITNESS)           IP:192.168.56.101 08R202:主机(Rep+Mi

数据库热备之SQLServer的数据库镜像实施笔记

转载自:http://kb.cnblogs.com/page/45937/ 最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像) 在虚拟机环境下部署成功,一切都是那么的完美.故障转移3秒之内就可以顺利完成. 1.高可用性的实施代码: /******************************************************** 此脚本在主体服务器执行 ************************

SQLServer 复制和数据库镜像 详细配置部署

SQLserver 可以把镜像和复制同时部署,结合了双方的高可用性,可以使数据库得到更好的高可用性和容灾的保证. 关于镜像:数据库镜像 关于复制:数据库镜像 本章的复制为事务可更新订阅:事务复制的可更新订阅 关于复制和数据库镜像:复制和数据库镜像 理论的东西参考官方文档吧,这里主要是部署配置过程. 下图为本章参考部署的架构图: 本章模拟的服务器: kk-ad 192.168.2.1 DC(域控) kk-db1 192.168.2.10 主机(Replication + Mirror) kk-db

MS SQL2005数据库镜像搭建

一.准备工作: 3台服务器同版本,硬盘分区大小相同,安装相同版本数据库软件. host中分别标注3台服务器IP和主机名称. 主体服务器上创建数据库,并进行完整备份数据库和数据库事务. 拷贝备份文件给镜像服务器进行还原,还原覆盖原有数据库.不对事务进行任何操作. 搭建成功后使用网站进行测试其可用性.(数据库在创建好数据库镜像后添加的话:先创建数据库.然后将数据库文件覆盖创建的数据库文件,使用脱机方式覆盖,创建连接数据库账户先删除原来账号再创建.) 二.镜像服务器不能为连接数据库账号自动管理,需要在