• 自动秒收录
  • 软件:1973
  • 资讯:57939|
  • 收录网站:279743|

IT精英团

从0构建SQL Server AlwaysOn第3章(配置AlwaysOn)

从0构建SQL Server AlwaysOn第3章(配置AlwaysOn)

浏览次数:
评论次数:
编辑: 温瑜
信息来源: ITPUB
更新日期: 2022-09-23 01:45:00
摘要

第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnblogs.com/lyhabc/p/4682028.html第三篇htt

  • 正文开始
  • 相关阅读
  • 推荐作品

00-1010第一篇文章

http://www.cnblogs.com/lyhabc/p/4678330.html

第二篇文章

http://www.cnblogs.com/lyhabc/p/4682028.html

第三篇文章

http://www.cnblogs.com/lyhabc/p/4682986.html

第四章

http://www.cnblogs.com/lyhabc/p/6136227.html

设置非域AlwaysOn win2016 SQL2016

http://www.cnblogs.com/lyhabc/p/6498712.html

SQL Server AG集群无法启动的临时自助技巧

http://www.cnblogs.com/lyhabc/p/6953255.html

本文是从0开始构建SQL Server AlwaysOn的第三篇文章。本文真正开始构建AlwaysOn。前两篇文章是为了打造AlwaysOn。

步骤

本文还是用循序渐进的方式来介绍如何构建AlwaysOn。

请使用本地用户管理员登录到这两个集群节点并执行以下操作,但不要使用域用户DCADMIN登录。

1.两个群集节点都需要安装。NET Framework 3.5先行(在Windows Server 2012 R2中,使用add函数安装)。

2.每个集群节点都要在本地准备好相关软件,在每个节点上独立安装SQL Server 2012(不能以集群的方式安装),这样才能保证所有节点使用相同的安装目录结构和排序规则!

选择新的SQL Server独立安装,而不是新的SQL Server故障转移群集安装。

至于安装过程,默认下一步就可以了,和单机安装SQL Server没什么区别,这里就忽略安装过程了。

注意:因为我的安装包已经安装在自带SP1补丁包,为了避免以后踩坑,如果没有安装SP1或以上的service pack,请先安装。

FA44AAE4B4/0C5D56A65D6CC1E7AF533FFA44AAE4B4.jpeg">

 

注意:如果一开始使用域用户DCADMIN来登录集群节点机器,并安装SQL Server的时候会遇到一个坑,SQL Server安装程序会连接故障转移集群,但是实际上单机安装SQL Server根本不需要连接故障转移集群

本人排查了很久都找不到原因,为什么SQL Server安装程序会连接故障转移集群,下面是SQL Server安装日志

如果一开始就使用集群节点本地用户Administrator登录来安装SQL Server就不会踩到这个坑

 

 

3、注销集群节点计算机,然后使用域用户DCADMIN登录,然后设置SQL Server的启动账户为域用户DCADMIN

打开服务管理器,先修改SQL代理的启动账户为域用户DCADMIN,然后再修改SQL 引擎的启动账户为域用户DCADMIN

点击“位置”,修改查找位置,选中abc.com

点击“高级”

点击“立即查找”,选中DCADMIN


点击“确定”

 

输入域用户DCADMIN的密码

 

重启一下SQL代理服务

 重启之后可以看到登录用户为DCADMIN@abc.com

 

同样,SQL引擎服务也需要同样的设置

 

这样,SQL引擎服务和SQL代理服务都用域用户DCADMIN启动

另一个集群节点的SQL Server也需要做同样的操作

 

注意:在集群节点脱离域之后,SQL引擎服务和SQL代理服务都要用本地服务帐号来启动,不能再用域用户来启动

 

 

4、将DCADMIN域用户加入到两个集群节点的SQL Server登录用户中,服务器角色选择sysadmin

先用sa登录SQL Server

添加登录用户,跟SQL 服务添加启动账户的步骤一样,将DCADMIN域用户添加为登录用户

 给予sysadmin权限

两个集群节点都可以用DCADMIN域用户来登录SQL Server

 

 

 

5、回到SQL Server配置管理器,启用AlwaysOn可用性组

