文章目录
场景
集团为了提供数据库性能和容错率,将单节点数据库切换为rac。
切库虽然简单,但是也有些内容。
过程
请求方ip统计
新库ip访问策略默认是全部禁止。 所以需要将信任ip添加进白名单。
否则项目访问不了数据库,岂不尴尬。
db_link统计
old_database 可能还会通过db_link访问其他库,这个new_database肯定也要创建响应的db_link。
配置文件数据库地址修改
这个不用说了,有多少个配置文件用到,就要改多少个。 配置文件改完后可以提前上传。因为不重启,配置文件就不会生效。
验证切换流程文档编写
1、eureka查看服务启动情况。
2、sql语句测试db_link连通性。
3、各个项目接口是否正常(查询等接口)。
4、pc端和app端做些操作,看流程是否正常。
切换动作
例如晚上10点切换。这个时间点,大家都下班了,用的人比较少,而且如果出了问题,还有一晚上的时间可以折腾。
停应用
为了保证新老库数据一致,停止应用保证没有新增数据。 运维人员来做。
切库,创建db_link,新老库一致性校验
这个交给dba来做。 这个操作需要一定专业性。
启动应用
还是运维
根据之前写好的流程一步一步进行校验
一定要保证所有涉及的点都测到,对测验点和结果进行记录。 这个可以作为验收文档来评定此次切换的成功与否。
其他
切库看似简单,其实还是要考虑不少内容的,需要协调的方面也不少。
至少涉及到了用户(需要提前给通知),网络人员(配置资源),dba(操作数据库), 切换负责人(主管),运维人员(实际操作),测试人员,开发人员(配置文件的修改以及出现问题随时的技术支持) 。
做好一件事还真不易。
节点无规律挂掉
迁库之后可能会遇到这种现象。
分析不是项目有问题,如果有问题的话,应该是一直启动不起来。不会时好时坏。
后来看日志发现报错是recoverableException: Closed Connection
这基本是数据库最大连接数量不足引起的。因为新库并没有配置足够的连接数。
这也解释了为什么节点无规律挂掉。 看运气了,哪个服务遇到连接池满了,哪个就挂掉。
方案:
找db增加足够的连接数。
保持专业性
新集群一个域名对应7个ip。由2台机器完成。
我说成是7台机器,这太不专业了,一定要严谨。