码迷,mamicode.com
首页 > 其他好文 > 详细

Alwayson常用脚本

时间:2015-12-28 12:14:57      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

1、修改实例下所有节点的数据同步模式,在master数据库下运行

--查找所有异步提交的辅助节点,修改为同步提交模式
-- SYNCHRONOUS_COMMIT 同步提交模式   
-- ASYNCHRONOUS_COMMIT 异步提交模式
select ‘ALTER AVAILABILITY GROUP [‘+a.name+‘]
MODIFY REPLICA ON N‘‘‘+c.replica_server_name+‘‘‘ WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT)
GO‘
from sys.availability_groups a 
    --join sys.dm_hadr_instance_node_map b on a.resource_id=b.ag_resource_id
    join sys.availability_replicas c on a.group_id=c.group_id
where availability_mode = 0    --0异步提交 ,1 同步提交模式

2、执行集群转移脚本,在目标节点执行

--执行集群转移的脚本
 select ‘ ALTER AVAILABILITY GROUP [‘+a.name+‘] FAILOVER;‘
 from sys.availability_groups a 

--执行集群强制转移(会丢数据)
select ‘ ALTER AVAILABILITY GROUP [‘+a.name+‘] FORCE_FAILOVER_ALLOW_DATA_LOSS;‘
 from sys.availability_groups a 

3、查看队列情况
SELECT  ar.replica_server_name AS [副本名称] ,
ar.availability_mode_desc as [同步模式], DB_NAME(dbr.database_id) AS [数据库名称] , dbr.database_state_desc AS [数据库状态], dbr.synchronization_state_desc AS [同步状态], dbr.synchronization_health_desc AS [同步健康状态], ISNULL(CASE dbr.redo_rate WHEN 0 THEN -1 ELSE CAST(dbr.redo_queue_size AS FLOAT) / dbr.redo_rate END, -1) AS [Redo延迟(秒)] , ISNULL(CASE dbr.log_send_rate WHEN 0 THEN -1 ELSE CAST(dbr.log_send_queue_size AS FLOAT) / dbr.log_send_rate END, -1) AS [Log传送延迟(秒)] , dbr.redo_queue_size AS [Redo等待队列(KB)] , dbr.redo_rate AS [Redo速率(KB/S)] , dbr.log_send_queue_size AS [Log传送等待队列(KB)] , dbr.log_send_rate AS [Log传送速率(KB\S)] FROM [master].sys.availability_replicas AS AR INNER JOIN [master].sys.dm_hadr_database_replica_states AS dbr ON ar.replica_id = dbr.replica_id WHERE dbr.redo_queue_size IS NOT NULL



4、修改一台服务器可用性组中的某个节点为同步提交模式或者异步提交模式

-- SYNCHRONOUS_COMMIT 同步提交模式   
-- ASYNCHRONOUS_COMMIT 异步提交模式
USE [master]
GO
ALTER AVAILABILITY GROUP [TreasureWDDB140226]
MODIFY REPLICA ON N‘WINDBGYS2091‘ WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT)
GO

5、从系统中查看和调整WSFC投票权(注意是区分大小写的) 

 查看集群WSFC投票权

cluster node /prop |find "NodeWeight"

修改某个WSFC投票权(1拥有投票权 0 没有投票权)

cluster node XXXXXX /porp NodeWeight = 0

这个设置在win2008r2的cluster services 服务里面是没有的,需要单独打补丁才有这个设置选项具体参考

https://support.microsoft.com/zh-cn/kb/2494036

 

5、从系统中查看和调整WSFC投票权(注意是区分大小写的) 

 查看集群WSFC投票权

cluster node /prop |find "NodeWeight"

修改某个WSFC投票权(1拥有投票权 0 没有投票权)

cluster node XXXXXX /porp NodeWeight = 0

这个设置在win2008r2的cluster services 服务里面是没有的,需要单独打补丁才有这个设置选项具体参考

https://support.microsoft.com/zh-cn/kb/2494036

 

 

 6、加入节点遇到 “计算机已经加入集群”

有时候一些wsfc节点在加入集群的时候遇到错误,请确保该机器不再集群中,如果这机器以前加入过某个集群

后来退出来的,可能有些注册表信息项目没有删除干净容易遇到这样的问题。(我还遇到过一个新装的机器报这个错误)

解决方法:

在该机器命令行运行 cluster node /force 

技术分享

 



最牛DBA大波语:
http://www.cnblogs.com/luck001221/p/4261435.html



Alwayson常用脚本

标签:

原文地址:http://www.cnblogs.com/lhlucky/p/lihaolucky.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!