注意:集群节点一定要能进行通信,如果集群节点之间断开通信,那么启用AlwaysOn的时候会报错

 

重启SQL Server

如果AlwaysOn启用成功,在服务器属性里可以看到启用HADR为True

 

6、在其中一个集群节点的SQL Server中验证各节点的投票数 ,在其中一个集群节点的SQL Server上执行
使用下面SQL语句

SELECT * FROM  sys.dm_hadr_cluster_members;

SELECT * FROM SYS.[dm_hadr_cluster]

 

7、再次确保各节点已经关闭防火墙,如果防火墙没有关闭,那么在创建可用性组的时候会弹出下面错误

无法将数据库“test”联接到可用性副本“xxx”的可用性组“xx”

针对主副本的连接未处于活动状态。无法处理该命令(错误:35250)

 

 

 

8、我们使用自行初始化数据库的方式,所以这一步需要新建一个测试库和测试表并插入一些测试数据(这些动作就不演示了),然后对数据库做一个完整备份 和 日志备份

然后把完整备份文件和日志备份文件搬到WIN-5PMSDHUI0KQ机器上依次进行还原,完整备份-》还原完整备份-》日志备份-》还原日志备份
脚本

--在win-7107jjj2bcc上执行
CREATE DATABASE [test]

USE [test]
CREATE TABLE [test1]([id] INT,[name] VARCHAR(100))
INSERT INTO [test1] SELECT 1,'test'
--在win-7107jjj2bcc上执行
DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)
SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','')


--(test 数据库完整备份)
SET @FileName = 'c:\DBBackup\test_FullBackup_' + @CurrentTime+'.bak'
BACKUP DATABASE [test]
TO DISK=@FileName WITH FORMAT ,COMPRESSION


--(test 数据库日志备份)
SET @FileName = 'c:\DBBackup\test_logBackup_' + @CurrentTime+'.bak'
BACKUP log [test]
TO DISK=@FileName WITH FORMAT ,COMPRESSION
--在WIN-5PMSDHUI0KQ上执行

USE [master]
RESTORE DATABASE [test] FROM DISK = N'C:\DBBackup\test_FullBackup_2015_07_30_093949.bak' WITH FILE = 1,
MOVE N'test' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test.mdf',
MOVE N'test_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test_log.ldf',
NOUNLOAD,NORECOVERY, REPLACE, STATS = 5

GO





--注意一定要用NORECOVERY来还原备份
USE [master]
RESTORE DATABASE [test] FROM DISK = N'C:\DBBackup\test_logBackup_2015_07_30_105949.bak' WITH FILE = 1,
NOUNLOAD,NORECOVERY, REPLACE, STATS = 5

GO

自行初始化数据库的好处是:如果我们的辅助副本是跨机房的我们都可以控制初始化的时间,也就是备份和还原的时间,不需要SQL Server来帮我们备份还原数据库

在WIN-5PMSDHUI0KQ上还原日志备份之后的样子


 

 

9、在“Alwayson高可用性”节点上右键选择“新建可用性组向导

注意:加入到AlwaysOn可用性组的数据库必须符合下面要求

(1)数据库的恢复模式必须是“完整”恢复模式

(2)数据库已进行了一次完整备份

(3)需要是用户库,系统库不能加入可用性组

(4)数据库可以读写,只读库不能加入到可用性组

(5)数据库处于多用户模式

(6)数据库没有使用AUTO_CLOSE

(7)不属于任何其他的可用性组

(8)数据库没有配置数据库镜像

一个可用性组最大支持100个数据库


 

10、点击“下一步”,输入一个从未使用过的高可用性组名称 testAG

 


 

11、点击下一步,选择要添加的数据库

 

12、点击“下一步”,使用添加副本来将其他节点添加到可用性组中,并选择自动故障转移节点和同步提交节点,因为我们只有两个节点

我们将辅助副本设置为可读,能够自动故障转移,同步提交模式

13、点击“端点”tab页面设置端点

注意:端点URL使用IP的方式,不要用FQDN长名的方式,因为服务器通常会有两个网卡,一个public网卡,一个private网卡,端点建议使用private网卡地址

