【发布时间】:2016-03-13 20:36:24
【问题描述】:
这个问题几乎就像 oracle rman simple backup
但那里没有可接受的答案,这个问题大约是 11g。所以我会问:
我想在 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 中,备份意味着您保存数据库的状态,恢复它意味着您回到备份的状态。但在 RMAN for oracle 11g 中,它“声称”恢复成功,但证据清楚地表明并非如此。
我如何让 oracle 将数据库的状态完全保存,然后进行更改,当我恢复时,我希望数据库与备份时完全相同时间>?
这在 Oracle 中可行吗?
【问题讨论】:
-
好吧,这很有趣:在说“去死吧,我会手动回滚”之后,我经历了很多数据库更改(添加了 35 个表)并想“哎呀,我”我只是尝试恢复 db',然后 LO:用户仍然存在,但部署 DDL 创建的所有表都消失了。那么,唯一真正的问题是,为什么用户被留在身边而数据却没有?
-
天哪!我不知道现在发生了什么,但现在事实证明,用户被吹走了。真的很奇怪,我能够导航到用户而看不到表,但随后尝试连接,因为用户给出了登录失败消息,然后用户消失了(因此数据库现在又恢复了原来的形式)。这非常非常奇怪……