always on集群添加副本节点是dba经常需要面临的操作,接下来介绍sqlserver always on如何优雅的添加某个副本节点,整体添加工作有四个步骤
一、整体添加工作有四个步骤;
1、新服务器安装WSFC软件;
2、新服务器安装sqlserver软件;
3、WSFC集群添加某个副本节点;
4、always on可用性组添加节点;
注意:这给删除的过程顺序相反,删除是先可用性组剔除节点,然后再wsfc剔除节点
二、接下来介绍具体步骤:
新服务器安装WSFC软件和新服务器安装sqlserver软件这里步骤省略,参考搭建always on集群的过程;重点讲解步骤3和4;
步骤3:WSFC集群添加某个副本节点
1、开始--Windows管理工具
2、选择添加节点
3、进入添加节点向导,一步一步操作即可
3.1、选择服务器,点击浏览
3.2、输入待添加副本服务器的主机名
3.3、点击下一步
3.4、确认待添加副本 服务器的信息,点击下一步
3.5、最后点击完成即可
4、确认添加完毕,如下所示节点信息中可以看到新添加的节点
步骤4:always on可用性组添加节点,
4.1、右键添加副本,进入添加向导
4.2、点击下一步
4.3、连接到副本,点击连接
4.4、点击下一步
4.5、指定副本
4.6、点击下一步
4.7、选择同步方式:
一、方式1:选择
完整的数据库和日志备份
如果你选择的是 完整的数据库和日志备份,那么就需要保证集群中各个节点的数据库目录一致的,否则验证这个步骤不通过,报错如下:
以下必需的目录在副本 WIN-2AEJMNSP8BK 上不存在: D:\sqlserver。 (Microsoft.SqlServer.Management.HadrModel)
程序位置:
在 Microsoft.SqlServer.Management.HadrModel.Validator.Validate(IExecutionPolicy policy, ScenarioValidatorHandler validationDelegate)
在 Microsoft.SqlServer.Management.Hadr.TestDatabaseFileLocationCompatibility.DoWork()
在 Microsoft.SqlServer.Management.TaskForms.SimpleWorkItem.Run()
选择
完整的数据库和日志备份 这种数据同步方式,具体的流程如下所示:可用性组中所有数据库步骤一样:以jjj库为例子
1)首先将jjj数据库添加到可用性组(ALTER AVAILABILITY GROUP liuwenhe ADD DATABASE jjj;
)该步骤执行完毕后,仅仅能在主节点可以看到可用性组liuwenhe中有数据库jjj!
2)创建数据库jjj的完整备份,依次在所有副本上还原(还原日志的时候是使用RESTORE WITH NORECOVERY方式
);
3)备份jjj数据库日志,然后依次在所有副本上还原并且将可用性组所有数据库联接到副本节点的liuwenhe可用性组!
具体如下所示:
最后需要在新添加的副本节点把可用性数据库联接到可用性组,
如下所示:选择联接到可用性组
二、方式2:选择仅链接
该方式相对于
完整的数据库和日志备份 的方式,缺少了自动对主节点数据库做完全备份和事务日志备份的过程,以及在各个副本节点还原完整备份和事务日志备份的过程;需要你手动在主库对所有数据库做完全备份以及事务日志备份,并且把这个完全备份和事务日志手动还原到所有的副本节点;注意:需要
依次把可用组中的所有数据库和事务日志都备份还原添加到新副本节点
;
该方式的优点是:可以让副本的数据库文件目录和主节点不一样。
如下所示,
仅链接的方式操作流程:
那么需要自己在主节点 备份需要添加到可用性组的数据库以及事务日志,然后手动在所有辅助节点恢复数据库以及事务日志,注意需要使用RESTORE WITH NORECOVERY 手动还原主数据库的最新数据库备份到副本节点, 在每个承载可用性组的辅助副本的服务器实例上执行!
一、还原数据库:
登录到辅助副本:
如下选择之前做的完整备份的文件(我选择在主节点共享目录);
如下选择具体的文件
二、还原日志(该步骤非必须)如果完整备份后面,你进行过事务日志备份,则需要还原事务日志备份,因为always on 必须保证数据库是完整恢复模式,一旦你开启了完整恢复模式,那么当你备份事务日志后就会自动截断无用的事务日志,所以如果你做了完整数据库备份后,如果还做了事务日志备份,那么就需要就会自动删除无用的事务日志了,就会导致事务日志不连续了,所以就必须要还原下事务日志;
注意选择restore with norecovery的方式
然后回到主副本(将数据库添加到可用性组 向导):如下所示表示成功把hhh这个库加入到了可用性组!注意数据同步方式选择<仅链接>
确认是否添加成功:依次把可用组中的所有数据库都备份还原添加到新副本节点,
所有节点查看如下是否都包含hhh库