数据库切换(迁移)需要考虑的问题

文章目录

    • 场景
    • 过程
      • 请求方ip统计
      • db_link统计
      • 配置文件数据库地址修改
      • 验证切换流程文档编写
    • 切换动作
      • 停应用
      • 切库,创建db_link,新老库一致性校验
      • 启动应用
      • 根据之前写好的流程一步一步进行校验
    • 其他
      • 节点无规律挂掉
      • 保持专业性

场景

集团为了提供数据库性能和容错率,将单节点数据库切换为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台机器,这太不专业了,一定要严谨。

你可能感兴趣的:(业务)