这样在端点直接传送的数据就会经由private网卡来传送,使用TCP://test.abc.com:5022 这种FQDN长名的方式是不能保证端点数据通过private网卡来传送

SQL Server服务账户使用域用户DCADMIN来进行身份验证,避免使用证书的方式

 

14、“备份首选项”和“侦听器”不需要设置,保持默认就行,可用性侦听器我们后面再添加,可以直接点击“下一步”

点击“是”

 

15、选择初始数据同步,这里选择“仅联接”模式

 

 16、点击“下一步”来验证配置,对应侦听器配置警告可以忽略,后期来添加侦听器

因为使用的是“仅联接”数据库初始化方式,验证跳过像可用磁盘空间这样的检查

 


 

17、点击“下一步”来检查并确认之前的配置信息,若无误,点击“完成”。另外,此处也可保存建立可用性组脚本,以便分步诊断故障之用。

 


 

18、所有摘要均成功完成,显示绿色对勾。如果出现黄色警告,则需进行进一步判断是否成功。若出现红色错误,表示AG创建不成功

注意:如果大家使用奇数集群节点,并且仲裁配置使用的是节点多数,那么在创建可用性组完毕的时候,WSFC仲裁投票配置会显示警告

点击警告链接会弹出下面的对话框,这个警告其实可以不用理会

 


 

19、查看服务器和数据库的变化

主副本

数据库变为已同步

辅助副本

辅助副本这时候是可读的,在主副本上对test1表做的更改都能同步到辅助副本上的test1表


 

再看一下故障转移集群管理器

可用性组变为一个集群角色

点击显示面板可以显示可用性面板

20、在创建可用性组后,在“可用性组侦听器”上右键添加侦听器来创建侦听器,选择静态IP的网络模式(尽量不要选择DHCP网络模式),

输入一个从未使用过的名称(该名称将被用来创建网络名称资源)和访问端口

 

点击确定

 

创建成功

在域控的DNS管理器上会注册一条A记录

在AD里的Computers容器里会添加一个故障转移集群虚拟网络名称账户

 

在故障转移集群管理器里的角色节点,可以看到客户端访问名称和IP地址,客户端通过这个访问名称进行访问数据库



 

使用侦听器名称进行登录SQL Server



 

当然也可以用listener IP来连接SQL Server

 

在辅助副本添加登录用户,让主副本上的登录用户也可以读取辅助副本数据
步骤1:查看主库上该账号的sid [test]为库名
SELECT * FROM [test]..sysusers
比如:dalogin 0x99AD266AFD26F841B3E49EF9633B0D4B

步骤2:在副本数据库上创建对应账号,其中 sid对应的值是主库上所查到的sid的值
CREATE LOGIN [dalogin] WITH PASSWORD=N'xxxxxxx',
SID =0x99AD266AFD26F841B3E49EF9633B0D4B, DEFAULT_DATABASE=[test],
 CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

 

报表账号设置
在主副本中,执行:
use 库名
go
grant exec to 报表账号连接所用的用户 或grant exec on 存储过程 to 报表账号连接所用的用户


可用性组的基本管理

注意:尽量用SSMS的UI或TSQL语句来操作可用性组,不要用故障转移集群管理器来操作

 

故障转移

首先使用 侦听器名称来登录SQL Server,查看当前是在主副本是在哪个机器

 

手动故障转移

选中testAG这个可用性组,右键-》故障转移

点击“下一步”

点击“下一步”

连接到 WIN-5PMSDHUIOKQ这台辅助副本机器

点击“完成”

开始进行故障转移

再一次执行查询

已经故障转移到WIN-5PMSDHUIOKQ这台机

查看一下testAG可用性组的属性

 

执行下面SQL语句,将WIN-7107JJJ2BCC机器设置为可读副本

USE [master]
GO
ALTER AVAILABILITY GROUP [testAG]
MODIFY REPLICA ON N'WIN-7107JJJ2BCC' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL))
GO

执行下面SQL语句测试一下

在当前主副本执行

insert into test1 select 3, 'test3'

 


可以看到数据已经同步过来WIN-7107JJJ2BCC机器,并且数据库可读

可读辅助副本是只读的,如果要对它进行数据更改则会报错

print 'servername: '+@@SERVERNAME 


