Oracle Study之案例--重建数据库控制文件

Oracle Study之案例--重建数据库控制文件

系统环境:

操作系统: Linux RH6

数据库:   Oracle 11gR2

   案例分析:

          数据库中所有的控制文件被意外破坏,非归档的库,在有trace备份的情况下,重建控制文件。

1、控制文件trace脚本

[[email protected] ~]$ cat crctr.sql 
CREATE CONTROLFILE REUSE DATABASE "TEST3" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 10
    MAXLOGMEMBERS 5
    MAXDATAFILES 300
    MAXINSTANCES 1
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 ‘/u01/app/oracle/oradata/test3/redo01a.log‘  SIZE 100M BLOCKSIZE 512,
  GROUP 2 ‘/u01/app/oracle/oradata/test3/redo02a.log‘  SIZE 100M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  ‘/u01/app/oracle/oradata/test3/system01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/sysaux01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/undotbs01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/users01.dbf‘
CHARACTER SET ZHS16GBK;

2、启动Instance到nomount,重建controlfile

10:59:05 [email protected] test3 >startup nomount;
ORACLE instance started.
Total System Global Area  313860096 bytes
Fixed Size                  1336232 bytes
Variable Size             213912664 bytes
Database Buffers           92274688 bytes
Redo Buffers                6336512 bytes

10:59:41 [email protected] test3 >@/home/oracle/crctr.sql
Control file created.

3、告警日志

......
CREATE CONTROLFILE REUSE DATABASE "TEST3" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 10
    MAXLOGMEMBERS 5
    MAXDATAFILES 300
    MAXINSTANCES 1
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 ‘/u01/app/oracle/oradata/test3/redo01a.log‘  SIZE 100M BLOCKSIZE 512,
  GROUP 2 ‘/u01/app/oracle/oradata/test3/redo02a.log‘  SIZE 100M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  ‘/u01/app/oracle/oradata/test3/system01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/sysaux01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/undotbs01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/users01.dbf‘
CHARACTER SET ZHS16GBK
WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command
Default Temporary Tablespace will be necessary for a locally managed database in future release
Wed Jan 07 11:00:02 2015
Successful mount of redo thread 1, with mount id 991126251

Completed: CREATE CONTROLFILE REUSE DATABASE "TEST3" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 10
    MAXLOGMEMBERS 5
    MAXDATAFILES 300
    MAXINSTANCES 1
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 ‘/u01/app/oracle/oradata/test3/redo01a.log‘  SIZE 100M BLOCKSIZE 512,
  GROUP 2 ‘/u01/app/oracle/oradata/test3/redo02a.log‘  SIZE 100M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  ‘/u01/app/oracle/oradata/test3/system01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/sysaux01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/undotbs01.dbf‘,
  ‘/u01/app/oracle/oradata/test3/users01.dbf‘
CHARACTER SET ZHS16GBK
Wed Jan 07 11:00:59 2015
......

3、查看数据库状态

11:00:03 [email protected] test3 >select status from v$instance;
STATUS
------------
MOUNTED

11:00:27 [email protected] test3 >select file#,name ,checkpoint_change# from v$datafile;
     FILE# NAME                                               CHECKPOINT_CHANGE#
---------- -------------------------------------------------- ------------------
         1 /u01/app/oracle/oradata/test3/system01.dbf                     333365
         2 /u01/app/oracle/oradata/test3/sysaux01.dbf                     333365
         3 /u01/app/oracle/oradata/test3/undotbs01.dbf                    333365
         4 /u01/app/oracle/oradata/test3/users01.dbf                      333365

11:00:46 [email protected] test3 >select file#,name ,checkpoint_change# from v$datafile_header;
     FILE# NAME                                               CHECKPOINT_CHANGE#
---------- -------------------------------------------------- ------------------
         1 /u01/app/oracle/oradata/test3/system01.dbf                     333365
         2 /u01/app/oracle/oradata/test3/sysaux01.dbf                     333365
         3 /u01/app/oracle/oradata/test3/undotbs01.dbf                    333365
         4 /u01/app/oracle/oradata/test3/users01.dbf                      333365

4、打开数据库

11:00:54 [email protected] test3 >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/test3/system01.dbf‘

---打开数据库报错,需要做“media recovery”

执行介质恢复:
由于本库为非归档模式,只能通过current redolog来恢复

