--====================================================
--查看镜像状态
SELECT
DB_NAME(database_id) AS DatabaseName,
dm.mirroring_role AS MirroringRole,
(CASE dm.mirroring_role
WHEN 1 THEN '主体'
WHEN 2 THEN '镜像'
END) AS MirroringRoleDesc,
dm.mirroring_partner_name AS MirroringPartnerName,
(CASE WHEN dm.mirroring_witness_name IS NULL
THEN '--'
ELSE dm.mirroring_witness_name
END)AS MirroringWitnessName,
dm.mirroring_state AS MirroringState,
(CASE dm.mirroring_state
WHEN 0 THEN '已挂起'
WHEN 1 THEN '与其他伙伴断开'
WHEN 2 THEN '正在同步'
WHEN 3 THEN '挂起故障转移'
WHEN 4 THEN '已同步'
WHEN 5 THEN '伙伴未同步'
WHEN 6 THEN '伙伴已同步'
WHEN NULL THEN '无镜像'
END) AS MirroringStateDesc,
dm.mirroring_safety_level AS MirroringSafetyLevel,
(CASE dm.mirroring_safety_level
WHEN 0 THEN '未知'
WHEN 1 THEN '异步'
WHEN 2 THEN '同步'
WHEN NULL THEN '无镜像'
END) AS MirroringSafetyLevelDesc,
dm.mirroring_witness_state AS MirroringWitnessState,
(CASE dm.mirroring_witness_state
WHEN 0 THEN '见证未知'
WHEN 1 THEN '见证连接'
WHEN 2 THEN '见证断开'
WHEN NULL THEN '无见证'
END) AS MirroringWitnessStateDesc
FROM sys.database_mirroring dm
WHERE dm.mirroring_guid IS NOT NULL --============================================================
--查看镜像的日志传送
sp_dbmmonitorresults database_name
, rows_to_return
, update_status database_name
指定返回其镜像状态的数据库。
rows_to_return
指定返回的行数:
0 = 最后一行
1 = 最后两小时的行
2 = 最后四小时的行
3 = 最后八小时的行
4 = 最后一天的行
5 = 最后两天的行
6 = 最后 100 行
7 = 最后 500 行
8 = 最后 1,000 行
9 = 最后 1,000,000 行
update_status
指定返回结果之前,过程:
0 = 不更新数据库的状态。仅使用最后两行计算结果,其保留时间取决于何时刷新状态表。
1 = 通过在计算结果之前调用 sp_dbmmonitorupdate
来更新数据库的状态。但是,如果在前 15 秒内已更新状态表,或用户不是 sysadmin 固定服务器角色的成员,则 sp_dbmmonitorresults
将运行,而不更新状态。 --============================================================
--创建数据库镜像监视器作业,该作业可定期更新服务器实例上每个镜像数据库的镜像状态。
sp_dbmmonitoraddmonitoring [ update_period ]
update_period:指定更新间隔(分钟)。此值可以是介于 1 到 120 分钟之间的值。默认值为 1 分钟。 --============================================================
--自定义查询
--sp_dbmmonitoraddmonitoring 数据来源于dbm_monitor_data WITH tmp AS( SELECT ROW_NUMBER()OVER(
PARTITION BY dm.database_id
ORDER BY dm.[local_time] DESC) AS RID,
*
FROM msdb.dbo.dbm_monitor_data dm)
SELECT * FROM tmp WHERE RID=1 --------------------------------------------------------------------------------
--补充资料
--============================================
--MSDN: http://technet.microsoft.com/zh-cn/library/ms173768.aspx
--sp_dbmmonitorupdate 会插入镜像相关数据,并将超过天的历史数据删除。
--===================================================================
--创建数据库镜像监视器作业,该作业可定期更新服务器实例上每个镜像数据库的镜像状态。
--sp_dbmmonitoraddmonitoring [ update_period ]
--update_period
--指定更新间隔(分钟)。此值可以是介于1 到120 分钟之间的值。默认值为1 分钟。
--要求具有sysadmin 固定服务器角色的成员身份运行,更新间隔过小会影响性能 EXEC msdb.sys.sp_dbmmonitoraddmonitoring 3; --===================================================================
--更改数据库镜像监视参数,设置监视器更新频率
--sp_dbmmonitorchangemonitoring parameter, value
--parameter
--指定要更改的参数的标识符。当前,只有以下参数可用:
--1 = 更新周期,数据库镜像状态表的更新间隔期的分钟数。默认间隔为1 分钟。
--value
--为正在更改的参数指定新值。范围在1 到120 的整数,用于指定新的更新周期(分钟)。 exec msdb.sys.sp_dbmmonitorchangemonitoring 1,2 --===================================================================
--查看监视器更新频率
--sp_dbmmonitorhelpmonitoring exec msdb.sys.sp_dbmmonitorhelpmonitoring --===================================================================
--sp_dbmmonitorresults database_name , rows_to_return, update_status --database_name
--指定返回其镜像状态的数据库。 --rows_to_return
--指定返回的行数:
--0 = 最后一行
--1 = 最后两小时的行
--2 = 最后四小时的行
--3 = 最后八小时的行
--4 = 最后一天的行
--5 = 最后两天的行
--6 = 最后100 行
--7 = 最后500 行
--8 = 最后1,000 行
--9 = 最后1,000,000 行 --update_status
--指定返回结果之前,过程:
--0 = 不更新数据库的状态。仅使用最后两行计算结果,其保留时间取决于何时刷新状态表。
--1 = 通过在计算结果之前调用sp_dbmmonitorupdate 来更新数据库的状态。
--但是,如果在前15 秒内已更新状态表,或用户不是sysadmin 固定服务器角色的成员,
--则sp_dbmmonitorresults 将运行,而不更新状态。 EXEC msdb.sys.sp_dbmmonitorresults DB1, 2, 0; --===================================================================
--停止并删除服务器实例上所有数据库的镜像监视器作业。
--要求具有sysadmin 固定服务器角色的成员身份。 EXEC msdb.sys.sp_dbmmonitordropmonitoring --===================================================================
--检查dbm_monitor_data中数据是否有超过阀值数据,如果有,则报警
--status: 数据库的状态:= 已挂起1 = 已断开2 = 正在同步3 = 挂起故障转移4 = 已同步
--send_queue_size:在主体的发送队列中未发送日志的大小(KB)。
--redo_queue_size:镜像中重做队列的大小(KB)。
--role:服务器实例的当前镜像角色:= 主体1 = 镜像,
--witness_status:见证状态:= 未知1 = 已连接2 = 已断开 use msdb;
GO
IF (OBJECT_ID('tempdb.dbo.#MirrorResult') IS NOT NULL)
BEGIN
DROP TABLE #MirrorResult
END
GO
WITH tmp AS(
SELECT
ROW_NUMBER()OVER(PARTITION BY Database_id ORDER BY local_time DESC) AS RID,
*
FROM msdb.dbo.dbm_monitor_data
)
SELECT * INTO #MirrorResult FROM tmp
WHERE RID=1
AND (
([status]<>2 AND [status]<>4)
OR send_queue_size>30000
OR redo_queue_size>30000) --如果表不为空,则镜像可能出现问题
IF EXISTS(SELECT 1 FROM #MirrorResult)
BEGIN
DECLARE @databaseNames NVARCHAR(MAX);
DECLARE @errorMessage NVARCHAR(MAX);
SET @databaseNames='';
SELECT @databaseNames=@databaseNames+DBS.name+'/' FROM #MirrorResult MR
INNER JOIN master.sys.databases DBS
ON MR.database_id=DBS.database_id set @errorMessage= '数据库:'+@databaseNames+' 镜像断开或者存在大量日志为发送或重做' --发送警告
PRINT @errorMessage END
--===================================================================
--=============================================================================
--查看当前挂起的镜像或有大量日志积压的镜像
WITH tmp AS(
SELECT
ROW_NUMBER()OVER(PARTITION BY Database_id ORDER BY local_time DESC) AS RID,
*
FROM msdb.dbo.dbm_monitor_data
)
SELECT * INTO #MirrorResult FROM tmp
WHERE RID=1
AND (
([status]<>2
AND [status]<>4)
OR send_queue_size>30000
OR redo_queue_size>30000)

Mirror--如何TSQL查看镜像状态和镜像相关存储过程的更多相关文章

  1. NoSQL、memcached介绍、安装memcached、查看memcached状态

    1.NoSQL 2.memcached介绍     3.安装memcached(二进制包安装) yum install -y memcached libmemcached libevent (若没有安 ...

  2. docker镜像的使用及相关

    参考网站docker中文网:http://www.docker.org.cn/book/docker/docker-push-image-13.html 1.搜索容器: docker search t ...

  3. [How to]基于本地镜像的yum镜像源搭建

    1.简介 本文介绍如何在封闭环境(无外网)下安装离线安装本地镜像与基于本地镜像的yum镜像源. 2.环境版本交代: OS:CentOS-6.7-x86_64-minimal yum: yum-3.2. ...

  4. CentOS7安装Docker,运行Nginx镜像、Centos镜像

    摘要 总体思路:yum命令直接安装Docker,下载想要的镜像并启动 1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum instal ...

  5. Mycat 镜像-创建 Docker 镜像

    将 Mycat-server 创建到镜像,使其能够进行容器化部署,我们需要创建 Dockerfile 并在文件中安装其依赖项,使用 centos 做为 base 镜像,并安装 jdk 依赖即可,因此创 ...

  6. Docker学习笔记之从镜像仓库获得镜像

    0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作. ...

  7. 四:FAQ附录(容器交互,镜像交互,镜像导出)

    1.交互式运行容器的方法: 1>-it进入到操作系统中: 2>另开一个cmd验证: 3>这是在image之上多了一个可写的从:可以运行centos的命令做一些事(touch .yum ...

  8. docker-ubuntu镜像,nginx镜像

    docker 是将程序与机器隔开,使程序不受环境影响. 安装 sudo apt-get install docker.io ## 好用的一些命令 1.停用全部运行中的容器: docker stop $ ...

  9. 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作

    实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...

随机推荐

  1. 如何让移植的嵌入式ARM显示中文汉字

    如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont 1.首先,需要文泉驿 ...

  2. 保存对象时碰到的问题-列名 'Discriminator' 无效

    今天保存对象时碰到问题: {"列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效."}  百度了一下,百度找到的一个解决: http:/ ...

  3. WP8.1学习系列(第十一章)——中心控件Hub开发指南

    在本文中 先决条件 什么是中心控件? 添加中心控件 将分区添加到中心 添加交互式分区头用于导航 将展示磁贴添加到中心 使用窄应用中的垂直中心 借助中心使用语义式缩放视图 摘要和后续步骤 重要的 API ...

  4. MFC 虚函数与消息映射区别

    初学MFC添加函数时,总是纠结于是 Add  windows message handler or Add virtual function 说到底不理解MFC中虚函数与消息处理函数的设计区别 本人理 ...

  5. 使用 CSS MARK 改变 SVG 背景色

    CSS masks -webkit-mask 这个属性是相当强大的,详细的介绍请到这里查看,它非常值得深入研究. -webkit-mask 让为一个元素添加蒙板成为可能,从而你可以创建任意形状的花样. ...

  6. ubuntu 用aptitude代替apt-get处理依赖性问题

    aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具.与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些.举例来说,aptitud ...

  7. Elasticsearch学习之深入聚合分析一---基本概念

    首先明白两个核心概念:bucket和metric 1. bucket:一个数据分组 city name 北京 小李 北京 小王 上海 小张 上海 小丽 上海 小陈 基于city划分buckets,划分 ...

  8. 题目1461:Tempter of the bone(深度优先遍历DFS)

    题目链接:http://ac.jobdu.com/problem.php?pid=1461 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  9. ftp主动与被动模式区别

    FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口).但FTP工作方式的不同 ...

  10. C程序设计语言习题(3-3)

    编写函数expand(s1,s2), 将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc……xyz.该函数可以处理大小写字母和数字,并可以处理a-b-c.a-z0-9与a ...