这个问题差不多就像 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中实现吗?
答案 0 :(得分:0)
是的,有可能 - 你有几个选择:
如果可能的话,Oracle总是“尝试”将数据库恢复/恢复到上次提交的事务,这就是为什么你得到上面描述的结果,但是如果你想恢复到特定的时间/ SCN / SEQUENCE只是告诉Oracle关于这个:)