查看当前日志组:
[[email protected] ~]$ sqlplus ‘/as sysdba‘
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 7 11:02:12 2015
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

11:02:12 [email protected] test3 >select member from v$logfile;

MEMBER
------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/test3/redo01a.log
/u01/app/oracle/oradata/test3/redo02a.log

11:02:22 [email protected] test3 >select group#,sequence#,status from v$log;

    GROUP#  SEQUENCE# STATUS
---------- ---------- ----------------
         2         12 INACTIVE
         1         13 CURRENT

11:00:59 [email protected] test3 >recover database until cancel;
ORA-00279: change 333365 generated at 01/07/2015 10:30:26 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/product/11.2.0/db_1/dbs/arch1_13_868275293.dbf
ORA-00280: change 333365 for thread 1 is in sequence #13
11:01:42 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/test3/redo01a.log
Log applied.
Media recovery complete.
---恢复完成!

11:02:46 [email protected] test3 >alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
Elapsed: 00:00:00.01

11:02:52 [email protected] test3 >alter database open resetlogs;
Database altered.

---Database open成功!

查看告警日志:

alter database open
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_ora_3294.trc:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: ‘/u01/app/oracle/oradata/test3/system01.dbf‘
ORA-1113 signalled during: alter database open...
Wed Jan 07 11:01:40 2015
ALTER DATABASE RECOVER  database until cancel  
Media Recovery Start
Serial Media Recovery started
ORA-279 signalled during: ALTER DATABASE RECOVER  database until cancel  ...
Wed Jan 07 11:02:44 2015
ALTER DATABASE RECOVER    LOGFILE ‘/u01/app/oracle/oradata/test3/redo01a.log‘  
Media Recovery Log /u01/app/oracle/oradata/test3/redo01a.log
Incomplete recovery applied all redo ever generated.
Recovery completed through change 334001 time 01/07/2015 10:51:13
Media Recovery Complete (test3)
Completed: ALTER DATABASE RECOVER    LOGFILE ‘/u01/app/oracle/oradata/test3/redo01a.log‘  
alter database open
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_ora_3294.trc:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORA-1589 signalled during: alter database open...
Wed Jan 07 11:03:04 2015
alter database open resetlogs
RESETLOGS after complete recovery through change 334001
Resetting resetlogs activation ID 990996637 (0x3b11689d)
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_ora_3294.trc:
ORA-00367: checksum error in log file header
ORA-00322: log 1 of thread 1 is not current copy
ORA-00312: online log 1 thread 1: ‘/u01/app/oracle/oradata/test3/redo01a.log‘
Wed Jan 07 11:03:05 2015
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_m000_3336.trc:
ORA-00316: log 1 of thread 1, type 0 in header is not log file
ORA-00312: online log 1 thread 1: ‘/u01/app/oracle/oradata/test3/redo01a.log‘
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_ora_3294.trc:
ORA-00367: checksum error in log file header
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: ‘/u01/app/oracle/oradata/test3/redo02a.log‘
Errors in file /u01/app/oracle/diag/rdbms/test3/test3/trace/test3_m000_3336.trc:
ORA-00316: log 2 of thread 1, type 0 in header is not log file
ORA-00312: online log 2 thread 1: ‘/u01/app/oracle/oradata/test3/redo02a.log‘
Wed Jan 07 11:03:18 2015
Setting recovery target incarnation to 2
Wed Jan 07 11:03:20 2015
Checker run found 4 new persistent data failures
Wed Jan 07 11:03:21 2015
Assigning activation ID 991126251 (0x3b1362eb)
Thread 1 opened at log sequence 1
  Current log# 1 seq# 1 mem# 0: /u01/app/oracle/oradata/test3/redo01a.log
Successful open of redo thread 1
Wed Jan 07 11:03:22 2015
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Wed Jan 07 11:03:23 2015
SMON: enabling cache recovery
Successfully onlined Undo Tablespace 2.
Dictionary check beginning
Tablespace ‘TEMPTS1‘ #3 found in data dictionary,
but not in the controlfile. Adding to controlfile.
Dictionary check complete
Verifying file header compatibility for 11g tablespace encryption..
Verifying 11g file header compatibility for tablespace encryption completed
SMON: enabling tx recovery
*********************************************************************
WARNING: The following temporary tablespaces contain no files.
         This condition can occur when a backup controlfile has
         been restored.  It may be necessary to add files to these
         tablespaces.  That can be done using the SQL statement:
 
         ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
 
         Alternatively, if these temporary tablespaces are no longer
         needed, then they can be dropped.
           Empty temporary tablespace: TEMPTS1
