欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle ORA-00119,ORA-00132 错误处理

程序员文章站 2022-06-08 16:17:12
...

最近系统启动时,收到了ORA-00119以及ORA-00132的错误,该错误实际上跟LISTENER有关,通常的处理办法是将spfile转储为pfile然后从

最近系统启动时,收到了ORA-00119以及ORA-00132的错误,该错误实际上跟LISTENER有关,通常的处理办法是将spfile转储为pfile然后从pfile启动

并生成新的spfile,不过该操作方式代价太高,需要重新启动数据库。另一种方式则是直接修改tnsnames.ora中的服务名,使之与监听器中的listener名字保持一致,具体参考下面的细节。

一.错误提示

SQL> startup nomount;

ORA-00119: invalid specification for system parameter LOCAL_LISTENER

ORA-00132: syntax error or unresolved network name 'LISTENER_ODBP'

二、分析错误

1.查看错误号对应的具体描述

[Oracle@odbp admin]$ oerr ora 00132

00132, 00000, "syntax error or unresolved network name '%s'"

// *Cause: Listener address has syntax error or cannot be resolved.

// *Action: If a network name is specified, check that it corresponds

// to an entry in TNSNAMES.ORA or other address repository

// as configured for your system. Make sure that the entry

// is syntactically correct.

描述信息中给出了listener.ora中网络名是否与tnsnames.ora相一致,,需要检查

2.查看监听

[oracle@odbp admin]$ more listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/10g/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER_ODBP =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = odbp.oradb.com)

(ORACLE_HOME = /u01/app/oracle/10g)

(SID_NAME = odbp)

)

)

LISTENER_ODBP =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = odbp.oradb.com)(PORT = 1521))

)

3.查看tnsnames.ora

[oracle@odbp admin]$ more tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/10g/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

ODBP =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.192.11)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = odbp.oradb.com)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

由上面的listener.ora与tnsnames.ora可知

listener.ora中的监听名与tnsnames.ora中的服务名不一致

三、解决方法

1.修改tnsnames.ora中的服务名为LISTENER_ODBP,然后重新启动数据库即可

2.可以将spfile(无pfile情况下)转储为pfile文件,将local_listener参数置空,然后使用pfile文件启动数据库后重新生成spfile

可以采用下面的方法来转储,如下

[oracle@odbp dbs]$ ls --没有pfile

hc_odbp.dat initdw.ora init.ora lkODBP orapwodbp spfileodbp.ora

[oracle@odbp dbs]$ strings spfileodbp.ora > initodbp.ora

[oracle@odbp dbs]$ cat initodbp.ora

odbp.__db_cache_size=130023424

odbp.__java_pool_size=33554432

odbp.__large_pool_size=4194304

odbp.__shared_pool_size=113246208

odbp.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/odbp/adump'

*.background_dump_dest='/u01/app/oracle/admin/odbp/bdump'

*.compatible='10.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/odbp/control01.ctl','/u01/app/oracle/oradata/odbp/control02.ctl'

*.core_dump_dest='/u01/app/oracle/admin/odbp/cdump'

*.db_block_size=8192

*.db_domain='oradb.com'

*.db_file_multiblock_read_count=16

*.db_name='odbp'

*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=odbpXDB)'

*.job_queue_processes=10

*.local_listener='LISTENER_ODBP' --将改行注释掉或置空

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=285212672

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/app/oracle/admin/odbp/udump'

SQL> startup nomount pfile='/u01/app/oracle/10g/dbs/initodbp.ora';

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1267068 bytes

Variable Size 150997636 bytes

Database Buffers 130023424 bytes

Redo Buffers 2924544 bytes

SQL> create spfile from pfile;

File created.

SQL> startup force;

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1267068 bytes

Variable Size 150997636 bytes

Database Buffers 130023424 bytes

Redo Buffers 2924544 bytes

Database mounted.

Database opened.

Oracle ORA-00119,ORA-00132 错误处理