|
--查看emp表原始数据 scott@TESTDB11>select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 810 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1610 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1260 500 30 7566 JONES MANAGER 7839 02-APR-81 2985 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1260 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2860 30 7782 CLARK MANAGER 7839 09-JUN-81 2460 10 7788 SCOTT ANALYST 7566 19-APR-87 3010 20 7839 KING PRESIDENT 17-NOV-81 5010 10 7844 TURNER SALESMAN 7698 08-SEP-81 1510 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1110 20 7900 JAMES CLERK 7698 03-DEC-81 960 30 7902 FORD ANALYST 7566 03-DEC-81 3010 20 7934 MILLER CLERK 7782 23-JAN-82 1310 10
14 rows selected.
--查看当前的日志序号(10) sys@TESTDB11>select sequence#, group#, status from v$log;
SEQUENCE# GROUP# STATUS ---------- ---------- ---------------- 10 1 CURRENT 8 2 INACTIVE 9 3 INACTIVE
3 rows selected.
--修改数据并提交(10) scott@TESTDB11>update emp set sal = 100 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--再次修改数据并提交(11) scott@TESTDB11>update emp set sal = 200 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--再次修改并提交(12) scott@TESTDB11>update emp set sal = 300 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--再次修改并提交(13) scott@TESTDB11>update emp set sal = 400 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--再次修改并提交(14) scott@TESTDB11>update emp set sal = 500 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--再次修改并提交(15) scott@TESTDB11>update emp set sal = 600 where empno = 7369;
1 row updated.
scott@TESTDB11>commit;
Commit complete.
sys@TESTDB11>alter system switch logfile;
System altered.
--查看当前日志组(16) sys@TESTDB11>select sequence#, group#, status from v$log;
SEQUENCE# GROUP# STATUS ---------- ---------- ---------------- 16 1 CURRENT 14 2 INACTIVE 15 3 INACTIVE
3 rows selected.
--关库 sys@TESTDB11>shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.
--文件损坏 sys@TESTDB11>!rm /oradata/TestDB11/users01.dbf
sys@TESTDB11>startup ORACLE instance started.
Total System Global Area 855982080 bytes Fixed Size 2230792 bytes Variable Size 641730040 bytes Database Buffers 209715200 bytes Redo Buffers 2306048 bytes Database mounted. ORA-01157: cannot identify/lock data file 4 - see DBWR trace file ORA-01110: data file 4: '/oradata/TestDB11/users01.dbf'
sys@TESTDB11>select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- -------------------- ---------- --------- 4 ONLINE ONLINE FILE NOT FOUND 0 --还原 sys@TESTDB11>!cp /pooldisk02/backup01/inconsistent/users01.dbf /oradata/TestDB11
sys@TESTDB11>select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- -------------------- ---------- --------- 4 ONLINE ONLINE 2521567 11-AUG-13
--确定一下,恢复需要的所有日志文件(大概判断一下,让12号日志损坏,则可以恢复到11号, 即sal = 200 sys@TESTDB11>col archive_name for a30 sys@TESTDB11>select * from v$recovery_log;
THREAD# SEQUENCE# TIME ARCHIVE_NAME ---------- ---------- --------- ------------------------------ 1 10 12-AUG-13 /archive2/1_10_823217125.dbf 1 11 12-AUG-13 /archive2/1_11_823217125.dbf 1 12 12-AUG-13 /archive2/1_12_823217125.dbf 1 13 12-AUG-13 /archive2/1_13_823217125.dbf
4 rows selected.
23 rows selected.
--查看一下归档日志的详细信息 sys@TESTDB11>select sequence#, name, first_change#, next_change# from v$archived_log;
SEQUENCE# NAME FIRST_CHANGE# NEXT_CHANGE# ---------- ------------------------------ ------------- ------------ 9 /archive1/1_9_823217125.dbf 2651179 2675262 9 /archive2/1_9_823217125.dbf 2651179 2675262 10 /archive1/1_10_823217125.dbf 2675262 2679106 10 /archive2/1_10_823217125.dbf 2675262 2679106 11 /archive1/1_11_823217125.dbf 2679106 2679128 11 /archive2/1_11_823217125.dbf 2679106 2679128 12 /archive1/1_12_823217125.dbf 2679128 2679157 12 /archive2/1_12_823217125.dbf 2679128 2679157 13 /archive1/1_13_823217125.dbf 2679157 2679357 13 /archive2/1_13_823217125.dbf 2679157 2679357 14 /archive1/1_14_823217125.dbf 2679357 2679389 14 /archive2/1_14_823217125.dbf 2679357 2679389 15 /archive1/1_15_823217125.dbf 2679389 2679408 15 /archive2/1_15_823217125.dbf 2679389 2679408
112 rows selected.
--日志归档12损坏 sys@TESTDB11>!rm /archive1/1_12_823217125.dbf sys@TESTDB11>!rm /archive2/1_12_823217125.dbf
--执行恢复,当需要归档12时出错 sys@TESTDB11>recover datafile 4; ORA-00279: change 2678693 generated at 08/12/2013 07:14:28 needed for thread 1 ORA-00289: suggestion : /archive2/1_10_823217125.dbf ORA-00280: change 2678693 for thread 1 is in sequence #10
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00279: change 2679106 generated at 08/12/2013 07:21:56 needed for thread 1 ORA-00289: suggestion : /archive2/1_11_823217125.dbf ORA-00280: change 2679106 for thread 1 is in sequence #11
ORA-00279: change 2679128 generated at 08/12/2013 07:22:28 needed for thread 1 ORA-00289: suggestion : /archive2/1_12_823217125.dbf ORA-00280: change 2679128 for thread 1 is in sequence #12
ORA-00308: cannot open archived log '/archive2/1_12_823217125.dbf' ORA-27037: unable to obtain file status Solaris-AMD64 Error: 2: No such file or directory Additional information: 3
--查看数据文件头,检查点不一致 sys@TESTDB11>col name for a40 sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE# ---------------------------------------- ------------------ /oradata/TestDB11/system01.dbf 2679518 /oradata/TestDB11/sysaux01.dbf 2679518 /oradata/TestDB11/undotbs01.dbf 2679518 /oradata/TestDB11/users01.dbf 2679128 /oradata/TestDB11/example01.dbf 2679518 /oradata/TestDB11/newundotbs01.dbf 2679518
6 rows selected.
--还原 sys@TESTDB11>shutdown abort ORACLE instance shut down.
sys@TESTDB11>!cp /pooldisk02/backup01/inconsistent/*.dbf /oradata/TestDB11
sys@TESTDB11>startup mount; ORACLE instance started.
Total System Global Area 855982080 bytes Fixed Size 2230792 bytes Variable Size 641730040 bytes Database Buffers 209715200 bytes Redo Buffers 2306048 bytes Database mounted.
sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
--检查点不一致(因为这是非一致性备份),但所有的检查点都比12号日志first_change#小 sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE# ---------------------------------------- ------------------ /oradata/TestDB11/system01.dbf 2678611 /oradata/TestDB11/sysaux01.dbf 2678638 /oradata/TestDB11/undotbs01.dbf 2678672 /oradata/TestDB11/users01.dbf 2678693 /oradata/TestDB11/example01.dbf 2678712 /oradata/TestDB11/newundotbs01.dbf 2678734
6 rows selected.
--恢复 sys@TESTDB11>recover database until cancel; sys@TESTDB11>recover database until cancel; ORA-00279: change 2678611 generated at 08/12/2013 07:13:05 needed for thread 1 ORA-00289: suggestion : /archive2/1_10_823217125.dbf ORA-00280: change 2678611 for thread 1 is in sequence #10
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00279: change 2679106 generated at 08/12/2013 07:21:56 needed for thread 1 ORA-00289: suggestion : /archive2/1_11_823217125.dbf ORA-00280: change 2679106 for thread 1 is in sequence #11 ORA-00278: log file '/archive2/1_10_823217125.dbf' no longer needed for this recovery
ORA-00279: change 2679128 generated at 08/12/2013 07:22:28 needed for thread 1 ORA-00289: suggestion : /archive2/1_12_823217125.dbf ORA-00280: change 2679128 for thread 1 is in sequence #12 ORA-00278: log file '/archive2/1_11_823217125.dbf' no longer needed for this recovery
ORA-00308: cannot open archived log '/archive2/1_12_823217125.dbf' ORA-27037: unable to obtain file status Solaris-AMD64 Error: 2: No such file or directory Additional information: 3
--再查看文件中 sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE# ---------------------------------------- ------------------ /oradata/TestDB11/system01.dbf 2679128 /oradata/TestDB11/sysaux01.dbf 2679128 /oradata/TestDB11/undotbs01.dbf 2679128 /oradata/TestDB11/users01.dbf 2679128 /oradata/TestDB11/example01.dbf 2679128 /oradata/TestDB11/newundotbs01.dbf 2679128
6 rows selected.
--查看当前日志组, 与11脱节了 sys@TESTDB11>select sequence#, group#, status from v$log;
SEQUENCE# GROUP# STATUS ---------- ---------- ---------------- 16 1 CURRENT 15 3 INACTIVE 14 2 INACTIVE
3 rows selected.
-- 开库时需要使用RESETLOGS选项 sys@TESTDB11>alter database open resetlogs;
Database altered.
--日志序号从1开始从头记 sys@TESTDB11>select sequence#, group#, status from v$log;
SEQUENCE# GROUP# STATUS ---------- ---------- ---------------- 1 1 CURRENT 0 2 UNUSED 0 3 UNUSED
3 rows selected. --确认数据 scott@TESTDB11>select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 200 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1610 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1260 500 30 7566 JONES MANAGER 7839 02-APR-81 2985 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1260 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2860 30 7782 CLARK MANAGER 7839 09-JUN-81 2460 10 7788 SCOTT ANALYST 7566 19-APR-87 3010 20 7839 KING PRESIDENT 17-NOV-81 5010 10 7844 TURNER SALESMAN 7698 08-SEP-81 1510 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1110 20 7900 JAMES CLERK 7698 03-DEC-81 960 30 7902 FORD ANALYST 7566 03-DEC-81 3010 20 7934 MILLER CLERK 7782 23-JAN-82 1310 10
14 rows selected. --删除日志 [oracle@S1011:/archive1]$ rm * [oracle@S1011:/archive1]$ cd /archive2 [oracle@S1011:/archive2]$ rm *
--重新做整库非一致性备份 [oracle@S1011:/pooldisk02/backup01/inconsistent]$ rm * sys@TESTDB11>@backup_script/backup02.sql alter tablespace SYSTEM begin backup; !cp /oradata/TestDB11/system01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace SYSTEM end backup; alter tablespace SYSAUX begin backup; !cp /oradata/TestDB11/sysaux01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace SYSAUX end backup; alter tablespace UNDOTBS1 begin backup; !cp /oradata/TestDB11/undotbs01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace UNDOTBS1 end backup; alter tablespace USERS begin backup; !cp /oradata/TestDB11/users01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace USERS end backup; alter tablespace EXAMPLE begin backup; !cp /oradata/TestDB11/example01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace EXAMPLE end backup; alter tablespace NEWUNDOTBS begin backup; !cp /oradata/TestDB11/newundotbs01.dbf /pooldisk02/backup01/inconsistent/ alter tablespace NEWUNDOTBS end backup;
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Tablespace altered.
Database altered.
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30074459/viewspace-2105171/ ,如需转载,请注明出处,否则将追究法律责任。