我们最近从实时数据库丢失了一些数据。我们将旧备份恢复为当前的实时数据库,并且一直在修复更新的部分损坏的数据库作为测试数据库。两者都运行在同一台服务器上,计划是测试数据库一旦我们对修复程序有效就会替换实时数据库。
是否有一种简单的方法来交换两个数据库,例如交换他们的名字,所以我们可以切换网站使用哪一个进行最后一分钟的检查?即我们希望将已修复的数据库设置为实时数据库,但能够在不重新构建/重新导入整个导出版本的情况下进行翻转。
我不知道MySQL是否允许以这种方式重命名数据库。
答案 0 :(得分:1)
交换两个名为db1
和db2
的数据库模式:
mysqladmin -uroot -pmypassword create swaptemp
mysqldump -uroot -pmypassword --routines db1 | mysql -u root -pmypassword swaptemp
mysqladmin -uroot -pmypassword drop db1
mysqladmin -uroot -pmypassword create db1
mysqldump -uroot -pmypassword --routines db2 | mysql -u root -pmypassword db1
mysqladmin -uroot -pmypassword drop db2
mysqladmin -uroot -pmypassword create db2
mysqldump -uroot -pmypassword --routines swaptemp | mysql -u root -pmypassword db2
mysqladmin -uroot -pmypassword drop swaptemp
<强>步骤:强>