*********************************************************************
Database Characterset is ZHS16GBK
No Resource Manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
Wed Jan 07 11:03:27 2015
QMNC started with pid=19, OS id=3341 
LOGSTDBY: Validating controlfile with logical metadata
LOGSTDBY: Validation complete
Completed: alter database open resetlogs
Wed Jan 07 11:13:27 2015
Starting background process SMCO
Wed Jan 07 11:13:27 2015
SMCO started with pid=22, OS id=3382

---至此,通过trace脚本,重建控制文件成功!


时间: 2024-10-27 11:32:36

Oracle Study之案例--重建数据库控制文件的相关文章

Oracle Study之案例--在RAW上controlfile多元化

Oracle Study之案例--在RAW上controlfile多元化 系统环境: 操作系统: AIX 5300-08 数据库:   Oracle 10.2.0.1 在通过dbca建库后,有两个控制文件,再添加一个控制文件 1.查看controlfile信息 [[email protected]:/home/oracle]$sqlplus '/as sysdba' SQL*Plus: Release 10.2.0.1.0 - Production on Wed Nov 19 11:15:45 

Oracle Study之案例--异构平台传输表空间(Linux至AIX)

Oracle Study之案例--异构平台传输表空间(Linux至AIX) 系统架构: 可                   源    库               目标库 操作系统 Linux RH6    AIX 5.3-09 主机名 rh6(192.168.8.245) aix211(192.168.8.211) 数据版本 Oracle 11gR2 Oracle 11gR2 数据库名 prod orcl 表空间 test1 test1    可传输表空间概述 Oracle 的可传输表空

Oracle Study之案例--RMAN备份配置参数

Oracle Study之案例--RMAN备份配置参数 1.PARALLELISM  我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:RMAN > configure device type disk parallelism 3 ; 表示启动三个通道,可以加快备份恢复的速度. 案例分析: RMAN> show all; using target database control file instead of recovery catalog CO

Oracle Study之案例--Oracle 数据块地址(Block Address)

Oracle Study之案例--Oracle 数据块地址(Block Address) Oracle访问数据是以block为单位,本文简单介绍了如何通过Block Address在内存中获取所需要的block. DBA(data block address): A DBA is the address of an oracle data block for access purposes. RDBA (Tablespace relative database block address): R

Oracle Study之案例--数据恢复神器Flashback(1)

Oracle Study之案例--数据恢复神器Flashback(1) Flashback: Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数.要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪

Oracle Study之案例--RMAN ORA-19921错误

Oracle Study之案例--RMAN ORA-19921错误 系统环境: 操作系统: AIX5.3 Oracle:   Oracle 10gR2 错误现象:         数据库在通过rman连接时出现以下错误: [11:01:51 [email protected]: ~]$rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Mon Jan 19 11:01:53 2015 Copyright (c) 1

Oracle Study之案例--Oracle ASSM管理方式下的BITMAP

Oracle Study之案例--Oracle ASSM管理方式下的Bitmap      在基于此在LMT(Extent Local Management)下Oracle建议我们使用ASSM(Automatic Segment-Space Management),看看 Oracle doc是如何来解释ASSM的: This keyword tells Oracle that you want to use bitmaps to manage the free space with in seg

Oracle Study之案例--Oracle 11g DataGuard Snapshot Standby

Oracle Study之案例--Oracle 11g  DataGuard Snapshot Standby Oracle 11g的Data Guard不仅仅带给我们的是Active Data Guard实时查询特性,同时还带来了另外一个新特性,这便是Snapshot Standby数据库功能,此项功能可将备库置身于"可读写状态"用于不方便在生产环境主库中测试的内容,比如模拟上线测试等任务.当备库读写状态下任务完成后,可以非常轻松的完成Snapshot Standby数据库角色切换回

Oracle Study之案例--安装Oracle内核参数配置

Oracle Study之案例--安装Oracle内核参数配置 在Linux系统下,安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内存相关的参数设置. 案例分析: 查看当前系统的内核参数配置: [[email protected] ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.acce