Oracle DBA课程系列笔记(6_2)

简介:

第六章: 控制文件(2)

6)控制文件恢复
     单个文件丢失:
     
        [oracle@oracle dbs]$ rm /disk2/lx02/oradata/control03.ctl
[oracle@oracle dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 1 06:14:54 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

06:14:54 SQL> startup
ORACLE instance started.

Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers           83886080 bytes
Redo Buffers                2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info

通过告警日志获得信息:

ALTER DATABASE   MOUNT
Mon Aug  1 06:14:57 2011
ORA-00202: control file: '/disk2/lx02/oradata/control03.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

 

06:14:57 SQL> shutdown 
ORA-01507: database not mounted


ORACLE instance shut down.
06:15:14 SQL> !
[oracle@oracle dbs]$ cp /disk1/lx02/oradata/control02.ctl /disk2/lx02/oradata/control03.ctl
[oracle@oracle dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 1 06:15:36 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

06:15:37 SQL> startup
ORACLE instance started.

Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers           83886080 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.
06:15:47 SQL> select name from v$controlfile;

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/lx02/control01.ctl
/disk1/lx02/oradata/control02.ctl
/disk2/lx02/oradata/control03.ctl

06:16:00 SQL>

     所有的文件丢失:
     
        06:16:00 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
06:17:22 SQL> !
[oracle@oracle dbs]$ rm /u01/app/oracle/oradata/lx02/control01.ctl
[oracle@oracle dbs]$ rm /disk1/lx02/oradata/control02.ctl
[oracle@oracle dbs]$ rm /disk2/lx02/oradata/control03.ctl
[oracle@oracle dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 1 06:17:51 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

06:17:51 SQL> startup
ORACLE instance started.

Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers           83886080 bytes
Redo Buffers                2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info

告警日志:
ALTER DATABASE   MOUNT
Mon Aug  1 06:17:54 2011
ORA-00202: control file: '/u01/app/oracle/oradata/lx02/control01.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Mon Aug  1 06:17:54 2011

 利用trace 文件重建
 在nomount 状态
 
  06:19:51 SQL>CREATE CONTROLFILE REUSE DATABASE "LX02" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 2
    MAXDATAFILES 30
    MAXINSTANCES 1
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/lx02/redo01a.log'  SIZE 10M,
  GROUP 2 '/u01/app/oracle/oradata/lx02/redo02a.log'  SIZE 10M
-- STANDBY LOGFILE
DATAFILE
  '/u01/app/oracle/oradata/lx02/system01.dbf',
  '/u01/app/oracle/oradata/lx02/rtbs01.dbf',
  '/u01/app/oracle/oradata/lx02/sysaux01.dbf',
  '/u01/app/oracle/oradata/lx02/user01.dbf',
  '/u01/app/oracle/oradata/lx02/example01.dbf',
  '/u01/app/oracle/oradata/lx02/indx01.dbf',
  '/u01/app/oracle/oradata/lx02/OLTP01.DBF'
CHARACTER SET ZHS16GBK
06:21:23  20  ;

Control file created.

06:21:27 SQL> alter database open resetlogs;

Database altered.

06:21:39 SQL>

--------------非正常关库,重建控制文件
00:43:07 SQL> insert into scott.test values (10);                                                                                       

1 row created.

00:43:22 SQL> insert into scott.test values (11);                                                                                       

1 row created.

00:43:25 SQL> commit;                                                                                                                   

Commit complete.

00:43:27 SQL> alter system switch logfile;                                                                                              

System altered.

00:43:29 SQL> /                                                                                                                         

System altered.

00:43:31 SQL> /                                                                                                                         

System altered.

00:43:36 SQL> shutdown abort                        ;database 异常关闭                                                                                     
ORACLE instance shut down.
00:43:44 SQL> !                                                                                                                          
[oracle@work dbs]$ rm /disk1/oradata/test/control02.ctl
[oracle@work dbs]$ rm /disk2/oradata/test/control03.ctl
[oracle@work dbs]$ rm /u01/app/oracle/oradata/test/control01.ctl 
[oracle@work dbs]$ !sql
sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Aug 27 00:44:11 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

00:44:11 SQL> 
00:44:11 SQL> startup                                                                                                                    
ORACLE instance started.

Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers           83886080 bytes
Redo Buffers                2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info


00:44:15 SQL> @/home/oracle/control.sql                                                                                                  
00:44:25 SQL> CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  NOARCHIVELOG
00:44:25   2      MAXLOGFILES 16
00:44:25   3      MAXLOGMEMBERS 4
00:44:25   4      MAXDATAFILES 100
00:44:25   5      MAXINSTANCES 1
00:44:25   6      MAXLOGHISTORY 20
00:44:25   7  LOGFILE
00:44:25   8    GROUP 1 '/u01/app/oracle/oradata/test/redo01a.log'  SIZE 10M,
00:44:25   9    GROUP 2 '/u01/app/oracle/oradata/test/redo02a.log'  SIZE 10M,
00:44:25  10    GROUP 3 '/u01/app/oracle/oradata/test/redo03a.log'  SIZE 10M
00:44:25  11  -- STANDBY LOGFILE
00:44:25  12  DATAFILE
00:44:25  13    '/u01/app/oracle/oradata/test/system01.dbf',
00:44:25  14    '/u01/app/oracle/oradata/test/rtbs01.dbf',
00:44:25  15    '/u01/app/oracle/oradata/test/sysaux01.dbf',
00:44:25  16    '/u01/app/oracle/oradata/test/users01.dbf'
00:44:25  17  CHARACTER SET ZHS16GBK
00:44:25  18  ;

Control file created.

00:44:26 SQL> select checkpoint_change# from v$database;                                                                                

CHECKPOINT_CHANGE#
------------------
            325588

00:44:35 SQL> select checkpoint_change# from v$datafile;                                                                                

CHECKPOINT_CHANGE#
------------------
            325588
            325588
            325588
            325588

00:44:38 SQL> select checkpoint_change# from v$datafile_header;                                                                         

CHECKPOINT_CHANGE#
------------------
            325588
            325588
            325588
            325588

00:44:41 SQL> alter database open;                                                                                                       
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/test/system01.dbf'


00:44:47 SQL> archive log list;                                                                                                          
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence     57
Current log sequence           59
00:45:27 SQL> recover database until cancel;  或者 23:35:59 SQL> recover database until cancel using backup controlfile;                                                                                              
ORA-00279: change 325588 generated at 08/27/2011 00:43:36 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/product/10.2.0/db_1/dbs/arch1_59_759630389.dbf
ORA-00280: change 325588 for thread 1 is in sequence #59


00:45:43 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel                                                                                                                                   
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/test/system01.dbf'


ORA-01112: media recovery not started

--------通过当前redo 日志进行database recover
00:45:52 SQL> select * from v$log;                                                                                                      

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1         58   10485760          1 NO  INACTIVE                325585 27-AUG-11
         3          1         57   10485760          1 NO  INACTIVE                325583 27-AUG-11
         2          1         59   10485760          1 NO  CURRENT                 325588 27-AUG-11

00:46:02 SQL> col member for a50                                                                                                         
00:46:12 SQL> select group# ,member from v$logfile;                                                                                     

    GROUP# MEMBER
---------- --------------------------------------------------
         2 /u01/app/oracle/oradata/test/redo02a.log
         1 /u01/app/oracle/oradata/test/redo01a.log
         3 /u01/app/oracle/oradata/test/redo03a.log

00:46:18 SQL> recover database until cancel;                                                                                             
ORA-00279: change 325588 generated at 08/27/2011 00:43:36 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/product/10.2.0/db_1/dbs/arch1_59_759630389.dbf
ORA-00280: change 325588 for thread 1 is in sequence #59


00:46:23 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/test/redo02a.log                                                                                                 
Log applied.
Media recovery complete.
00:46:30 SQL> alter database open resetlogs;                                                                                            

Database altered.

00:46:59 SQL> select * from scott.test;                                                                                                 

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         9
        10
        11

10 rows selected.

00:47:05 SQL>









本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/791742,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
12 0
|
1月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
17 0
|
1月前
|
SQL Oracle 关系型数据库
oracle笔记整理2
oracle笔记整理2
11 0
|
1月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
12 0
|
8月前
|
SQL Oracle 关系型数据库
Oracle笔记1
Oracle笔记1
100 0
|
10月前
|
人工智能 运维 Oracle
ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下(文末投票)
ChatGPT已经通过了很多考试,姚远老师是Oracle OCP和MySQL OCP讲师,我很好奇ChatGPT能不能通过Oracle OCP的考试呢?让我们拿Oracle 19c OCP考试(1z0-082)的真题对ChatGPT进行一个测试。
136 0
|
10月前
|
人工智能 运维 Oracle
ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。
第1道题ChatGPT就做错了,姚远老师心里不禁窃喜,看来ChatGPT也不咋地,我们也许不会失业,让我们来看看第一道题的题目
122 0
|
11月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
58 0
|
11月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
77 0
|
11月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
55 0

推荐镜像

更多