【问题标题】:Oracle rman simple backup on 11g11g上的Oracle rman简单备份
【发布时间】: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 创建的所有表都消失了。那么,唯一真正的问题是,为什么用户被留在身边而数据却没有?
  • 天哪!我不知道现在发生了什么,但现在事实证明,用户被吹走了。真的很奇怪,我能够导航到用户而看不到表,但随后尝试连接,因为用户给出了登录失败消息,然后用户消失了(因此数据库现在又恢复了原来的形式)。这非常非常奇怪……

标签: oracle oracle11g rman


【解决方案1】:

是的,这是可能的 - 您有多种选择:

  1. 创建数据库的冷备份(数据文件、控制文件、在线重做日志),然后在必要时恢复它们
  2. 执行所谓的“时间点恢复”(假设您的数据库处于归档日志模式)。使用 RMAN 进行数据库备份,注意“时间”或“SCN”或“归档日志序列”,一段时间后您可以恢复数据库并恢复到之前记录的时间/SCN/LOG SEQUENCE
  3. Oracle 专门为此目的设计的,我推荐在您的情况下使用“闪回数据库”(浏览 Oracle 文档以了解这是什么)。

如果可能,Oracle 总是“尝试”将您的数据库恢复/恢复到最后提交的事务,这就是您得到上述结果的原因,但如果您想恢复到特定时间/SCN/SEQUENCE告诉甲骨文这件事:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 2014-05-28
    • 2011-05-11
    • 2017-01-15
    • 2020-02-12
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多