将文件组设置从RESTRICTED_USER更改为MULTI_USER后,为什么我的数据库镜像崩溃了?


9

我的环境如下: VMWare 5.5充满活力的服务器MS Windows Server 2008R2 Enterprise域和SQL Server 2008 R2 Enterprise。具有光纤通道连接的集中存储。

我的分区中有分区SQL Server DB。我有2个file groups:一个带有实时数据(FG1),第二个带有历史数据(HDG)

第二个文件组是read-only。每个月我都会在分区中移动-我将新数据(上个月的数据)添加到历史数据中。这个过程是自动的

我们将数据库移至新服务器。最初,我必须手动执行该过程。在此操作期间,我的镜像发生故障(在操作3之后-参见下面的流程),并出现以下错误:

在主要服务器上:

日志中的行0:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid84

Message
Setting database option MULTI_USER to ON for database MYDB.

日志中的第1行:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

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

日志中的第2行:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

Message
'TCP://10.201.27.154:5022', the remote mirroring partner for database 'MYDB', encountered error 823, status 3, 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.

备注:我在旧服务器上自动执行了多次此操作,并且从未遇到这样的错误。

在镜像服务器上:

日志中的第1行:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
Error: 823, Severity: 24, State: 3.

日志中的第2行:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
The operating system returned error 5(Access is denied.) to SQL Server during a write at offset 0000000000000000 in file 'e:\Databases\MYDB_HISTRICAL.ndf'. 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.

我的流程如下:

1.我对数据库进行了几次备份(完整,文件组和TLog备份)。

2.我将DB设置为RESTRICTED_USER(以允许通过脚本删除历史文件组标记的只读)。

2a。我删除READ-ONLY了我的历史文件组的标志。

3.我将数据库设置MULTI_USER为允许我们的软件正常运行。

4.我更新分区,以便将数据移到历史文件组中。

5.我重复步骤2图2a3中所以只能再次设置历史文件组READ。

6.我再次进行备份。

有谁知道为什么我会收到该错误?

编辑:我们在程序的不同阶段收到相同的问题。这是镜像发生故障的唯一情况,因此我想问题出在程序内部,但我不知道为什么!


Error: 823, Severity: 24似乎是硬件问题。检查您的磁盘,看它们是否变坏了。在数据库上运行checkdb以确保它们干净。
Kin Shah 2015年

我不确定@Kin。我们有全新的光纤连接的专用IBM存储。它的运行时间约为3个月。这是我们唯一收到此类错误的时间。实际上,大约有10行带有该错误,但是它们都在该时间段内发生。我们销毁镜像并再次创建它。我们有删除镜子的问题。因此,我们手动将其删除。
Bogdan Bogdanov

错误823 with sev 24是硬件问题。您是在执行文件级备份而不是本机sql服务器备份,还是服务器上正在运行任何防病毒软件?您应该放置sql代理警报以在发生823错误时向您发出警报-此脚本将为您提供帮助。另外,823是一个令人讨厌的错误-它表示I / O操作在操作系统级别失败,并且I / O子系统正在导致损坏-sql server没有执行页面校验和
Kin Shah

我们同时进行两种类型的备份,@Kin。我们也有VmWare replication一个remote host。在给您答复之前,我注意到的事情是,我们无法以正常方式销毁镜子。该文件已被锁定,我们需要stop SQL service将db文件移至另一个目录。从那时起,一切都很好(我使用来检查日志sys.xp_readerrorlog)。另一个想法是,如果VmWare复制在那一刻发生,但是我不确定这将如何影响过程(我对此一无所知VmWare)。
Bogdan Bogdanov

We do both type of backups那可能是个问题。VM快照不应用作本机sql服务器备份的替代方法。
Kin Shah

Answers:


0

我们发现了问题。这是SQL Server中的错误。设置READ_WRITE该命令后,该命令未正确传送到mirror数据库中。在partitions镜像服务器上更改脚本开始时,发生错误。之后,同步被破坏并且镜像上的DB被锁定(处于suspended状态)。

我们通过将SQL Server更新到最新版本(我们的初始版本是wiout SP)来解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.