insert into [test].[dbo].[test1] select 4, 'test4'

AlwaysOn相关视图

--通过这两个视图可以查询AlwaysOn延迟
SELECT b.replica_server_name ,
a.*
FROM sys.dm_hadr_database_replica_states a
INNER JOIN sys.availability_replicas b ON a.replica_id = b.replica_id

--可用性组所在Windows故障转移集群
SELECT * FROM sys.dm_hadr_cluster;
SELECT * FROM sys.dm_hadr_cluster_members ;
SELECT * FROM sys.dm_hadr_cluster_networks;
SELECT * FROM sys.dm_hadr_instance_node_map;
SELECT * FROM sys.dm_hadr_name_id_map

--可用性组
SELECT * FROM sys.availability_groups;
SELECT * FROM sys.availability_groups_cluster;
SELECT * FROM sys.dm_hadr_availability_group_states ;
SELECT * FROM sys.dm_hadr_automatic_seeding
SELECT * FROM sys.dm_hadr_physical_seeding_stats

--可用性副本
SELECT * FROM sys.availability_replicas;
SELECT * FROM sys.[availability_read_only_routing_lists]
SELECT * FROM sys.dm_hadr_availability_replica_cluster_nodes;
SELECT * FROM sys.[dm_hadr_availability_replica_cluster_states]
SELECT * FROM sys.[dm_hadr_availability_replica_states]

--可用性数据库
SELECT * FROM sys.availability_databases_cluster;
SELECT * FROM sys.dm_hadr_database_replica_cluster_states;
SELECT * FROM sys.[dm_hadr_auto_page_repair]
SELECT * FROM sys.[dm_hadr_database_replica_states]

--可用性组listener
SELECT * FROM sys.availability_group_listener_ip_addresses;
SELECT * FROM sys.availability_group_listeners;
SELECT * FROM sys.dm_tcp_listener_states;



--添加只读路由列表
ALTER AVAILABILITY GROUP [agtest2]
MODIFY REPLICA ON N'WIN-5PMSDHUI0KQ' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS= READ_ONLY));


ALTER AVAILABILITY GROUP [agtest2]
modify REPLICA ON N'WIN-5PMSDHUI0KQ' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'TCP://192.168.66.157:1433'))

ALTER AVAILABILITY GROUP [agtest2]
MODIFY REPLICA ON N'WIN-4AE61RVA6UV' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS= READ_ONLY));

ALTER AVAILABILITY GROUP [agtest2]
modify REPLICA ON N'WIN-4AE61RVA6UV' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'TCP://192.168.66.158:1433'))

 

 


总结

AlwaysOn搭建步骤就介绍到这里,希望大家跟着我来体验一下AlwaysOn的强大

 

同样的,添加一个辅助副本的操作: 加域、加入故障转移集群、更改仲裁配置、添加辅助副本 

按照文章的来操作相信添加辅助副本也不难

 

还有一个就是遇到问题多看看SQL Server errorlog和WSFC的事件日志

 

对于更多信息可以参考《SQLSERVER2012实施与管理实战指南》书本

地址: http://product.dangdang.com/1419881008.html

 

相关文章

http://www.cnblogs.com/stswordman/p/3821538.html

http://www.cnblogs.com/stswordman/p/3850570.html

http://www.cnblogs.com/stswordman/p/3936584.html

http://www.cnblogs.com/stswordman/p/3252549.html#3229105

http://blogs.msdn.com/b/psssql/archive/2012/09/07/how-it-works-sql-server-alwayson-lease-timeout.aspx

http://blogs.msdn.com/b/alwaysonpro/archive/2014/11/26/diagnose-unexpected-failover-or-availability-group-in-resolving-state.aspx

https://msdn.microsoft.com/zh-cn/library/ff878308%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396

http://www.bubuko.com/infodetail-930336.html  创建了一个弱事件,但它位于错误对象上 下载补丁解决 (https://www.microsoft.com/en-us/download/details.aspx?id=36468)

http://blogs.msdn.com/b/alwaysonpro/archive/2013/10/30/errors-while-trying-to-create-an-availability-group-listener.aspx  19471错误

