我们知道在高安全模式下,在主服务器上提交的事务必须同时在镜像服务器上提交成功,否则该事务无法在主数据库上提交。

在上面的图中,一个事务在主数据库上提交的步骤包含:

客户端程序将事务发送给主数据库服务器SQLServer

主数据库服务器 SQL Server为这个事务写日志文件

2.1         主数据库服务器将这个事务的日志内容传递给镜像服务器的SQL Server

镜像数据库服务器SQL Server将收到的日志内容写入到日志文件。

镜像服务器回复主服务器写日志的动作完成。

主服务器SQL Server回复客户端程序该事务提交成功。

>2.主数据库服务器SQL Server在检查点时将该事务修改的数据页从内存中写入数据文件。

>3.镜像数据库服务器SQL Server将日志对于的数据页在文件上做变更。

从这样的顺序中,我们提出一个问题,如果镜像服务器的SQL Server在那个时候不能完成步骤3,是否这时主数据库服务器对于的数据库就不能正常的提交事务了呢?本文介绍的两个测试就是模拟日志文件和数据库不可用时候的测试结果

测试一:数据库有多个数据文件和日志文件,分布在不同的磁盘上,在镜像数据库联机的情况下删除一个磁盘,即一个数据文件和日志文件不可能的测试:

1.创建数据库test,添加四个文件。注意为第一个日志文件设置较小的大小并禁止自动增长:

test               C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\test.mdf

test_log           C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\test_log.ldf

test1              E:\test1.ndf

testlog1           E:\testlog1.ldf

2.配置数据库镜像高安全模式,主服务器为SQL1,镜像数据库为SQL2.

3.创建两张测试表test和test1,插入超过1,000,000行数据到test表中.由于第一个日志文件较小且不能自动增长,因此SQL Server开始使用第二个日志文件testlog1.检查数据库镜像的状态:

结果:主数据库显示已principal/sychronized

4.执行下面的脚本,开始事务,这个事务会执行超过10分钟:

begin tran

insert into test  select * from test

insert into test  select * from test

commit

当事务开始执行1分钟以后,暂停数据库镜像1分钟,然后在手工恢复数据库镜像的同步:

结果: 主数据库状态显示principal/synchronizing.

访问test1表,可以返回数据。

6.手工将E盘从镜像数据库服务上拔出:.

结果: 主数据库状态立即变更为 (principal/suspend)。

测试访问主数据库并查询test1表

镜像数据库状态变更为: (mirrored, suspend/restoring)

7.检查事务的执行:

几分钟以后,这个事务显示在主数据库上提交成功。

.

8.检查主数据库和镜像数据库的SQL Server错误日志:

主数据库:

Error: 1453, Severity: 16, State: 1.

‘TCP://LDUA2481460-2.DOM248146.COM:5023‘, the remote mirroring partner for database ‘test‘, encountered error 5159, status 1, severity 24. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.

镜像数据库:

‘TCP://LDUA2481460-2.DOM248146.COM:5023‘, the remote mirroring partner for database ‘test‘, encountered error 5159, status 1, severity 24. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.

Operating system error 2(The system cannot find the file specified.) on file "E:\test_3.ldf" during RestoreFileHdr.

Test 2:在执行并同步一个大事务的时候将镜像数据库删除:

1.    创建数据库test,包含一个数据文件一个日志文件。

test1            E:\test1.mdf

test1_log        E:\test1_log.ldf

2.配置数据库镜像高安全模式,主服务器为SQL1,镜像数据库为SQL2.

3.创建两张测试表test和test1,插入超过1,000,000行数据到test表中.由于第一个日志文件较小且不能自动增长,因此SQL Server开始使用第二个日志文件testlog1.检查数据库镜像的状态:

结果:主数据库显示已principal/sychronized

4.执行下面的脚本,开始事务,这个事务会执行超过10分钟:

begin tran

insert into test select * from test

insert into test select * from test

commit

5.当事务开始执行1分钟以后,暂停数据库镜像1分钟,然后在手工恢复数据库镜像的同步:

结果: 主数据库状态显示principal/synchronizing.

访问test1表,可以返回数据。

6.手工将E盘从镜像数据库服务上拔出:

结果: 主数据库状态立即变更为 (principal/ disconnected)。

测试访问主数据库并查询test1表

镜像数据库不存在。

7.检查事务的执行:

几分钟以后,这个事务显示在主数据库上提交成功。

8.检查主数据库和镜像数据库的SQL Server错误日志:

主数据库:

1453, Severity: 16, State: 1

‘TCP://LDUA2481460-2.DOM248146.COM:5023‘, the remote mirroring partner for database ‘test1‘, encountered error 5149, status 1, severity 16. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance..

镜像数据库:

Error: 17053 Severity: 16 State: 1

RestoreFileHdr: Operating system error 2(The system cannot find the file specified.) encountered.

Error: 5159 Severity: 24 State: 1

Operating system error 2(The system cannot find the file specified.) on file "E:\test1_1.ldf" during RestoreFileHdr.

Error: 823 Severity: 24 State: 3.

The operating system returned error 21(The device is not ready.) to SQL Server during a write at offset 0x00000000012000 in file ‘E:\test1.mdf‘. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information see SQL Server Books Online.

Error: 1454 Severity: 16 State: 1.

