2017-02-01 79 views
0

我最近通过用错误的数据更新生产数据库而在工作中犯了一个巨大的错误。我针对生产数据库创建了一个模式,并创建了一个表。然后我得到了一份表格的副本,只有我从测试服务器上取下的数据。例如,我在生产服务器上用列中类型为45的列中的类型6替换了所有用户。我现在只有该特定列中具有类型6的数据的副本,该数据接近4000个用户。我在生产服务器中创建了一个模式,并创建了相同的名称表,并将数据集复制到了我的新模式中。如何将数据集从一个模式转移到另一个模式?

我的问题是,如何将生产数据库中的数据集替换为我从45中错误地替换6的数据集与我的模式数据库表中的数据集,该数据集仅包含具有6列的用户?

我知道我可以手动完成,但它会一直持续下去,并希望有人能够帮助我快速,无痛地做到这一点,如存储程序。因为我在这些日子里一直很肮脏?谢谢

+0

你的db启用了闪回功能吗? – OldProgrammer

+0

您可能会尝试使用'as of timestamp'闪回查询,但是如果已经过了几天,您可能会失败。 –

+0

昨天发生了。我尝试了闪回命令并且遇到了几个错误。 ORA-00604:错误发生在递归SQL级别1,ORA-12801:错误在并行查询服务器P005中发出信号,ORA-01555:快照太旧:名称为“_SYSSMU6_422204433 $”的回滚段号码6太小。有任何想法吗? Thaks – javaTwilight

回答

0

你可以使用rman使用替代table_name来恢复该特定表并重新映射其实际表名。

恢复表scott.new_table 直到时间 “TO_DATE('08 /二千零一十四分之一十七21时01分15' 秒, 'MM/DD/YYYY HH24:MI:SS')” 辅助目的地“/阶段/ PSES /' remap table scott.new_table:actual_table; 或 恢复表new_table_name 直到SCN 1853267 辅助目的地'/ stage/PSES /' remap table scott.new_table:actual_table;

0

如果你已经安装了蟾蜍,并且你在开发数据库中有旧数据,或者如果你可以创建相同的旧数据,那么蟾蜍有选择比较2个不同模式或2个不同数据库中的2个表,结果比较它会给你插入或更新语句,你需要在任何一个模式或数据库上执行同步这两个表。

而且即使是从表中的数据输出(蟾蜍网格选项卡),您可以选择特定的数据,你可以从蟾蜍自动生成DML和您可以使用脚本并插入相同的生产表

+0

我没有安装蟾蜍,可能无法获得将其安装在服务器上的权限。我有一个问题,我尝试使用闪回,并得到错误ora00604,ora12801和ora01555。你会知道它可能是什么 – javaTwilight

+0

似乎闪回日志被覆盖,你不能回闪到特定的时间安排。 –

相关问题