加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 大数据 > 正文

介绍如何监视数据库镜像的状态

发布时间:2021-06-28 10:32:21 所属栏目:大数据 来源:互联网
导读:验证镜像是否正在运行 基本状况包括了解这两个服务器实例是否正常运行,服务器是否已连接,以及是否将日志从主体服务器移至镜像服务器。 确定镜像数据库是否与主体数据库保持同步。 在高性能模式下,主体服务器可能会积压大量仍需发送到镜像服务器的未发送日

    验证镜像是否正在运行

    基本状况包括了解这两个服务器实例是否正常运行,服务器是否已连接,以及是否将日志从主体服务器移至镜像服务器。

    确定镜像数据库是否与主体数据库保持同步。

    在高性能模式下,主体服务器可能会积压大量仍需发送到镜像服务器的未发送日志记录。而且在任意运行模式下,镜像服务器也有可能积压大量已写入日志文件但仍需在镜像数据库中进行还原的未还原日志记录。

    确定在高性能模式下,当主体服务器实例变得不可用时所丢失的数据量。

    可以通过查看未发送的事务日志量(如果有)以及在主体服务器上提交丢失事务的时间间隔,来确定数据的丢失量。

    将当前性能与过去性能进行比较

    出现问题时,数据库管理员可以查看镜像性能的历史记录来帮助了解当前状态。通过查看历史记录,用户可以检测性能走向,识别性能问题的模式(例如,一天当中网络变慢或进入日志中的命令数变得异常庞大的时间)。

    解决镜像伙伴之间数据流减小的问题。

    设置关键绩效指标的警告阈值。

    如果新状态行中的值超过阈值,则系统便会向 Windows 事件日志发送提示性事件。系统管理员可以随后根据这些事件手动配置警报。有关详细信息,请参阅将警告阈值和警报用于镜像性能指标。

    数据库镜像状态监视工具

    可以使用数据库镜像监视器或 sp_dbmmonitorresults 系统存储过程来监视镜像状态。两个系统管理员(即 sysadmin 固定服务器角色成员以及在 msdb 数据库中,由系统管理员添加到 dbm_monitor 固定数据库角色的用户)均可使用这些工具监视本地服务器实例上任何镜像数据库中的数据库镜像。使用上述任意一种工具时,系统管理员还可以手动刷新镜像状态。

    注意:

    系统管理员还可以配置并查看关键绩效指标的警告阈值。有关详细信息,请参阅将警告阈值和警报用于镜像性能指标。

    数据库镜像监视器

    数据库镜像监视器是一个图形用户界面工具,系统管理员可以使用此工具查看和更新状态,配置多个关键绩效指标的警告阈值。dbm_monitor 固定数据库角色成员还可以使用数据库镜像监视器查看镜像状态表中的最新行,但是这些成员不能更新状态表。

    监视器显示在“状态”选项卡式页面上选择的数据库的状态(包括性能指标)。该页的内容来自主体和镜像服务器实例。通过与主体服务器实例和镜像服务器实例的单独连接收集状态时,会异步填充该页。监视器每隔 30 秒便会尝试更新一次状态表。只有当状态表在 15 秒内没有更新,并且用户是 sysadmin 固定服务器角色的成员时,更新才能成功。有关“状态”页中报告的信息摘要,请参阅本主题后面的“数据库镜像监视器显示的状态”部分。

    有关数据库镜像监视器界面的介绍,请参阅数据库镜像监视器概述。有关启动数据库镜像监视器的信息,请参阅如何启动数据库镜像监视器。

    系统存储过程

    还可以通过运行 sp_dbmmonitorresults 系统存储过程来检索或更新当前的状态。您还可以使用其他 dbmmonitor 存储过程在服务器实例上设置监视、更改监视参数、查看当前更新持续时间以及删除监视。

    下表介绍了管理和使用数据库镜像监视的存储过程,它们独立于数据库镜像监视器工作。

    过程 说明

    sp_dbmmonitoraddmonitoring

    创建定期更新服务器实例上每个镜像数据库的状态信息的作业。

    sp_dbmmonitorchangemonitoring

    更改数据库镜像监视参数的值。

    sp_dbmmonitorhelpmonitoring

    返回当前更新持续时间。

    sp_dbmmonitorresults

    返回所监视数据库的状态行,使您能够选择此过程是否预先获取最新的状态。

    sp_dbmmonitordropmonitoring

    停止并删除服务器实例上所有数据库的镜像监视器作业。

    dbmmonitor 系统存储过程可以用作数据库镜像监视器的附加补充。例如,即使使用 sp_dbmmonitoraddmonitoring 配置监视,也可以使用数据库镜像监视器查看状态。

    监视的工作原理

    本部分介绍数据库镜像状态表、数据库镜像监视器作业和监视器,并介绍用户如何监视数据库镜像状态以及如何删除镜像作业。

    数据库镜像状态表

    数据库镜像状态存储在 msdb 数据库内的一个内部、未记录的数据库镜像状态表中。在服务器实例上首次更新镜像状态时,便会自动创建此状态表。

    状态表可以自动更新,也可以由系统管理员手动更新,但最低更新间隔为 15 秒。将最低更新间隔设置为 15 秒可以防止服务器实例因状态请求而导致重载。

    状态表可以通过数据库镜像监视器和数据库镜像监视器作业(如果正在运行)进行自动更新。默认情况下,“数据库镜像监视器作业”将每分钟更新一次状态表(系统管理员可以将更新持续时间指定为 1 至 120 分钟之间的一个值)。相反,数据库镜像监视器每隔 30 秒自动更新一次状态表。对于这些更新,“数据库镜像监视器作业”和数据库镜像监视器将调用 sp_dbmmonitorupdate。

    当 sp_dbmmonitorupdate 首次运行时,便会在 msdb 数据库中创建“数据库镜像状态”表和 dbm_monitor 固定数据库角色。sp_dbmmonitorupdate 通常通过针对服务器实例上的每个镜像数据库将新行插入状态表来更新镜像状态;有关详细信息,请参阅本主题后面的“数据库镜像状态表”。此过程还会计算新行中的性能指标并截断保留时间长于当前保持期(默认为 7 天)的行。有关详细信息,请参阅 sp_dbmmonitorupdate (Transact-SQL)。

    注意:

    除非数据库镜像监视器当前正在由 sysadmin 固定服务器角色成员使用,否则,只有在具有“数据库镜像监视器作业”并且 SQL Server 代理正在运行时,才能自动更新状态表。

    数据库镜像监视器作业

    数据库镜像监视作业(“数据库镜像监视器作业”)独立于数据库镜像监视器运行。仅当使用 SQL Server Management Studio 启动镜像会话时,才能自动创建“数据库镜像监视器作业”。如果始终使用 ALTER DATABASE database_name SET PARTNER 命令开始镜像,则仅当系统管理员运行 sp_dbmmonitoraddmonitoring 存储过程时,该作业才存在。

    创建“数据库镜像监视器作业”之后,如果 SQL Server 代理正在运行,则默认情况下,每分钟调用一次作业。然后,作业会调用 sp_dbmmonitorupdate 系统存储过程。

    默认情况下,SQL Server 代理每分钟调用一次“数据库镜像监视器作业”,而作业随即调用 sp_dbmmonitorupdate 以更新状态表。系统管理员可以使用 sp_dbmmonitorchangemonitoring 系统存储过程更改更新持续时间,他们还可以使用 sp_dbmmonitorchangemonitoring 系统存储过程查看当前的更新持续时间。有关详细信息,请参阅 sp_dbmmonitoraddmonitoring (Transact-SQL) 和 sp_dbmmonitorchangemonitoring (Transact-SQL)。

    监视数据库镜像状态(由系统管理员执行)

    sysadmin 固定服务器角色成员可以查看和更新状态表。

    使用数据库镜像监视器

    系统管理员可以使用数据库镜像监视器手动刷新“状态”页、导航树或“历史记录”页。如果状态表在前 15 秒内没有更新,则此操作还会更新状态表。


(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读