iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Sqlserver镜像切换操作并检查镜像同步情况的示例分析
  • 195
分享到

Sqlserver镜像切换操作并检查镜像同步情况的示例分析

2024-04-02 19:04:59 195人浏览 八月长安
摘要

小编给大家分享一下sqlserver镜像切换操作并检查镜像同步情况的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

小编给大家分享一下sqlserver镜像切换操作并检查镜像同步情况的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

主节点上:
ALTER DATABASE [dbname] SET SAFETY FULL

ALTER DATABASE [dbname] SET PARTNER FaiLOVER

切换完毕到从节点,新的主节点上:
ALTER DATABASE  [dbname] SET SAFETY OFF

检查镜像同步情况:
SET NOCOUNT ON
DECLARE @db_name varchar(100)
DECLARE @dblist TABLE([db_name] varchar(100))
DECLARE @a TABLE(
                   database_name SYSNAME
                  ,[role]  INT
                  ,mirroring_state INT
                  ,witness_status INT
                  ,log_generation_rate INT
                  ,unsent_log INT
                  ,send_rate INT
                  ,unrestored_log INT
                  ,recovery_rate  INT
                  ,transaction_delay  INT
                  ,transactions_per_sec INT
                  ,average_delay  INT
                  ,time_recorded  DATETIME
                  ,time_behind DATETIME
                  ,local_time DATETIME
                 )


--导出镜像数据库名列表
insert into @dblist
select a.name 


 from sys.sysdatabases a (nolock)
join sys.database_mirroring b (nolock) on a.dbid=b.database_id 
where mirroring_guid is not null


EXEC msdb.dbo.sp_dbmmonitorupdate
EXEC msdb.dbo.sp_dbmmonitorupdate  --若server是初次执行这个sp,可能不会产生数据,所以需要再执行一次


--每个镜像数据库的相关记录通过循环全部导入表变量
while exists(select * from @dblist)
begin
set @db_name=(select top 1 [db_name] from @dblist)
delete @dblist where [db_name]=@db_name
INSERT INTO @a
EXEC msdb.dbo.sp_dbmmonitorresults @db_name
  ,0   --返回行数:-1行;-前条;-最近两小时行数;
  ,0   --0表示不调用sp_dbmmonitorupdate,表示调用


end


SELECT database_name
       ,CASE [role] WHEN 1 THEN '主体数据库' 
                    WHEN 2 THEN '镜像数据库' 
                    ELSE NULL END AS 'db_role'
       ,CASE mirroring_state WHEN 0 THEN '已挂起' 
                             WHEN 1 THEN '已断开' 
                             WHEN 2 THEN '正在同步' 
                             WHEN 3 THEN '挂起故障转移' 
                             WHEN 4 THEN '已同步' 
                             ELSE NULL END AS mirroring_state
       ,CASE witness_status  WHEN 0 THEN '未知'
                             WHEN 1 THEN '已连接'
                             WHEN 2 THEN '已断开'
                             ELSE NULL END AS witness_status
       ,unsent_log AS 'unsent_log[kb]'
       ,unrestored_log AS 'unrestored_log[kb]'
       ,send_rate AS 'send_rate[kb/s]'
       ,recovery_rate AS 'recovery_rate[kb/s]'
       ,transaction_delay AS 'transaction_delay/ms'
       ,transactions_per_sec
       ,average_delay
       ,time_recorded
       ,time_behind
       ,local_time
FROM @a

以上是“Sqlserver镜像切换操作并检查镜像同步情况的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Sqlserver镜像切换操作并检查镜像同步情况的示例分析

本文链接: https://www.lsjlt.com/news/64661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Sqlserver镜像切换操作并检查镜像同步情况的示例分析
    小编给大家分享一下Sqlserver镜像切换操作并检查镜像同步情况的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作