ITPub博客

首页 > 数据库 > Oracle > 用归档实现无备份下的数据文件恢复和最近学习记载

用归档实现无备份下的数据文件恢复和最近学习记载

原创 Oracle 作者:dotaddjj 时间:2011-11-28 23:44:21 0 删除 编辑

最近这半个月来自己的学习效率太低了,接下来要好好调整自己,按着自己的习惯去学习,然后最大的还是培养的linux的兴趣,linux上自己虽然已经坚持了快两个月了。但是自己觉得还是完全没有达到自己对oracle的学习习惯,遇到了问题和精彩的知识点总是避开,那是不对的,linux也有丰富的内部世界,同样是一个值得学习的领域,虽然学习我们不可能面面俱到,但是就自己现在对linux的掌握还远远不够,剩下来的三个多月的时间里自己真应该好好抓紧。

好了,扯点技术的吧!晚上看pub的一个网友提到了删除了数据文件无备份,但是有归档是否可以恢复.

不过这里还有前提是:控制文件创建时间早于数据文件(要是你重新CREATE CONTROLFILE了,此后再ALTER DATABASE CREATE DATAFILE是失败的(文件在CREATE CONTROLFILE之前创建的情况,控制文件中没有文件创建的有关信息,就不懂该从哪里开始恢复)。利用TRACE的备份重新CREATE CONTROLFILE 会丢失很多原来的信息比如文件的创建时间,备份的信息,SCN等。所以在CREATE CONTROLFILE之后一定要做个全备),而且还要非system表空间而且所有的创建数据文件的archivelog都在是可以实现恢复的,但是如果不满足上述条件则需要采取复杂的手段,就不继续探究了,这里就把符合上述条件测试的结果贴出来吧

Sql>create tablespace deltb datafile 'e:oracleproduct10.2.0oradatatestdeltb01.dbf' size 50M;

Sql>create table test08

tablespace deltb

as select * from dba_users

SQL> select count(1) from test08;

COUNT(1)

----------

27

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 419430400 bytes

Fixed Size 1249320 bytes

Variable Size 83890136 bytes

Database Buffers 327155712 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 7: 'E:ORACLEPRODUCT10.2.0ORADATATESTDELTB01.DBF'

SQL> alter database create datafile 'e:oracleproduct10.2.0oradatatestdeltb

01.dbf';

数据库已更改。

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-01113: 文件 7 需要介质恢复

ORA-01110: 数据文件 7: 'E:ORACLEPRODUCT10.2.0ORADATATESTDELTB01.DBF'

SQL> recover datafile 7;

完成介质恢复。

SQL> alter database open;

数据库已更改

SQL> select count(1) from test08;

COUNT(1)

----------

27

可以看出数据没有任何丢失,实现了完全恢复,从此方面我们更关注了archivelog的重要性,保留归档完全可以实现数据库所有的“前滚“,可以看出生产库不归档是多么的可怕!

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1056593/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662989