Oracle 11上的rman简单备份

时间:2015-12-08 19:13:52

标签: oracle oracle11g rman

这个问题差不多就像 oracle rman simple backup

但那里没有可接受的答案,这个问题大约是11克。所以我会问:

我想在oracle shema上做一些表初始化DDL测试,并且我想在运行之间将数据库恢复到先前测试状态。我在RMAN中执行以下操作:

shutdown immediate;
startup mount
backup database;
sql 'alter database open';

我认为它工作正常,列表备份显示备份。

比我做了一些修改(添加了一些用户,添加了一些表,添加数据),我尝试恢复备份:

shutdown immediate;
startup mount
restore database;
recover database;
sql 'alter database open resetlogs';

预期结果:数据库应恢复到初始备份的确切状态。

实际结果:我在测试DDL中创建的所有新表和用户仍然存在。我通过关闭连接,重新启动会话,然后甚至从表中选择来验证这一点!即使在恢复后,表格仍然存在!

这是什么处理?在MSSQL和Postgres中,备份意味着您保存数据库的状态,并且恢复它意味着您将返回备份时间。但是对于oracle 11g的RMAN,它声称'恢复是成功的,但证据清楚地显示了其他。

如何让oracle完全保存数据库的状态,然后进行更改,当我恢复时,我希望数据库与我备份时完全相同

这可能在Oracle中实现吗?

1 个答案:

答案 0 :(得分:0)

是的,有可能 - 你有几个选择:

  1. 创建数据库的冷备份(数据文件,控制文件,联机重做日志),然后在必要时还原它们
  2. 执行所谓的“时间点恢复”(假设您的数据库处于存档日志模式)。使用RMAN进行数据库备份时请注意“时间”或“SCN”或“存档日志序列”一段时间后,您可以恢复数据库并恢复到上一个​​时间/ SCN / LOG SEQUENCE
  3. Oracle专门为此目的而设计,我建议您使用“闪回数据库”(浏览Oracle文档以了解这是什么)。
  4. 如果可能的话,Oracle总是“尝试”将数据库恢复/恢复到上次提交的事务,这就是为什么你得到上面描述的结果,但是如果你想恢复到特定的时间/ SCN / SEQUENCE只是告诉Oracle关于这个:)