oracle用户管理的完全恢复4:在ARCHIVELOG 模式(恢复打开的数据库--数据库最初是关闭的)
2013-01-24 10:54
671 查看
场景描述:恢复打开的数据库(数据库最初是关闭的)
此恢复方法一般在以下情况下使用:
a.介质或硬件故障导致系统关闭。
b.数据库全天候(每周7 天、每天24 小时)运行。必须最大限度地减少数据库的停机时间。
c.损坏的文件不属于系统表空间或还原段表空间
1.模拟生产环境
1.1 插入数据
1.2 将数据写入数据文件sun01_1.dbf
1.3 关闭数据库
1.4 损坏sun01_1.dbf文件
1.5 将数据库打开(实际只能打开到mount)
1.6 将需恢复文件下线
1.7 打开数据库
2.开始恢复(利用冷备文件 热备文件皆可)
2.1把上次备份的sun01_1.dbf文件拷过来
2.2 恢复文件
2.3将离线文件拉起
3.查看恢复结果
此恢复方法一般在以下情况下使用:
a.介质或硬件故障导致系统关闭。
b.数据库全天候(每周7 天、每天24 小时)运行。必须最大限度地减少数据库的停机时间。
c.损坏的文件不属于系统表空间或还原段表空间
1.模拟生产环境
1.1 插入数据
SQL> insert into t values(5,'oracle'); 1 row created. SQL> commit; Commit complete. SQL>
1.2 将数据写入数据文件sun01_1.dbf
SQL> alter system checkpoint local;--是否实现将日志文件内容写入数据文件有待检验 System altered. SQL>
1.3 关闭数据库
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL>
1.4 损坏sun01_1.dbf文件
bash-3.00$ cd /u01/oradata/sunbak bash-3.00$ ls -l total 2162512 -rw-r----- 1 oracle oinstall 7061504 Jan 23 01:08 control01.ctl -rw-r----- 1 oracle oinstall 7061504 Jan 23 01:08 control02.ctl -rw-r----- 1 oracle oinstall 7061504 Jan 23 01:08 control03.ctl -rw-r----- 1 oracle oinstall 104865792 Jan 23 01:08 example01.dbf -rw-r----- 1 oracle oinstall 52429312 Jan 23 01:06 redo01.log -rw-r----- 1 oracle oinstall 52429312 Jan 23 01:06 redo02.log -rw-r----- 1 oracle oinstall 52429312 Jan 23 01:08 redo03.log -rw-r----- 1 oracle oinstall 10493952 Jan 23 01:08 sun01_1.dbf -rw-r----- 1 oracle oinstall 251666432 Jan 23 01:08 sysaux01.dbf -rw-r----- 1 oracle oinstall 503324672 Jan 23 01:08 system01.dbf -rw-r----- 1 oracle oinstall 20979712 Jan 22 23:24 temp01.dbf -rw-r----- 1 oracle oinstall 31465472 Jan 23 01:08 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 Jan 23 01:08 users01.dbf bash-3.00$ rm -f sun01_1.dbf bash-3.00$
1.5 将数据库打开(实际只能打开到mount)
SQL> startup ORACLE instance started. Total System Global Area 289406976 bytes Fixed Size 1279820 bytes Variable Size 92276916 bytes Database Buffers 192937984 bytes Redo Buffers 2912256 bytes Database mounted. ORA-01157: cannot identify/lock data file 6 - see DBWR trace file ORA-01110: data file 6: '/u01/oradata/sunbak/sun01_1.dbf' SQL> #查看休要恢复文件 SQL> select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- -------------------- ---------- --------- 6 ONLINE ONLINE FILE NOT FOUND 0 SQL>
1.6 将需恢复文件下线
SQL> alter database datafile 6 offline; Database altered. SQL>
1.7 打开数据库
SQL> alter database open; Database altered. SQL>
2.开始恢复(利用冷备文件 热备文件皆可)
2.1把上次备份的sun01_1.dbf文件拷过来
bash-3.00$ cd /u01/oradata/sunbak bash-3.00$ ls -l /u01/backup/hot total 20512 -rw-r----- 1 oracle oinstall 10493952 Jan 22 22:00 sun01_1.dbf bash-3.00$ cp /u01/backup/hot/sun01_1.dbf . bash-3.00$ #此时可把文件恢复到新的目录 bash-3.00$ ls -l /u01/backup/hot total 20512 -rw-r----- 1 oracle oinstall 10493952 Jan 22 22:00 sun01_1.dbf bash-3.00$ cp /u01/backup/hot/sun01_1.dbf /u01/oradata/sun bash-3.00$ #通过控制文件中文件的位置 SQL> alter database rename file '/u01/oradata/sunbak/sun01_1.dbf' to '/u01/oradata/sun/sun01_1.dbf'
2.2 恢复文件
SQL> recover datafile 6; ORA-00279: change 574756 generated at 01/22/2013 21:58:34 needed for thread 1 ORA-00289: suggestion : /u01/admin/sun/arch/1_2_805319563.dbf ORA-00280: change 574756 for thread 1 is in sequence #2 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00279: change 581083 generated at 01/22/2013 22:04:42 needed for thread 1 ORA-00289: suggestion : /u01/admin/sun/arch/1_3_805319563.dbf ORA-00280: change 581083 for thread 1 is in sequence #3 ORA-00278: log file '/u01/admin/sun/arch/1_2_805319563.dbf' no longer needed for this recovery Specify log: {<RET>=suggested | filename | AUTO | CANCEL} Log applied. Media recovery complete. SQL>
2.3将离线文件拉起
SQL> alter database datafile 6 online; Database altered. SQL>
3.查看恢复结果
SQL> select * from user1.t; ID NAME ---------- ------------------------------ 1 oracle 2 oracle 0 oracle 3 oracle 4 oracle 5 oracle 6 rows selected. SQL>
相关文章推荐
- ARCHIVELOG模式下用户管理的完全恢复(2)——恢复打开的数据库,并且数据库最初是关闭的!
- ARCHIVELOG模式下用户管理的完全恢复—恢复打开的数据库,并且数据库最初是打开的
- oracle用户管理的完全恢复4:在ARCHIVELOG 模式(恢复打开的数据库)
- oracle用户管理的完全恢复3:在ARCHIVELOG 模式(恢复关闭的数据库)
- ARCHIVELOG模式下用户管理的完全恢复(3)——恢复打开的数据库,并且数据库最初是打开的!
- ARCHIVELOG模式下用户管理的完全恢复—恢复关闭的数据库
- ARCHIVELOG模式下用户管理的完全恢复(1)——恢复关闭的数据库!
- ARCHIVELOG模式下用户管理的完全恢复(5)——总结!
- ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!
- oracle用户管理的完全恢复1:在NOARCHIVELOG 模式下执行恢复
- 【ORACLE备份与恢复】用户管理的:基于取消的数据库不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!
- 【ORACLE备份与恢复】用户管理的:基于scn的数据库不完全恢复
- oracle用户管理的完全恢复2:在NOARCHIVELOG 模式下执行恢复(无联机日志的备份)
- ARCHIVELOG模式下用户管理的完全恢复(4)——在没有数据文件备份的情况下恢复数据文件!
- ARCHIVELOG模式下用户管理的不完全恢复—基于取消的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(2)——基于SCN的不完全恢复!
- ARCHIVELOG模式下用户管理的不完全恢复(3)——基于取消的不完全恢复!
- ARCHIVELOG模式下用户管理的不完全恢复—基于备份控制文件的不完全恢复
- oracle数据库完全恢复和不完全恢复以及执行用户管理辈分恢复