Oracle数据库的热备份与完整恢复测试(2)

日期: 2008-06-11 作者:Ziv 来源:TechTarget中国

  //建表test的目的为测试此恢复是否是完整恢复。


  SQL> create table scott.test(t int);


  表已创建。


  SQL> insert into scott.test values(1);


  已创建 1 行。


  SQL> insert into scott.test values(2);


  已创建 1 行。


  SQL> commit;


  提交完成。


  SQL> shutdown immediate


  数据库已经关闭。


  已经卸载数据库。


  ORACLE 例程已经关闭。


  //删除system01.dbf或移动到其他目录造成数据库崩溃。


  SQL> startup


  ORACLE 例程已经启动。


  Total System Global Area 135338868 bytes


  Fixed Size 453492 bytes


  Variable Size 109051904 bytes


  Database Buffers 25165824 bytes


  Redo Buffers 667648 bytes


  数据库装载完毕。


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


  ORA-01110: 数据文件 1: ’F:ORACLEORADATAEBOOKSYSTEM01.DBF’


  //将备份的数据文件复制回目录f:oracleoradataebook下.


  SQL> $ copy f:oraclebackupareasystem01.dbf f:oracleoradataebook


  已复制 1 个文件。


  //恢复数据文件system01.dbf。


  SQL> recover datafile ’f:oracleoradataebooksystem01.dbf’;


  完成介质恢复。


  SQL> alter database open;


  数据库已更改。


  //此说明数据库是完整恢复了。


  SQL> select * from scott.test;


  T


  ———-


  1


  2


  总结:


  1.热备份必须在数据库归档模式下进行


  2.在备份的同时,数据库的用户可以进行操作。因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日至文件中后再进行。(这句引自别人叙述,我对后半句正确与否存在疑问,希望大家讨论)。


  3.归档日志必须是备份后的所有日至才可以实现数据库的完全恢复。


  4.可以备份除临时文件以外的所有数据文件,如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法


  5.特别当损坏的不是系统表空间,可以先将损坏的表空间文件脱机,这时可以在恢复损坏文件前打开数据库,再完成恢复。例如:


  SQL> alter tablespace tools begin backup;


  表空间已更改。


  SQL> $ copy f:oracleoradataebooktools01.dbf f:oraclebackuparea


  已复制 1 个文件。


  SQL> alter tablespace tools end backup;


  表空间已更改。


  SQL> shutdown immediate


  数据库已经关闭。


  已经卸载数据库。


  ORACLE 例程已经关闭。


  //删除tools01.dbf造成数据库无法正常启动.


  SQL> startup


  ORACLE 例程已经启动。


  Total System Global Area 135338868 bytes


  Fixed Size 453492 bytes


  Variable Size 109051904 bytes


  Database Buffers 25165824 bytes


  Redo Buffers 667648 bytes


  数据库装载完毕。


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


  ORA-01110: 数据文件 8: ’F:ORACLEORADATAEBOOKTOOLS01.DBF’


  SQL> alter database datafile ’f:oracleoradataebooktools01.dbf’ offline;


  数据库已更改。


  SQL> alter database open;


  数据库已更改。


  SQL> $ copy f:oraclebackupareatools01.dbf f:oracleoradataebook


  已复制 1 个文件。


  SQL>recover datafile ’f:oracleoradataebooktools01.dbf’;

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Ziv
Ziv

相关推荐