[小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 4)
来源:互联网 发布:蚁群算法数学模型 编辑:程序博客网 时间:2024/05/17 00:12
小e随笔:今天小e的博客正式开通,欢迎同学们莅临指导
blog:http://blog.csdn.net/elvis_dataguru
案例2:非归档模式下部分脱机备份(tablespace offline)
与前面完全脱机备份案列2类同,就不在重复演示,在多说一句,我们虽然模拟了很多不完全恢复,但真正工作中,一定要尽量避免这种不完全恢复的情况,就算数据库能打开了,也给数据库带来了很多未知的bug,一般经过了不完全恢复后,都建议重建个库,把数据全部都导入到新建的库中。
总结:以前小e一直认为表空间在未归档的时候不能offline,在此强调经过测试,在非归档模式下也可以offline,当然有几个表空间无论处于归档还是非归档都不能offline,前面小e说过,就不在重复了,如果忘了的同学或者刚看小e笔记的同学,请往前看。
4 部分联机备份
案例:归档模式下一个或多个数据文件损坏
备份方案:OS联机备份
l 备份文件
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/
这个时候正往里插入数据
l 模拟数据
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
---------- ----------
1 561783
2 561798
3 561807
4 562414
5 562428 --未归档
l 模拟数据文件损坏
[oracle@elvis elvis]$ rm -f test01.dbf
[oracle@elvis elvis]$ ll
total 1747280
drwxr-xr-x 2 oracle oinstall 4096 Oct 7 14:52 bak
-rw-r----- 1 oracle oinstall 9748480 Oct 7 15:08 control01.ctl
-rw-r----- 1 oracle oinstall 52429312 Oct 7 15:08 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Oct 7 14:59 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Oct 7 15:05 redo03.log
-rw-r----- 1 oracle oinstall 629153792 Oct 7 15:06 sysaux01.dbf
-rw-r----- 1 oracle oinstall 734011392 Oct 7 15:06 system01.dbf
-rw-r----- 1 oracle oinstall 71311360 Oct 7 14:52 temp01.dbf
-rw-r----- 1 oracle oinstall 235937792 Oct 7 15:06 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Oct 7 15:05 users01.dbf
SQL> shutdown abort;
ORACLE instance shut down
SQL> startup
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/u01/oracle/oradata/elvis/test01.dbf'
l 数据恢复
[oracle@elvis bak]$ cp test01.dbf .. –类似于restore过程
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 561814
2 561814
3 561814
4 561814
5 561814
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 561814
2 561814
3 561814
4 561814
5 560762
SQL> recover database;
ORA-00279: change 560762 generated at 10/07/2012 14:51:50 needed for thread 1
ORA-00289: suggestion :
/u01/oracle/flash_recovery_area/ELVIS/archivelog/2012_10_07/o1_mf_1_57_872b169o_
.arc
ORA-00280: change 560762 for thread 1 is in sequence #57
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 561793 generated at 10/07/2012 14:58:46 needed for thread 1
ORA-00289: suggestion :
/u01/oracle/flash_recovery_area/ELVIS/archivelog/2012_10_07/o1_mf_1_58_872b1xrq_
.arc
ORA-00280: change 561793 for thread 1 is in sequence #58
Log applied.
Media recovery complete.
SQL> alter database open;
Database altered.
SQL> select * from test;
ID SCN
---------- ----------
1 561783
2 561798
3 561807
4 562414
5 562428
总结:
这种恢复方式有一个好处就是可以在不影响业务和数据库运行包括备份的这个表空间的情况下,得以备份。
非归档模式下就不演示了。
elvis
2012.10.8
知识共享~共同进步
转载请注明:
http://blog.csdn.net/elvis_dataguru/article/details/8054659
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 4)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 1)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 2)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 3)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 5)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 6)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 7)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 8)
- [小e笔记]之一步一步学习备份恢复——第二篇备份恢复原理
- [小e笔记]之一步一步学习备份恢复——第一篇 备份恢复基础相关
- [小e笔记]之一步一步学习用户管理的备份恢复——汇总
- 备份和恢复数据库 《Oracle学习笔记》
- Mysql学习笔记<4>数据库的备份与恢复
- ORACLE数据库学习之备份与恢复
- mysqldump案例 — mysql备份恢复
- Oracle数据库之【备份与恢复篇】
- Oracle学习笔记(十五)——数据库(表)的逻辑备份与恢复
- MySQL之——数据库增量数据恢复案例
- 晃晃悠悠就过去了
- 《用十年时间学习编程》笔记
- 毕业生反馈(三)
- CFileDialog打开多个文件失败
- HTML5开源游戏引擎lufylegend1.5.0发布
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 4)
- Zstack_2007_Join_Network
- 无线网络-LTE (06) 通信过程之 Detach procedure UE-initiated
- asm不错的神图(附高清下载)
- linux 下 syslog 系统日志应用
- shell-14: linux awk 命令应用
- 黑马程序员之SQL 学习笔记:数据库的内连接和外连接
- 在oracle中通过connect by prior来实现递归查询!
- ICMP简介