两个节点,第一个节点能正常启动,但第二个节点报错。
无论是在集群还是在实例,都无法启动数据库实例。
[grid@m2 ~]$ srvctl start instance -d mdb -i mdb2
PRCR-1013 : 无法启动资源 ora.mdb.db
PRCR-1064 : 无法在节点 m2 上启动资源 ora.mdb.db
ORA-00203: ??????????
ORA-00202: ????: ''+DATA/mdb/controlfile/current.268.821031437''
CRS-2674: 未能启动 'ora.mdb.db' (在 'm2' 上)
[grid@m2 ~]$ pwd
/home/grid
[grid@m2 ~]$ ll
总计 4
drwxrwxr-x 3 grid oinstall 4096 07-15 15:35 oradiag_grid
[grid@m2 ~]$ pwd
/home/grid
[grid@m2 ~]$ srvctl status asm -n m1
ASM 正在 m1 上运行
[grid@m2 ~]$ srvctl status asm -n m2
ASM 正在 m2 上运行
ORA-03113: end-of-file on communication channel
使用相同的pfile启动。
SQL> startup pfile='/opt/app/oracle/product/11.2.0/dbs/initmdb1.ora';
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 469764620 bytes
Database Buffers 1124073472 bytes
Redo Buffers 11833344 bytes
ORA-00203: using the wrong control files
ORA-00202: control file: '+DATA/mdb/controlfile/current.268.821031437'
NODE M2:
SQL> show parameter control
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
control_file_record_keep_time integer
7
control_files string
+DATA/mdb/controlfile/current.
268.821031437, +RECOVERY/mdb/c
ontrolfile/current.269.8210314
39
control_management_pack_access string
DIAGNOSTIC+TUNING
SQL>
NODE M1:
SQL> show parameter control
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
control_file_record_keep_time integer
7
control_files string
+DATA/mdb/controlfile/current.
268.821031437, +RECOVERY/mdb/c
ontrolfile/current.269.8210314
39
control_management_pack_access string
DIAGNOSTIC+TUNING
SQL>
怀疑是虚拟机中的磁盘设置问题,修改虚拟机文件
把 scsi0:1.type="disk"
修改为:
scsi0:1.shared="TRUE"
其它两项不变
scsi0:1.virtualDev = "lsilogic"
scsi0:1.SharedBus="Virtual"
所有共享磁盘修改后为:
scsi0:1.virtualDev = "lsilogic"
scsi0:1.sharedBus = "VIRTUAL"
scsi0:1.shared="TRUE"
disk.locking="FALSE"
========================================================
修改后,再启动实例,还是无法启动,报控制文件出错:
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 520096268 bytes
Database Buffers 1073741824 bytes
Redo Buffers 11833344 bytes
ORA-00214: control file '+RECOVERY/mdb/controlfile/current.269.821031439'
version 1199 inconsistent with file
'+DATA/mdb/controlfile/current.283.821115539' version 522
SQL> show parameter spfile;
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
spfile string
+DATA/mdb/spfilemdb.ora
SQL> select instance_name from v$instance;
INSTANCE_NAME
------------------------------------------------
mdb1
SQL> show parameter spfile;
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
spfile string
+DATA/mdb/spfilemdb.ora
SQL> select instance_name from v$instance;
INSTANCE_NAME
------------------------------------------------
mdb1
SQL> create pfile from spfile;
File created.
SQL> shutdown abort;
ORACLE instance shut down.
SQL> exit
[oracle@m1 dbs]$ vi initmdb1.ora
[oracle@m1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 18 15:24:51 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/opt/app/oracle/product/11.2.0/dbs/initmdb1.ora';
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 520096268 bytes
Database Buffers 1073741824 bytes
Redo Buffers 11833344 bytes
Database mounted.
Database opened.
SQL>
[oracle@m1 dbs]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jul 18 15:29:09 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> startup nomount;
Oracle instance started
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 520096268 bytes
Database Buffers 1073741824 bytes
Redo Buffers 11833344 bytes
RMAN> restore controlfile to '+DATA' from '+RECOVERY/mdb/controlfile/current.269.821031439';
Starting restore at 2013-07-18 15:30:28
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=143 instance=mdb1 device type=DISK
channel ORA_DISK_1: copied control file copy
Finished restore at 2013-07-18 15:30:36
RMAN> restore controlfile to '+DATA' from '+RECOVERY/mdb/controlfile/current.269.821031439';
Starting restore at 2013-07-18 15:38:57
using channel ORA_DISK_1
channel ORA_DISK_1: copied control file copy
Finished restore at 2013-07-18 15:39:05
RMAN> exit
恢复控制文件的同时,可以在其它窗口看到增加的控制文件名称:
ASMCMD> ls
Current.256.820944177
Current.268.821031437
current.282.821115029
ASMCMD> ls
Current.256.820944177
Current.268.821031437
current.282.821115029
current.283.821115539
ASMCMD>
后面两个文件是这次恢复的。
修改pfile,添加进去:
*.control_files='+DATA/mdb/controlfile/current.282.821115029','+DATA/mdb/controlfile/current.283.821115539','+RECOVERY/mdb/controlfile/current.269.821031439'
再次使用pfile启动数据库后,建立spfile 文件。
SQL> startup pfile='/opt/app/oracle/product/11.2.0/dbs/initmdb1.ora';
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 520096268 bytes
Database Buffers 1073741824 bytes
Redo Buffers 11833344 bytes
Database mounted.
Database opened.
SQL>
create spfile='+DATA/mdb/spfilemdb.ora' from pfile='/opt/app/oracle/product/11.2.0/dbs/initmdb1.ora';
修改pfile文件指定到新生成的共享磁盘中的spfile
[oracle@m1 dbs]$ cat initmdb1.ora
SPFILE='+DATA/mdb/spfilemdb.ora'
[oracle@m1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 18 15:53:56 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 520096268 bytes
Database Buffers 1073741824 bytes
Redo Buffers 11833344 bytes
Database mounted.
Database opened.
SQL>
完成后,再另一个节点启动数据库实例:
[oracle@m2 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 18 15:58:55 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area 1607008256 bytes
Fixed Size 1336820 bytes
Variable Size 469764620 bytes
Database Buffers 1124073472 bytes
Redo Buffers 11833344 bytes
Database mounted.
Database opened.
SQL> create table tst_tbs(id number(10),prod_name varchar2(50));
Table created.
SQL> insert into tst_tbs values(1,'test name');
1 row created.
SQL> commit;
Commit complete.
在另一个实例中可以看到刚才插入的数据。
SQL> select id,prod_name from tst_tbs;
ID
----------
PROD_NAME
--------------------------------------------------------------------------------
1
test name
SQL> select instance_name from v$instance;
INSTANCE_NAME
------------------------------------------------
mdb1
SQL>
在RAC中,看到数据库没启动起来,再次使用RAC的命令启动一下数据库,完成。
[grid@m1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.CRS.dg ora....up.type ONLINE ONLINE m1
ora.DATA.dg ora....up.type ONLINE ONLINE m1
ora....ER.lsnr ora....er.type ONLINE ONLINE m1
ora....N1.lsnr ora....er.type ONLINE ONLINE m2
ora....VERY.dg ora....up.type ONLINE ONLINE m1
ora.asm ora.asm.type ONLINE ONLINE m1
ora.eons ora.eons.type ONLINE ONLINE m1
ora.gsd ora.gsd.type ONLINE ONLINE m1
ora....SM1.asm application ONLINE ONLINE m1
ora....M1.lsnr application ONLINE ONLINE m1
ora.m1.gsd application ONLINE ONLINE m1
ora.m1.ons application ONLINE ONLINE m1
ora.m1.vip ora....t1.type ONLINE ONLINE m1
ora....SM2.asm application ONLINE ONLINE m2
ora....M2.lsnr application ONLINE ONLINE m2
ora.m2.gsd application ONLINE ONLINE m2
ora.m2.ons application ONLINE ONLINE m2
ora.m2.vip ora....t1.type ONLINE ONLINE m2
ora....SM3.asm application ONLINE ONLINE m3
ora....M3.lsnr application ONLINE ONLINE m3
ora.m3.gsd application ONLINE ONLINE m3
ora.m3.ons application ONLINE ONLINE m3
ora.m3.vip ora....t1.type ONLINE ONLINE m3
ora.mdb.db ora....se.type ONLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE m1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE m1
ora....ry.acfs ora....fs.type ONLINE ONLINE m1
ora.scan1.vip ora....ip.type ONLINE ONLINE m2
[grid@m1 ~]$ srvctl start database -d mdb
[grid@m1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.CRS.dg ora....up.type ONLINE ONLINE m1
ora.DATA.dg ora....up.type ONLINE ONLINE m1
ora....ER.lsnr ora....er.type ONLINE ONLINE m1
ora....N1.lsnr ora....er.type ONLINE ONLINE m2
ora....VERY.dg ora....up.type ONLINE ONLINE m1
ora.asm ora.asm.type ONLINE ONLINE m1
ora.eons ora.eons.type ONLINE ONLINE m1
ora.gsd ora.gsd.type ONLINE ONLINE m1
ora....SM1.asm application ONLINE ONLINE m1
ora....M1.lsnr application ONLINE ONLINE m1
ora.m1.gsd application ONLINE ONLINE m1
ora.m1.ons application ONLINE ONLINE m1
ora.m1.vip ora....t1.type ONLINE ONLINE m1
ora....SM2.asm application ONLINE ONLINE m2
ora....M2.lsnr application ONLINE ONLINE m2
ora.m2.gsd application ONLINE ONLINE m2
ora.m2.ons application ONLINE ONLINE m2
ora.m2.vip ora....t1.type ONLINE ONLINE m2
ora....SM3.asm application ONLINE ONLINE m3
ora....M3.lsnr application ONLINE ONLINE m3
ora.m3.gsd application ONLINE ONLINE m3
ora.m3.ons application ONLINE ONLINE m3
ora.m3.vip ora....t1.type ONLINE ONLINE m3
ora.mdb.db ora....se.type ONLINE ONLINE m1
ora....network ora....rk.type ONLINE ONLINE m1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE m1
ora....ry.acfs ora....fs.type ONLINE ONLINE m1
ora.scan1.vip ora....ip.type ONLINE ONLINE m2