silver

前途迷茫。。。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

之前做了多路复用控制文件,出现了错误:

ORA-00214: control file '/opt/ora10/oradata/ora1/control01.ctl' version 596

inconsistent with file '/opt/ora10/oradata/ora1/control02.ctl' version 576

这里说的控制文件版本不同,估计是文件不一致,更改控制文件将导致数据库一致性无法保障。 

因为发生错误,数据库无法启动,所以先把SPFILE改回去

SQL>alter system set control_files='/opt/ora10/oradata/ora1/' scope=spfile; 

重新启动数据库 发现,居然还可以用control01.ctl启动

最后只能重做控制文件了 

重做控制文件需要注意几点,首先要查看数据库是否处于归档模式,因为要用到的脚本是不同的。


查看数据库是否处于归档模式

SQL> archive log list;

Database log mode       No Archive Mode
Automatic archival       Disabled
Archive destination       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     6
Current log sequence       8

非归档模式 


 

 用trace 生成脚本

 SQL>alter database backup controlfile to trace; 

 

找到用  @gettrcname 脚本找出生成的控制文件脚本, @gettrcname 脚本网上有几个版本,搜索下就有了

 

SQL> @ /opt/ora10/bin/gettrcname    
TRACE_FILE
--------------------------------------------------------------------------------
/opt/ora10/admin/ora1/udump/ora1_ora_5926.trc

打开 ora1_ora_5926.trc 脚本文件,里面有两个case ,如果用非归档就用 #1. NORESETLOGS case 下面的脚本

如果是归档模式就用#2,这里我是用非归档模式

 

SQL>STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA1" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/opt/ora10/oradata/ora1/redo01.log'  SIZE 50M,
  GROUP 2 '/opt/ora10/oradata/ora1/redo02.log'  SIZE 50M,
  GROUP 3 '/opt/ora10/oradata/ora1/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/opt/ora10/oradata/ora1/system01.dbf',
  '/opt/ora10/oradata/ora1/undotbs01.dbf',
  '/opt/ora10/oradata/ora1/sysaux01.dbf',
  '/opt/ora10/oradata/ora1/users01.dbf',
  '/opt/ora10/oradata/ora1/example01.dbf'
CHARACTER SET WE8ISO8859P1
;

 


 Control file created.


 

 

 

SQL> recover database using backup controlfile until cancel;

auto 就可以了

 

然后用 用alter database open resetlogs打开了数据库就可以了。

 在用之前写的多路复用方法,就可以是实现控制文件的多路复用 

 

 

 

 

 

posted on 2011-04-07 14:46  silverVan  阅读(531)  评论(0)    收藏  举报