创建侦听器错误19471,19476 问题
http://blogs.msdn.com/b/alwaysonpro/archive/2013/10/30/errors-while-trying-to-create-an-availability-group-listener.aspx
http://blogs.msdn.com/b/alwaysonpro/archive/2014/03/25/create-listener-fails-with-message-the-wsfc-cluster-could-not-bring-the-network-name-resource-online.aspx

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

 

2015-11-13补充

 

两个节点的AlwaysOn ,用共享文件夹做见证磁盘

当自动故障切换的时候,有时候出现,辅助副本正在解析的现象,之前以为是仲裁丢失(WSFC与文件共享见证失去联系),导致WSFC挂掉,后来发现原因是WSFC控制面板里的角色属性里面的最大故障数的问题而导致的

推荐将指定时段内的最大故障数设置为10 



 LogDate ProcessInfo Text
2015-11-13 15:28:56.140 spid46s State information for database 'test' - Hardended Lsn: '(36:424:1)' Commit LSN: '(36:408:1)' Commit Time: 'Nov 13 2015 3:26PM'
2015-11-13 15:28:56.140 spid46s The availability group database "test" is changing roles from "SECONDARY" to "RESOLVING" because the mirroring session or availability group failed over due to role synchronization. This is an informational message only. No user action is required.
2015-11-13 15:28:56.140 spid48s AlwaysOn Availability Groups connection with primary database terminated for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.

----------------------------------------------------------------
2015-11-13 15:28:56.140 spid29s The state of the local availability replica in availability group 'testAG' has changed from 'SECONDARY_NORMAL' to 'RESOLVING_NORMAL'. The state changed because the availability group state has changed in Windows Server Failover Clustering (WSFC). For more information, see the SQL Server error log, Windows Server Failover Clustering (WSFC) management console, or WSFC log.
2015-11-13 15:28:56.140 spid29s AlwaysOn: The local replica of availability group 'testAG' is going offline because the corresponding resource in the Windows Server Failover Clustering (WSFC) cluster is no longer online. This is an informational message only. No user action is required.
-----------------------------------------------------------------


