您好,欢迎访问一九零五行业门户网

丢失所有控制文件,还原所有数据文件,不还原控制文件,recoverd

说明:创建表test03,切换日志,创建表test04,切换日志,删除所有数据文件,还原备份的所有数据文件,不需要还原控制文件;test03的归档日志没有丢失,test04的归档日志丢失,不能恢复test04 1、数据库所有控制文件丢失 2、还原备份之前的控制文件,数据文
说明:创建表test03,切换日志,创建表test04,切换日志,删除所有数据文件,还原备份的所有数据文件,不需要还原控制文件;test03的归档日志没有丢失,test04的归档日志丢失,不能恢复test04
1、数据库所有控制文件丢失 2、还原备份之前的控制文件,数据文件没做还原 3、until cancel using bakup controlfile跑部分归档日志
(1)一致性的全备
sql> shutdown immediate;
# mkdir -p /oradata/bossbak/20140609allbackup
# cp -rf $oracle_base/oradata/boss/*.dbf /oradata/bossbak/20140609allbackup
# cp -rf $oracle_base/oradata/boss/*.ctl /oradata/bossbak/20140609allbackup
# cp -rf $oracle_home/dbs/spfileboss.ora /oradata/bossbak/20140609
# cd /oracle/flash_recovery_area/boss/archivelog/2014_06_09/
# rm -rf *
(2)查看数据库的信息
sql> select tablespace_name,status from dba_tablespaces;
tablespace_name status
------------------------------ ---------
system online
undotbs1 online
sysaux online
temp online
users online
example online
testtbs01 online
testtbs02 offline
testtbs03 read only
sql> select table_name,status,tablespace_name from user_tables where tablespace_name like 'testtbs%';
table_name status tablespace_name
------------------------------ -------- ------------------------------
test01 valid testtbs01
boss_new_test valid testtbs01
(3)创建表test03,插入数据
sql> create table test03 (id number, name varchar2(30)) tablespace testtbs01;
sql> insert into test03 values(1, '11111');
sql> insert into test03 values(2,'22222');
sql> insert into test03 values(3,'33333');
sql> insert into test03 values(1, '11111');
sql> insert into test03 values(2,'22222');
sql> insert into test03 values(3,'33333');
sql> commit;
(4)进行日志切换
sql> alter system switch logfile;
sql> select group#,members,sequence#,archived,status,first_change# from v$log;
group# members sequence# arc status first_change#
---------- ---------- ---------- --- ---------------- -------------
1 1 2 yes inactive 675131
2 1 4 no current 700583
3 1 3 yes active 699759
sql> alter system switch logfile;
sql> alter system switch logfile;
sql> create table test04 (id number, name varchar2(30)) tablespace testtbs01;
sql> insert into test04 values(1, '11111');
sql> insert into test04 values(2,'22222');
sql> insert into test04 values(3,'33333');
sql> commit;
sql> alter system switch logfile;
sql> alter system switch logfile;
sql> alter system switch logfile;
sql> select group#,members,sequence#,archived,status,first_change# from v$log;
group# members sequence# arc status first_change#
---------- ---------- ---------- --- ---------------- -------------
1 1 8 yes inactive 704201
2 1 7 yes inactive 704199
3 1 9 no current 704204
(5)备份全备后所有的归档日志
# pwd
/oracle/flash_recovery_area/boss/archivelog/2014_06_09
# cp -rf *.arc /oradata/bossbak/20140609
(6)删除全部归档,删除全部数据文件
# rm -rf *.arc
(7)关闭数据库
sql> shutdown abort;
oracle instance shut down.
sql> startup open;
ora-01157: cannot identify/lock data file 1 - see dbwr trace file
ora-01110: data file 1: '/oracle/oradata/boss/system01.dbf'
(8)还原备份的数据文件,不需要恢复控制文件
$ cp -rf *.dbf /oracle/oradata/boss
sql> col 文件名 for a40
sql> set linesize 150
sql> select
2 ts.name 表空间名
3 , df.file# 文件号
4 , df.checkpoint_change# 检查点
5 , df.name 文件名
6 , df.status 在线状态
7 , rf.error 恢复原因
8 , rf.change# 系统变更号
9 , rf.time
10 from v$tablespace ts,v$datafile df,v$recover_file rf
11 where ts.ts#=df.ts# and df.file#=rf.file#
12 order by df.file#;
#####最近一次数据库正常启动后的scn
表空间名 文件号 检查点 文件名 在线状 恢复原因 系统变更号 time
------------------------------ ---------- ---------- ---------------------------------------- ------- ------------------ ---------- ------------
system 1 704204 /oracle/oradata/boss/system01.dbf system file not found 0
undotbs1 2 704204 /oracle/oradata/boss/undotbs01.dbf online file not found 0
sysaux 3 704204 /oracle/oradata/boss/sysaux01.dbf online file not found 0
users 4 704204 /oracle/oradata/boss/users01.dbf online file not found 0
example 5 704204 /oracle/oradata/boss/example01.dbf online file not found 0
testtbs01 6 704204 /oracle/oradata/boss/testtbs01_01.dbf online file not found 0
testtbs01 7 704204 /oracle/oradata/boss/testtbs01_02.dbf online file not found 0
testtbs02 8 652783 /oracle/oradata/boss/testtbs02_01.dbf offline offline normal 0
testtbs03 9 652799 /oracle/oradata/boss/testtbs03_01.dbf online file not found 0
sql> col name for a40
sql> select file#,name,status,checkpoint_change#,recover from v$datafile_header;
file# name status checkpoint_change# rec
---------- ---------------------------------------- ------- ------------------ ---
1 online 0
2 online 0
3 online 0
4 online 0
5 online 0
6 online 0
7 online 0
8 offline 0
9 online 0
(9)复制部分的归档日志,基于终止恢复
# cp -rf o1_mf_1_3_9sbbrfsx_.arc o1_mf_1_4_9sbbsn5j_.arc /oracle/flash_recovery_area/boss/archivelog/2014_06_09/
# cat boss_dbw0_8622.trc
ora-01157: cannot identify/lock data file 1 - see dbwr trace file
ora-01110: data file 1: '/oracle/oradata/boss/system01.dbf'
ora-27041: unable to open file
linux error: 13: permission denied
sql> col name for a40;
sql> set linesize 120;
sql> select file#,name,status,checkpoint_change#,recover from v$datafile_header;
file# name status checkpoint_change# rec
---------- ---------------------------------------- ------- ------------------ ---
1 /oracle/oradata/boss/system01.dbf online 700222 yes
2 /oracle/oradata/boss/undotbs01.dbf online 700222 yes
3 /oracle/oradata/boss/sysaux01.dbf online 700222 yes
4 /oracle/oradata/boss/users01.dbf online 700222 yes
5 /oracle/oradata/boss/example01.dbf online 700222 yes
6 /oracle/oradata/boss/testtbs01_01.dbf online 700222 yes
7 /oracle/oradata/boss/testtbs01_02.dbf online 700222 yes
8 offline 0
9 /oracle/oradata/boss/testtbs03_01.dbf online 652799
sql> alter database open;
alter database open
*
error at line 1:
ora-01113: file 1 needs media recovery
ora-01110: data file 1: '/oracle/oradata/boss/system01.dbf'
sql> recover database until cancel;
ora-00279: change 700222 generated at 06/09/2014 11:16:10 needed for thread 1
ora-00289: suggestion : /oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_3_%u_.arc
ora-00280: change 700222 for thread 1 is in sequence #3
specify log: {=suggested | filename | auto | cancel}
# ll
总用量 1047064
-rw-r----- 1 oracle oinstall 7094272 6月 9 11:21 control02.ctl
-rw-r----- 1 oracle oinstall 7094272 6月 9 11:21 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 6月 9 11:19 example01.dbf
-rw-r----- 1 oracle oinstall 622080 6月 9 12:38 o1_mf_1_3_9sbbrfsx_.arc
-rw-r----- 1 oracle oinstall 11264 6月 9 12:38 o1_mf_1_4_9sbbsn5j_.arc
-rw-r----- 1 oracle oinstall 2560 6月 9 12:38 o1_mf_1_5_9sbbst96_.arc
-rw-r----- 1 oracle oinstall 4336640 6月 9 12:38 o1_mf_1_6_9sbgg5or_.arc
-rw-r----- 1 oracle oinstall 1024 6月 9 12:38 o1_mf_1_7_9sbgg862_.arc
-rw-r----- 1 oracle oinstall 2560 6月 9 12:38 o1_mf_1_8_9sbggfm7_.arc
# cp -rf o1_mf_1_3_9sbbrfsx_.arc o1_mf_1_4_9sbbsn5j_.arc /oracle/flash_recovery_area/boss/archivelog/2014_06_09/
sql> recover database until cancel;
ora-00279: change 700222 generated at 06/09/2014 11:16:10 needed for thread 1
ora-00289: suggestion : /oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_3_%u_.arc
ora-00280: change 700222 for thread 1 is in sequence #3
specify log: {=suggested | filename | auto | cancel}
auto
ora-00279: change 700583 generated at 06/09/2014 11:33:33 needed for thread 1
ora-00289: suggestion : /oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_4_%u_.arc
ora-00280: change 700583 for thread 1 is in sequence #4
ora-00278: log file '/oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_3_9sbbrfsx_.arc' no longer needed
for this recovery
ora-00279: change 700603 generated at 06/09/2014 11:34:12 needed for thread 1
ora-00289: suggestion : /oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_5_%u_.arc
ora-00280: change 700603 for thread 1 is in sequence #5
ora-00278: log file '/oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_4_9sbbsn5j_.arc' no longer needed
for this recovery
ora-00308: cannot open archived log '/oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_5_9sbbst96_.arc'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
sql> recover database until cancel;
ora-00279: change 700603 generated at 06/09/2014 11:34:12 needed for thread 1
ora-00289: suggestion : /oracle/flash_recovery_area/boss/archivelog/2014_06_09/o1_mf_1_5_%u_.arc
ora-00280: change 700603 for thread 1 is in sequence #5
specify log: {=suggested | filename | auto | cancel}
cancel
media recovery cancelled.
sql> alter database open resetlogs;
sql> select * from test03;
id name
---------- ----------------------------------------
1 11111
2 22222
3 33333
sql> select * from test04;
select * from test04
*
error at line 1:
ora-00942: table or view does not exist
其它类似信息

推荐信息