镜像日志在主数据库上为空,但在镜像服务器上为正常


8

我们有几十个基本服务器和相应的镜像,大多数都工作正常,但是其中1个的行为很奇怪。具体来说,sp_dbmmonitorresults对于给定的主体数据库,proc将所有列返回为NULL,而sp_dbmmonitorresults在镜像上则返回有效信息:

原则服务器上的历史记录

镜像服务器上的历史记录

现在,我有一个大概的原因。当设置主服务器和镜像服务器时,在主服务器上设置不正确的区域设置(时间正确,但使用的是+4区域(美国等),则在设置镜像后,时间区域已更正为GMT +0(学校我知道的男孩错误,但c'est la vie!)

编辑:19/12/2012

今天,我删除了镜像,删除了镜像上的副本,然后重新设置了镜像,但这并没有解决问题!我将悬赏这个问题,以尝试深入研究这个问题。

要确认的是,如果我EXEC sp_dbmmonitorresults @database_name = 'ProScript'在每台服务器上手动运行,它将为主要服务器上的大多数值返回NULL,但在镜像服务器上返回正常,如下所示:

当跑到小学时:

在此处输入图片说明 缩放:单击查看完整尺寸的版本

照镜子时:

在此处输入图片说明 缩放:单击查看完整尺寸的版本

如您所见,时间是当前的并且数据库已同步,但是log_generation_rate,unsent_log,send_rate等在主数据库上都为NULL吗?

两台服务器都有每分钟运行的监控作业,并exec sys.sp_dbmmonitorupdate作为作业步骤等。

查看sys.sp_dbmmonitorupdate的源代码,它将从sys.dm_os_performance_counters- 中获取这些值,因此,如果我在镜像上运行以下命令:

SELECT  counter_name ,
        cntr_value
FROM    sys.dm_os_performance_counters
WHERE   instance_name = 'ProScript'
        AND counter_name IN ( N'Log Send Queue KB', N'Log Bytes Sent/sec', N'Redo Queue KB', N'Redo Bytes/sec', N'Transaction Delay', N'Log Bytes Flushed/sec', N'Transactions/sec' )

我得到了很好的结果:

在此处输入图片说明

但是,如果我在主数据库上运行相同的SQL,则没有行!

这是否表明sys.dm_os_performance_counters没有为镜像填充表?是什么原因造成的???

Answers:


5

好吧,花了几个月的时间,但我终于找到了问题!

根本没有在主服务器上填充sys.dm_os_performance_counters。

原来没有安装计数器的地方,我能够手动执行以下操作:

C:\Windows\system32>lodctr "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSS
QLSERVER\MSSQL\Binn\perf-MSSQLSERVERsqlctr.ini"

重新启动SQL,然后繁荣起来,现在正在填充该表-包括我的镜像统计信息。


一定要找到一个有趣的人。
赞恩

0

您是否尝试过删除主体实例上的数据库镜像监视作业并重新创建它?

这不涉及重新初始化数据库镜像会话,而只是使用SSMS用于管理数据库镜像监视器的相同存储过程删除并重新创建作业。

以下是联机丛书条目的链接:

还有一个简短的示例脚本:

    -- you'll need to be connected to the instance as a member
    -- of the sysadmin fixed server role, of course.

    -- delete the database mirroring monitoring job

    exec msdb.dbo.sp_dbmmonitordropmonitoring;
    go

    -- rebuild the database mirroring monitoring job
    -- the procedure accepts an optional parameter
    -- specifying the number of minutes between updates.
    -- the default is 1 minute.

    exec msdb.dbo.sp_dbmmonitoraddmonitoring;
    go

嗨,科兹,恐怕这是我尝试过的第一件事,我现在已经重试了,没有任何改变。我只是硬着头皮删除镜像并重新添加它。
HeavenCore
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.