2015-11-13 15:26:46.160 spid48s The recovery LSN (36:336:1) was identified for the database with ID 7. This is an informational message only. No user action is required.
2015-11-13 15:26:46.160 spid48s Error: 35285, Severity: 16, State: 1.
2015-11-13 15:26:46.160 spid48s AlwaysOn Availability Groups connection with primary database established for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.
2015-11-13 15:26:46.150 spid48s The recovery LSN (36:336:1) was identified for the database with ID 7. This is an informational message only. No user action is required.
2015-11-13 15:26:46.150 spid48s Error: 35285, Severity: 16, State: 1.
2015-11-13 15:26:46.140 spid48s AlwaysOn Availability Groups connection with primary database established for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.
2015-11-13 15:26:42.610 spid46s A connection for availability group 'testAG' from availability replica 'NODE2' with id [4F4BAEC0-1FB9-4CB3-829A-85C35D8A06D4] to 'NODE1' with id [40BFE7BB-407E-46A3-911B-147A468ABEDF] has been successfully established. This is an informational message only. No user action is required.
2015-11-13 15:26:42.110 spid46s State information for database 'test' - Hardended Lsn: '(36:336:1)' Commit LSN: '(36:320:21)' Commit Time: 'Nov 13 2015 3:13PM'
2015-11-13 15:26:42.110 spid46s The availability group database "test" is changing roles from "RESOLVING" to "SECONDARY" because the mirroring session or availability group failed over due to role synchronization. This is an informational message only. No user action is required.
2015-11-13 15:26:42.080 spid29s The state of the local availability replica in availability group 'testAG' has changed from 'RESOLVING_NORMAL' to 'SECONDARY_NORMAL'. The state changed because the availability group state has changed in Windows Server Failover Clustering (WSFC). For more information, see the SQL Server error log, Windows Server Failover Clustering (WSFC) management console, or WSFC log.
2015-11-13 15:15:53.960 spid43s State information for database 'test' - Hardended Lsn: '(36:336:1)' Commit LSN: '(36:320:21)' Commit Time: 'Nov 13 2015 3:13PM'
2015-11-13 15:15:53.960 spid43s The availability group database "test" is changing roles from "SECONDARY" to "RESOLVING" because the mirroring session or availability group failed over due to role synchronization. This is an informational message only. No user action is required.
2015-11-13 15:15:53.950 spid30s AlwaysOn Availability Groups connection with primary database terminated for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.
2015-11-13 15:15:53.950 spid29s The state of the local availability replica in availability group 'testAG' has changed from 'SECONDARY_NORMAL' to 'RESOLVING_NORMAL'. The state changed because the availability group state has changed in Windows Server Failover Clustering (WSFC). For more information, see the SQL Server error log, Windows Server Failover Clustering (WSFC) management console, or WSFC log.
2015-11-13 15:15:53.950 spid29s AlwaysOn: The local replica of availability group 'testAG' is going offline because the corresponding resource in the Windows Server Failover Clustering (WSFC) cluster is no longer online. This is an informational message only. No user action is required.
2015-11-13 15:14:47.610 spid23s The recovery LSN (36:328:2) was identified for the database with ID 7. This is an informational message only. No user action is required.
2015-11-13 15:14:47.610 spid23s Error: 35285, Severity: 16, State: 1.
2015-11-13 15:14:47.600 spid23s AlwaysOn Availability Groups connection with primary database established for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.
2015-11-13 15:14:47.600 spid30s 1 transactions rolled forward in database 'test' (7:). This is an informational message only. No user action is required.
2015-11-13 15:14:47.600 spid30s The recovery LSN (36:328:2) was identified for the database with ID 7. This is an informational message only. No user action is required.
2015-11-13 15:14:47.600 spid30s Error: 35285, Severity: 16, State: 1.
2015-11-13 15:14:47.590 spid30s AlwaysOn Availability Groups connection with primary database established for secondary database 'test' on the availability replica 'NODE1' with Replica ID: {40bfe7bb-407e-46a3-911b-147a468abedf}. This is an informational message only. No user action is required.
2015-11-13 15:14:47.550 spid30s Starting up database 'test'.
2015-11-13 15:14:47.550 spid30s State information for database 'test' - Hardended Lsn: '(36:328:1)' Commit LSN: '(0:0:0)' Commit Time: 'Jan 1 1900 12:00AM'


2015-12-9补充

卸载集群

1、先逐个逐出节点

2、销毁集群,集群最后一个节点不能逐出只能销毁集群,有两种方法,1用命令  2在界面上右键-》销毁集群

方法一:集群node(随便一个集群node)上执行下面命令,不能在DC上执行,因为DC没有安装故障转移集群,sqltestdemo1为集群名,方法一删除得彻底一点

Get-Cluster sqltestdemo1 | Remove-Cluster -Force -CleanupAD

方法二:集群-》更多操作-》销毁集群

3、销毁集群后在每个集群上的powershell里运行下面命令,以清除一些垃圾

Clear-ClusterNode

4、在域控的AD用户和计算机界面里面把集群虚拟名称删除掉

 

5、重新启用和禁用alwayson,在alwayson的各个节点上都要操作一遍


 

 

删除可用性组

1、删除辅助副本

USE [master]
GO
ALTER AVAILABILITY GROUP [HAGroup01]
REMOVE REPLICA ON N'SQLSVR2';
GO

2、删除可用性数据库

USE [master]
GO
ALTER AVAILABILITY GROUP [HAGroup01]
REMOVE DATABASE [SQLDB02];
GO

 

 

3、删除侦听器

USE [master]
GO
ALTER AVAILABILITY GROUP [HAGroup01]
REMOVE LISTENER N'SQLAG01';
GO


4、删除可用性组

USE [master]
GO
DROP AVAILABILITY GROUP [HAGroup01];
GO

5、在域控的AD用户和计算机界面里面把侦听器虚拟名称删除掉

alwayson注意问题

http://www.cnblogs.com/lyhabc/articles/5310781.html

 

 

关于AlwaysOn备份

msdn上和《SQL Server2012实施与管理实战指南》上都没有说到主副本所支持的备份类型

经过测试,主副本跟单实例的SQL Server一样,完整备份、差异备份、日志备份都支持

