【问题标题】:How to query all foreign keys from a backup db and add it to a production db?如何从备份数据库中查询所有外键并将其添加到生产数据库?
【发布时间】:2019-10-05 14:42:00
【问题描述】:

如何查询备份数据库的所有外键并使用它添加到生产数据库?

我们不小心删除了生产数据库的所有表。我们能够使用flashback 方法恢复所有内容。通过一些脚本和手动过程,我们能够通过将所有约束、索引和触发器引用到我们的备份数据库来将其重命名为其原始名称。

我认为现在要恢复的最后一件事是外键。我们如何查询所有外键及其各自的链接/列/表并编写脚本将其添加回我们的生产数据库?

【问题讨论】:

  • 为什么不直接恢复数据库?那么一切都会是一样的。还是备份不包含最新数据?
  • 是的,它不包含所有最近的数据。事实上,这本来很容易恢复。所以基本上,我们需要的只是恢复原始结构。

标签: sql oracle


【解决方案1】:

为什么不从备份数据库中导出/导入该表?

如果您的备份数据库中有表,则使用 expdp 备份表并使用 impdp 生成带有“sqlfile”选项的 sql 脚本。

如果您希望它只生成外键脚本,请使用包含选项 INCLUDE=REF_CONSTRAINT。

【讨论】:

  • 是的,我们可以这样做,但我们谈论的是 400 多个表。所有这些表都是由 PHP 开发人员在他正在开发的应用程序上使用命令 php artisan migrate:fresh 意外删除的。我们正在寻找一种更系统的方式,就像我们如何从 this thread 重命名索引和约束一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 2021-07-05
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2013-03-02
相关资源
最近更新 更多