日期:2014-05-16  浏览次数:20464 次

[小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 4)

小e随笔:今天小e的博客正式开通,欢迎同学们莅临指导

blog:http://blog.csdn.net/elvis_dataguru

案例2:非归档模式下部分脱机备份(tablespace offline)

与前面完全脱机备份案列2类同,就不在重复演示,在多说一句,我们虽然模拟了很多不完全恢复,但真正工作中,一定要尽量避免这种不完全恢复的情况,就算数据库能打开了,也给数据库带来了很多未知的bug,一般经过了不完全恢复后,都建议重建个库,把数据全部都导入到新建的库中。

总结:以前小e一直认为表空间在未归档的时候不能offline,在此强调经过测试,在非归档模式下也可以offline,当然有几个表空间无论处于归档还是非归档都不能offline,前面小e说过,就不在重复了,如果忘了的同学或者刚看小e笔记的同学,请往前看。

 

4     部分联机备份

案例:归档模式下一个或多个数据文件损坏

备份方案:OS联机备份

备份文件

SQL> select * from test;

no rows selected

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     55

Next log sequence to archive   57

Current log sequence           57

SQL> alter tablespace test begin backup;

Tablespace altered.

[oracle@elvis elvis]$ cp test01.dbf bak/

这个时候正往里插入数据

模拟数据

SQL> insert into test values(1,dbms_flashback.get_system_change_number);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

循环插入,数据如下:

SQL> select * from test;

        ID        SCN

---------- ----------

         1     561783

         2     561798

         3     561807

记住这3条数据是在表空间开始备份模式下,插入的数据,现在结束这种状态

SQL> alter tablespace test end backup;

Tablespace altered.

结束状态后插入的数据

SQL> insert into test values(4,dbms_flashback.get_system_change_number);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> insert into test values(5,dbms_flashback.get_system_change_number);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

        ID        SCN

---------- ----------

&nb