Oracle 12c RAC,其中一个节点数据库实例起不来,怎么办

Oracle 12c RAC,其中一个节点数据库实例起不来,怎么办,第1张

两个节点,第一个节点能正常启动,但第二个节点报错。

无论是在集群还是在实例,都无法启动数据库实例。

[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 Size1336820 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 Size1336820 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 Size1336820 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 Area1607008256 bytes

Fixed Size 1336820 bytes

Variable Size520096268 bytes

Database Buffers1073741824 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 Size1336820 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 Size1336820 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 Size1336820 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 TargetState Host

启动根容器

[oracle@eric ~]$ export ORACLE_SID=cup

[oracle@eric ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Jan 21 16:00:06 2015

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

Connected to an idle instance.

SQL>startup-----不会直接启动所有可插拔数据库,如需启动所有可插拔数据库,执行命令:alter pluggable database all open

ORACLE instance started.

Total System Global Area 767557632 bytes

Fixed Size 2929112 bytes

Variable Size 574623272 bytes

Database Buffers 184549376 bytes

Redo Buffers5455872 bytes

Database mounted.

Database opened.

停止根容器:

SQL>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

查看是否创建了CDB,如果有显示名字:

SQL>select name,cdb from v$database

NAME CDB

--------- ---

CUP YES

SQL>show parameter service

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

service_namesstring cup

查看容器名字,其中有3个容器:根容器、种子容器和自己创建的容器:

SQL>select con_id,name from v$containers

CON_ID NAME

---------- ------------------------------

1 CDB$ROOT---根容器

2 PDB$SEED---种子容器,只可读

3 TEA ---自己创建的可插拔数据库

SQL>select file_name from dba_data_files

FILE_NAME

--------------------------------------------------------------------------------

/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf

SQL>select file_name from cdb_data_files

FILE_NAME

--------------------------------------------------------------------------------

/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf

创建公共用户:

SQL>create user c##eric identified by gao

User created.

SQL>conn c##eric/gao

ERROR:

ORA-01045: user C##ERIC lacks CREATE SESSION privilegelogon denied----没有权限,我们可以单独给其赋予权限,也可以给其指定角色。

Warning: You are no longer connected to ORACLE.

SQL>conn / as sysdba

Connected.

SQL>grant dba to c##eric container=all---给其DBA角色,角色范围覆盖所有的容器

Grant succeeded.

SQL>conn c##eric/gao

Connected. ---连接成功

切换容器:

首先启动自己创建的容器数据库:

SQL>alter pluggable database tea open ---首先启动PDB数据库

SQL>alter session set container = tea

Session altered.

SQL>show con_name ---查看当前所在的容器名

CON_NAME

------------------------------

TEA

关闭可插拔数据库:

SQL>alter pluggable database tea close immediate

Pluggable database altered.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10857128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存