--====================================================
--查看镜像状态
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. 《Lua程序设计》第4章 语句 学习笔记

    Lua中的常规语句包括:赋值.控制结构和过程调用.Lua还支持一些不太常见的语句,如:多重赋值(multiple assignment) 和 局部变量声明.4.1 赋值Lua允许“多重赋值”,也就是一 ...

  2. 《转载》Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  3. 【MATLAB】评价二值分割结果的函数

    根据PASCAL challenges的标准:intersection-over-union score,所写的matlab评价程序,处理二值图像. 其思想即分割结果与Ground Trueth的交集 ...

  4. 【SpringBoot整合Elasticsearch】SpringBoot整合ElasticSearch

    一.Linux下安装ElasticSearch 1.检测是否安装了Elasticsearch ps aux |grep elasticsearch 2.安装JDK 3.下载Elasticsearch ...

  5. C# 反射的深入了解

    Assembly.Load("")的使用说明如下;     并不是命名空间.常用的是程序集名称,也就是dll的名称 关于反射Assembly.Load("程序集" ...

  6. 使用MSBUILD 构建时出错 error MSB3086: 任务未能使用 SdkToolsPath“”或注册表项“XXX”找到“LC.exe”,请确保已设置 SdkToolsPath。

    如果项目有添加有WB引用,比如引用其它网站的WEB服务等,那么VS在编译时会自动生成个 [项目名称].Serializers.dll的文件,就是把引用服务中的相关对象信息生成硬编码的程序集,以提高效率 ...

  7. LeetCode 23 Merge k Sorted Lists(合并k个有序链表)

    题目链接: https://leetcode.com/problems/merge-k-sorted-lists/?tab=Description Problem: 给出k个有序的list, 将其进行 ...

  8. sencha touch JsonP 自动提示消息 masked

    //公用类 Ext.define('app.util', { alternateClassName: 'util', statics: { /*为Ext.Viewport添加一个消息提示组件(需要初始 ...

  9. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...

  10. 关于hp proliant sl210t服务器远程iLO接口的管理配置

    提到hp proliant sl210t服务器,首先得提到HP ProLiant SL2500,HP ProLiant SL2500 可扩展系统提供了 一个非常密集的解决方案,可在标准 2U 机箱最多 ...