spring配置读取方式给数据迁移带来的风险
spring配置读取方式给数据迁移带来的风险
迁移数据库之后,修改Hibernate配置文件context-hibernate.xml的连接串,修改前对文件进行了备份,
备份文件为"复件context-hibernate.xml",备份位置为当前文件夹。
未停原库的情况下,重启应用,发现应用到两个数据库都有连接上来,要开发人员查查是不是还有其他配置文件没有修改,
开发表示只有这一个地方配置了连接,不存在遗漏情况,搜索整个文件夹没发现其他需要配置的地方,后来想想是不是应用读取配置方式设置是不是有问题,
该不会把配置文件夹下所有的.xml都读了吧,于是将"复件context-hibernate.xml"移走到其他地方,重启应用,发现应用完全连接到新的应用了。
事后检查发现spring的配置读取方式是这样设置的:
- <!-- 设定spring配置文件
-->
- <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:**/*context*.xml</param-value>
</context-param>
果然如此,幸好我们的数据库基本上是静态的,只是每天凌晨才会从其他地方同步数据过来,如果是那种交易较多的在线系统,出现这种情况很有可能会导致两边数据库里都有最新的交易数据,
后果严重。
谨记:
1.最好不要再同一目录下备份配置文件。
2.修改配置并重启数据库之后一定要及时检查两边的连接情况。
3.为避免数据混乱,可能的话立刻将原库停止。