错误ORA-29760: instance_number parameter not specified的解决办法

之前搭建了RAC的测试环境后,检查节点状态发现节点2的实例没有启动:

[oracle@node1 ~]$ srvctl status database -d GZYT
Instance GZYT1 is running on node node1
Instance GZYT2 is not running on node node2

尝试在节点2启动数据库,提示实例的数字参数没有指定:

[oracle@node2 ~]$ export ORACLE_SID=GZYT2
[oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 24 21:07:21 2018

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

Connected to an idle instance.

SQL> startup
ORA-29760: instance_number parameter not specified

查看节点的其他资源都是正常:

[grid@node1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.FRA.dg
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.LISTENER.lsnr
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.OCRVOTE.dg
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.asm
               ONLINE  ONLINE       node1                    Started             
               ONLINE  ONLINE       node2                    Started             
ora.gsd
               OFFLINE OFFLINE      node1                                        
               OFFLINE OFFLINE      node2                                        
ora.net1.network
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.ons
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                        
ora.registry.acfs
               ONLINE  ONLINE       node1                                        
               ONLINE  ONLINE       node2                                      

通过已正常启动的节点1查看RAC的参数文件是否缺少实例2的SID:

[oracle@node1 ~]$ export ORACLE_SID=GZYT1
[oracle@node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 24 21:07:21 2018

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

Connected to an idle instance.
SQL> create pfile='/tmp/gzyt.ora' from spfile='+DATA/GZYT/spfileGZYT.ora';

File created.
SQL> !cat /tmp/gzyt.ora
GZYT1.__db_cache_size=251658240
GZYT1.__java_pool_size=4194304
GZYT1.__large_pool_size=4194304
GZYT1.__pga_aggregate_target=327155712
GZYT1.__sga_target=482344960
GZYT1.__shared_io_pool_size=0
GZYT1.__shared_pool_size=213909504
GZYT1.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/GZYT/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.0.0'
*.control_files='+DATA/gzyt/controlfile/current.260.966128175','+FRA/gzyt/controlfile/current.256.966128177'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='GZYT'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=GZYTXDB)'
GZYT1.instance_number=1
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=808452096
*.open_cursors=300
*.processes=150
*.remote_listener='scanip:1521'
*.remote_login_passwordfile='exclusive'
GZYT1.thread=1
GZYT1.undo_tablespace='UNDOTBS1'

由上面输入可知确实少了实例2的一些信息,编辑刚刚创建的pfile,增加以下内容:

GZYT2.instance_number=2
GZYT2.thread=2
GZYT2.undo_tablespace='UNDOTBS2'

确保创建了实例2的undo表空间和日志文件:

#结果发现没有实例2所需要的undo表空间和日志文件
SQL> select file#,name from v$datafile; FILE# NAME ---------- -------------------------------------------------- 1 +DATA/gzyt/datafile/system.256.966128053 2 +DATA/gzyt/datafile/sysaux.257.966128053 3 +DATA/gzyt/datafile/undotbs1.258.966128055 4 +DATA/gzyt/datafile/users.259.966128055 5 +DATA/gzyt/datafile/example.265.966128233 SQL> select group#,thread#,members,status from v$log; GROUP# THREAD# MEMBERS STATUS ---------- ---------- ---------- ---------------- 1 1 2 INACTIVE 2 1 2 ACTIVE 3 1 2 CURRENT

在节点1数据库增加节点2实例的日志文件和undo表空间,并启动实例2的日志线程:

SQL> create undo tablespace datafile '+DATA' size 115m

Tablespace created.

SQL> alter database add logfile thread 2 group 4 ('+DATA','+DATA') size 50m;

Database altered.

SQL> alter database add logfile thread 2 group 5 ('+DATA','+DATA') size 50m;

Database altered.

SQL> alter database add logfile thread 2 group 6 ('+DATA','+DATA') size 50m;

Database altered.

SQL> alter database enable thread 2;

Database altered.

#保存修改后的spfile
SQL> create spfile='+DATA/GZYT/spfileGZYT.ora' from pfile='/tmp/gzyt.ora';

File created.

重新尝试在节点2启动数据库:

#成功启动数据库
SQL> startup
ORACLE instance started.

Total System Global Area  807682048 bytes
Fixed Size                  1347964 bytes
Variable Size             541068932 bytes
Database Buffers          260046848 bytes
Redo Buffers                5218304 bytes
Database mounted.
Database opened.
SQL> 

重新查看节点数据库状态:

[oracle@node1 ~]$ srvctl status database -d GZYT
Instance GZYT1 is running on node node1
Instance GZYT2 is running on node node2

两个节点的实例都已成功启动。

 

posted @ 2018-01-24 23:16  元朗蛋卷  阅读(3126)  评论(0编辑  收藏  举报