辅助副本只支持copy-only的完整备份、日志备份,不支持差异备份

 

故障切换判断条件

第一步
lookalive 5秒/次 telnet 1433端口 超时30秒
第二步
isalive    60秒/次 sp_server_diagnoist 超时60秒 超时后再执行3次以防误判

从sql server2012开始使用sp_server_diagnoist比select @@servername判断更准确
防止sqlserver压力大导致的误判
《SQL Server2012实施和管理实战指南》  P42 P50 P53

副本之间 10秒/次 相互ping,如果不通,比如辅助副本不通,会显示为disconnect

 

AlwaysOn注意问题:http://www.cnblogs.com/lyhabc/articles/5310781.html

关于仲裁:http://www.tech-coffee.net/understand-failover-cluster-quorum/



本文来源127.0.0.1:58704/preview/app/index.html

VUE:引入腾讯地图 实现赛道动画
« 上一篇 2022-09-23
  • VUE:引入腾讯地图 实现赛道动画
    0阅读 0条评论 个赞
    效果:引入步骤:在html中通过引入script标签加载API服务在一个盒子元素div中预先准备地图容器,并在CSS样式中定义地图(容器)显示大小创建并显示地图的代码创建动画和标记1.在……
  • 如何在分布式系统中实现对关键资源的互斥访问?
    0阅读 0条评论 个赞
    网络时代,购物、社交等之前只能在线下进行的活动,如今都可以在网络上完成。为了促进消费,电商网、网络店铺经常推出商品限定数量内的“秒杀”,“抢购”活动,类似的临界资源访问还有我们生活中常见的微信多人抢红……
  • Java SE 19的新特性
    0阅读 0条评论 个赞
    源码#源仓库:Github:java_new_features镜像仓库:GitCode:java_new_featuresHashMap新的构造方法#JavaSE19,构造哈希表的时候,由于有扩……
  • JAVA中容器设计的进化史:从白盒到黑盒 再到作为设计模式之一的迭代器
    0阅读 0条评论 个赞
    大家好,又见面了。在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List、Map、Set、Array等类型。当然,为了体现业务层面的含义,我们也会根据实际需要自行封装一些专门的Bea……
  • 利用卡夫卡的赋值模式实现超大群(10万)的消息推送
    0阅读 0条评论 个赞
    引言IM即时通信场景下,最重要的一个能力就是推送:在线的直接通过长连接网关服务转发,离线的通过APNS或者极光等系统进行推送。本文主要是针对在线用户推送场景来进行总结和探讨:如何利用Kafka的Ass……
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • Python入门系列(七)开发常说的"累"与"对象"
    0阅读 0条评论 个赞
    类与对象Python是一种面向对象的编程语言。要创建类,请使用关键字classclassMyClass:x=5创建一个名为p1的对象,并打印x的值p1=MyClass()print(p1……
  • 订单超时案例的RabbitMQ实现
    0阅读 0条评论 个赞
    前言#人间清醒目录前言业务场景JUC(DelayQueue)方案DelayQueue简介JUCDelayQueue实现订单超时案例代码案例代码RedisKey过期事件方案简介RabbitKey……
  • Java开发学习(29)——Maven依赖转移、可选依赖和排除依赖分析
    0阅读 0条评论 个赞
    现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用标签来进行jar包的引入即可。其实就是依赖……
  • 码头工人日常工作的常用命令
    0阅读 0条评论 个赞
    容器生命周期管理Docker创建新容器并运行[run]语法:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]OPTIONS说明:-astdin:指定标准输入……
  • 如何保持Mysql和Redis数据一致
    0阅读 0条评论 个赞
    先阐明一下Mysql和Redis的关系:Mysql是数据库,用来持久化数据,一定程度上保证数据的可靠性;Redis是用来当缓存,用来提升数据访问的性能。关于如何保证Mysql和Redis中的数据一致(……
  • 企业操作和维护实践-丢弃docker构建
    15阅读 0条评论 个赞
    本章目录目录0x00前言简述快速介绍什么是Kaniko?为啥用Kaniko?Kaniko是如何工作的?Kaniko已知功能问题kaniko构建上下文kaniko缓存构建0x01部署使用环境……
  • Linux环境程序如何运行?
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 大促销活动如何抵御高流量DDoS攻击?
    0阅读 0条评论 个赞
    大促活动如何抵御大流量DDoS攻击?每一次活动大促带来的迅猛流量,对技术人而言都是一次严峻考验。如果在活动期间遭受黑产恶意DDoS攻击,无疑是雪上加霜。电商的特性是业务常态下通常不会遭受大流量DD……
  • 微服务系列授权认证(三)JWT
    0阅读 0条评论 个赞
    1.JWT简介官方定义:JWT是JSONWebToken的缩写,JSONWebToken是一个开放标准(RFC7519),它定义了一种紧凑的、自包含的方式,可以将各方之间的信息作为JSO……
  • 这三个特点让G1取代CMS!
    0阅读 0条评论 个赞
    大家好,我是树哥。之前我们聊过CMS回收器,但那时候我们说CMS回收器已经落伍了,现在应该是用G1回收器的时候了。那么G1回收器到底有什么魔力,它比CMS回收器相比强在哪里呢?今天……
  • SQL Server动态生成分区脚本
    0阅读 0条评论 个赞
    一、前言前段时间使用表分区比较多,虽然已经写了SQLServer合并(删除)分区解惑、SQLServer2005分区模板与实例,但是在实践中一直感觉修改SQL脚本的时间比较多,一直想抽个时间来把……
  • 数据库发展史II-数据仓库
    6阅读 0条评论 个赞
    回顾数据仓库的发展历程,大致可以将其分为几个阶段:萌芽探索到全企业集成时代、企业数据集成时代、混乱时代--"数据仓库之父"间的论战、理论模型确认时代以及数据仓库产品百家争鸣时代。数据仓库理论发展历程上……
  • 漫谈考试成长的探索——考试策略
    6阅读 0条评论 个赞
    在《漫谈软件系统测试——问题解决》一文中,文章借鉴控制疫情的四大策略,总结了软件系统质量保障的四大策略。那么在日常工作中,我们应该如何理解测试策略呢?什么是测试策略?测试策略是描述软件开发周期的测试方……
  • Java开发学习- SpringBoot快速入门和启动依赖分析
    0阅读 0条评论 个赞
    一、SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。使用了Spring框架后已经简化了我们的开发。而Spr……
  • C#中的那些锁是如何保证内核态同步的?
    0阅读 0条评论 个赞
    一:背景1.讲故事其实这个问题是前段时间有位朋友咨询我的,由于问题说的比较泛,不便作答,但想想梳理一下还是能回答一些的,这篇就来聊一聊下面这几个锁。InterlockedAutoResetEvent……
  • 谈谈我是如何学习SQL Server的
    0阅读 0条评论 个赞
    谈谈我是如何学习SQLServer的相信很多人都想做大牛,但是你们知道这些大牛是怎样炼成的吗?我的一个同事做了差不多10年的.NET开发,算得上是大牛了吧?如果他遇到他熟悉的项目很快就能手到拿来,立……
  • k8s网络持久存储的StorageClass(如何一步步实现动态持久存储)
    0阅读 0条评论 个赞
    StorageClass的作用:创建pv时,先要创建各种固定大小的PV,而这些PV都是手动创建的,当业务量上来时,需要创建很多的PV,过程非常麻烦。而且开发人员在申请PVC资源时,还不一定有匹配条件的……
  • Web API版本控制 网络6
    0阅读 0条评论 个赞
    为了了解ASP.NETCoreWebAPI的版本控制,我们必须了解API中的一些版本控制策略,然后将API版本控制与OpenAPI集成,以便我们可以在SwaggerUI中看到版本化的API。1……
  • Python数据分析教程(一):Numpy
    0阅读 0条评论 个赞
    数据的纬度一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构NumpyNu……
  • 多线程技术的历史发展和简单使用
    0阅读 0条评论 个赞
    进程与线程进程是应用的执行实例,可狭义理解为一个应用程序就是一个进程。启用一个应用程序时就是启动了一个进程。该应用运行所需的所有地址空间,代码,数据及系统资源都属于此进程。进程所使用的所有资源会在进程……
最近发布资讯
更多