While acting as a mirroring partner for database ‘test1‘ server instance ‘LDUA2481460-1\MSSQLSERVER1‘ encountered error 823 status 3 severity 24. Database mirroring will be suspended.  Try to resolve the error and resume mirroring.

测试结果:

主数据库在这两种情况下依然可以访问并且成功提交事务

转自:http://blogs.msdn.com/b/apgcdsd/archive/2012/03/09/10280123.aspx

服务器芯片镜像测试,模拟镜像服务器磁盘问题的两个测试【转】相关推荐

  1. 文华服务器文件夹,文华财经模拟版服务器地址

    文华财经模拟版服务器地址 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.本章节以Windows 2012版本操作系统为例进行CIFS ...

  2. 计算机服务器 芯片,服务器芯片是什么意思?服务器芯片有什么用

    对于服务器而言,主板成为它高性能的载体,那对于服务器主板而言,芯片组可称为主板的灵魂:如果芯片组不能与CPU良好地协同工作,将严重影响计算机的整体性能甚至不能正常工作,芯片组要求有良好的兼容性,互换性 ...

  3. 寒武纪科技 服务器芯片,国内首款人工智能服务器诞生!搭载“寒武纪”芯片,走在世界前列...

    原标题:国内首款人工智能服务器诞生!搭载"寒武纪"芯片,走在世界前列 人工智能领域的迅猛发展,吸引了大量资本和企业布局.而芯片作为人工智能的上游产业已然走在产业前沿,正吸引全球巨大 ...

  4. 超微服务器芯片,北京超微GPU服务器

    国产芯片种g4dbf9类繁多基于ARM架构授权的芯片厂商最有可能形成自主可控指令集.超微GPU服务器北京,由于指令集的复杂性和重要性,自主研发一套全新的指令集难度较大且效益不高.国产CPU厂家大多选择 ...

  5. 服务器芯片玩游戏,若是用服务器玩游戏又会是如何呢?

    2.5.CPU游戏性能测试 CPU在游戏过程中主要负责物理效果演算和AI运算,与GPU的分工明显不同.简单点说,就是"场景内角色越多,CPU性能要求越高",我们平常游戏组队进入大型 ...

  6. 服务器芯片如何开启睿频,服务器器主板打开睿频

    服务器器主板打开睿频 内容精选 换一换 超大内存型弹性云服务器内存要求高,数据量大并且数据访问量大,同时要求快速的数据交换和处理以及低延迟的存储资源.提供超大内存,且有很高的计算.存储.网络能力.在售 ...

  7. arm服务器芯片主板,Broadcom的Arm服务器芯片获重生:Cavium发布双插槽ThunderX2

    Broadcom(博通)砍掉的 Arm服务器处理器项目从坟墓里爬出来,变身成Cavium的64位32核双插槽Armv8-A ThunderX2芯片. Broadcom在2013年曾宣布正在开发Vulc ...

  8. 14nm服务器芯片,Intel最后一代14nm服务器平台仍然杳无踪影 全新10nm Ice Lake具体特性一直未公布...

    描述 这几年对于Intel来说无疑是相当艰难的时刻:对手无论工艺还是架构都快速推进,自家工艺却进展迟缓,短期内仍然要仰仗14nm. 在服务器平台,Intel一年前发布了代号Cascade Lake的第 ...

  9. 华芯通关闭,华为等国产服务器芯片企业再受打击

    国产服务器芯片企业之一的华芯通的CEO已离职,预计本月底关闭,这对于国产服务器芯片产业来说显然是一个重大打击,而对于同样研发ARM架构服务器芯片的华为.飞腾等国产服务器芯片企业来说更是前景不妙的信号. ...

最新文章

  1. C#开发Unity游戏教程之Unity中方法的参数
  2. 160个Crackme039
  3. kettle于javascript步骤错误处理
  4. Linux下静态库和动态库的编译连接
  5. 修改git历史提交的commit信息
  6. JS将/Date(1446704778000)/转换成string
  7. android studio 3.0 安装配置
  8. 手把手教你绘制最基础的列线图
  9. WES学习2:外显子测序分析——小男孩的硬骨化病基因突变
  10. 网络编程基础(Socket ServerSocket)
  11. Android开发自定义水印图片
  12. pem格式证书编码 x509_PEM证书格式
  13. Maven实战(四)--坐标
  14. uni-app(H5)拼图游戏
  15. ES修改集群最大分片数量max_shards_per_node
  16. NB-IoT下行链路简单实现
  17. 工作一到五年的Java程序员该如何提升自己?
  18. linux下查看opencv安装路径以及版本号
  19. 怎么打开设备管理器(有图 超详细)
  20. 多校训练1 A Alice and Bob 博弈

热门文章

  1. 搜索时,怎样排除不需要的关键字
  2. 卸载 系统打印服务器,win10系统打印机驱动卸载不掉的方案介绍
  3. 2020地区mysql表_2020年甘肃省军队文职考试职位表下载:张掖地区招13人
  4. AUTOSAR从入门到精通100讲(三十)-makefile原理及实战案例
  5. 产品认知:揭秘你不会画产品信息结构图的本质
  6. navicat for mysql服务_使用Navicat for MySQL数据库连接服务器中的MySQL服务
  7. 两个向量之间的夹角公式_关于平面向量夹角求参数取值范围的两种基本解法介绍...
  8. NodeJS的安装与使用
  9. vue inheritAttrs、$attrs和$listeners使用
  10. npm dev run 报错