【问题标题】:Updating the database with the data added to a backup after a crash使用崩溃后添加到备份的数据更新数据库
【发布时间】:2014-05-21 13:22:31
【问题描述】:

我们的 MySQL 数据库应用程序崩溃了。我们有一个备份并在系统崩溃大约一周后恢复它。同时我们使用了一个备份数据库应用程序。如何将本周间隙的数据添加到数据库中。

最好的方法是什么?

编辑。

表结构相同。有许多带有外键的表。

基本上我的问题归结为:

两台服务器上的主键如下所示:

serv1: 123456---

serv2: 123---456

这些都是从表中的外键

我想将两者合并,但是当我从其他表中移动相应数据时,第二个表中的所有主键都反映在外键关系中。

【问题讨论】:

  • 太宽泛了 :( 你想让我们告诉你如何从一个你什么都不告诉我们的应用程序中获取数据,然后将它写入一个你什么都不告诉我们的数据库?

标签: mysql sql otrs


【解决方案1】:

如果你有几个版本的数据库,我猜你现在做的,最好的方法是在在线数据库和丢失的数据之间同步数据。

你可以试试:http://www.red-gate.com/products/mysql/mysql-data-compare/ 或:http://www.devart.com/dbforge/sql/datacompare/

使用 Workbench,您可以比较架构: http://dev.mysql.com/doc/workbench/en/wb-database-diff-report.html

但最好先在测试环境上做个备份,然后尝试比较,可能是同一 ID 存在于两个位置,您需要为您的数据库找到最佳解决方案。

  • 所以将两个数据库(您拥有的实时数据库和最新数据库放在两个测试环境中)
  • 同步它们并检查差异

如果一切正常,则在测试中运行修复,然后在生产中执行。

【讨论】:

  • 数据库架构没有什么不同,但索引在两者之间重叠。
  • 恐怕这需要一些手动工作,恐怕没有数据库同步器会为您解决这个问题。你熟悉架构吗?您总是可以编写自定义脚本来完成这项工作吗?
  • 我选择退出体力劳动。好消息是 PK 表最后只有 12 个键,这些键是乱序的。不过,它与 30 个表中的 fks 挂钩。
  • 12键,子表一共有多少条记录?如果它的编号是这样的,我认为您将能够通过查询轻松地做到这一点。如果您需要任何帮助,请告诉我。
  • 大约有 30 个子表,每个子表包含 10 到 ~100000 条记录。我首先将所有外键设置为在更新时级联。然后重新映射 pks。
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2015-08-15
  • 2012-12-10
相关资源
最近更新 更多