我有一个通过MYSQL db使用hibernate的java webapp。我每天至少需要一个小时的数据维护,因此我需要关闭数据库并切换到备份数据库。
我没有看到使用hibernate从我的应用程序切换到另一个数据库的优雅方式。在那儿?
欢迎使用其他完全不同的数据库维护方式。
答案 0 :(得分:1)
当您使用Java WebApp时,我假设您使用的是容器(如Tomcat)或应用程序服务器(如JBoss)。在这两种情况下,您应该通过JNDI使用容器的托管连接。在这种情况下,您可以使用JMX(或管理控制台)更改实际数据源,指向备份数据库,清理池并重新打开新连接。完成后,只需执行相同的步骤,将数据源指向实际的数据库。
如果您没有使用容器的托管连接,那么您就不走运了。由于Hibernate配置是静态的,因此您需要关闭应用程序,使用指向备份的persistence.xml / hibernate.cfg.xml部署新版本,执行维护并部署“旧”版本当你完成。