当前位置: 代码迷 >> J2EE >> java web项目备份以及恢复mysql数据库数据的有关问题
  详细解决方案

java web项目备份以及恢复mysql数据库数据的有关问题

热度:62   发布时间:2016-04-17 22:58:08.0
java web项目备份以及恢复mysql数据库数据的问题
我现在做的项目需要将mysql备份和还原。 数据库连接是用的hibernate。备份和恢复是调用的mysql指令,如下
 备份: mysqldump  --default-character-set=utf8 -t smartbuilding -uusername -ppassword > XXX.slq
恢复:  mysql -uusername -ppassword  databaseName < XXX.sql

现在的问题是
1. 当我执行了一次备份以后,执行恢复操作,数据就无法写入数据库,这个时候如果关掉tomcat,数据就马上写入数据库了。
2.如果我直接执行恢复,这没有问题,这个时候如果刷新页面,那就又出现无法写入数据库的错误。
(直接恢复没有问题的情况是先对备份数据库进行了一次清空操作再将本地sql文件写入工作数据库。之前我觉得这个过程与备份数据库没有直接的操作关系,就将清空备份数据库的操作取消了,取消后发现直接恢复数据也无法进行了)

相关的代码如下:

备份的代码:   备份过程是先将原数据库的数据备份到备份数据库,在备份数据库中删选数据后再备份

备份数据时调用的函数,先清空备份数据库,再把原数据库的数据写入备份数据库

恢复的代码:先判断是什么设备上的信息,然后在原数据库删除该设备上的数据,再调用恢复函数写入数据


ps:本人以为是hibernate的原因把表锁住了,但是测试发现就算关闭了sessionFactory也还是会出现上述问题,我猜测与sessionFactory没有太大关系。

求大神帮忙看看是什么原因导致这个问题。
------解决思路----------------------
会不会数据连接池还占着呢
------解决思路----------------------
建议手动在命令行操作实验下,看看出什么错误。mysql数据库,如果要导入新的备份数据,需要把原数据库drop掉,再create新的空数据库,然后再导入新备份,应该就没什么问题了。
------解决思路----------------------
以前看《Mysql技术内幕》中建议把mysql服务停了,等恢复完再启动!
  相关解决方案