实际上,我对这个问题感到困惑,并且在考试中很难回答这个问题:“假设您在休假时接到备份DBA的电话。他在使用ALTER DATABASE CONTROLFILE命令时损坏了所有数据文件。您该怎么办?请解释。”对于这个问题,合适的答案是什么?
发布于 2018-08-17 02:54:37
首先,ALTER DATABASE CONTROLFILE不是一个有效的命令,至少你可以使用ALTER DATABASE BACKUP CONTROLFILE TO TRACE;,我从来没有见过一个Oracle数据库被上面的命令破坏过。
回到你的问题,如果那个家伙破坏了所有的数据文件,restore+recover是唯一的解决方案。
现在您有两个场景:
1)如果数据库处于归档日志模式并已完全备份(每天),则可以使用set until_time子句(以便更接近可能的最后一个事务)恢复数据库,然后在run rman块中使用restore database recover database。
2)如果不是,则只需通过rman发出restore database命令,即可在上次冷(脱机)备份时恢复数据库。
在其中一个步骤结束时,您需要执行OPEN DATABASE RESETLOGS,因为您来自Oracle所谓的“不完全恢复”。
忘记了一件重要的事:
如果那个人只是破坏了数据文件,上面的步骤可以挽救你的生命,如果控制文件由于某种奇怪的原因被破坏,你需要restore controlfile from [backup_name]或from autobackup它,然后将其复制到其他位置(如果有),否则你将需要从头开始重新创建它/它们。
希望这能有所帮助。
为了它而使用:
SQL> alter database controlfile;
ERRORE alla riga 1:
ORA-02231: opzione di ALTER DATABASE mancante o non validahttps://stackoverflow.com/questions/51850262
复制相似问题