关闭DB后,重启产生ORA-00119和ORA-00132的解决方案

今天在启动服务器 上的ORACLE 时遇到如下错误:

SQL> startup;

ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'

 

网上找了很多资料,都没解决问题,后来看了一位达人的文章,主要意思是先用spfile产生pfile,再修改local_listener的参数,再重新产生spfile,步骤如下:

 

第一步:复制一份pfile参数文件(注意:oracle中的pfile指的就是init<sid>.ora文件)

$ ./sqlplus / as sysdba;

SQL> create pfile from spfile='/u01/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora';

第二步:修改pfile参数文件(也即修改init<sid>.ora文件)

经过第一步以后,你就会在$ORACLE_HOME/dbs目录下发现有这么一个文件init<sid>.ora,这就是你第一步创建的文件。由于我的oracle实例名为orcl,所以我的pfile文件为initorcl.ora。

用gedit打开,找到local_listener这一行,然后将其值修改为:

(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))

其中的your_hostname为你的主机名,其实导致ORA-00119和ORA-00132错误的原因就很可能是你修改了你的 hostname,但是我看了一下我的tnsname.ora文件里面的那个LISTENER_ORCL(可能你不是这个名字)和后面修改的 your_hostname一致,我做的只是将tnsname.ora文件中的(ADDRESS_LIST=(Address= (Protocol=tcp) (Host=your_hostname)(Port=1521)))复制到pfile文件的“local_listener=”后面,然后就顺利启动了 数据库,我也不知道为什么直接用*.local_listener='LISTENER_ORCL'就找不到,而一定 要*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))'才可以,这个问题以后研究一下。

以下是我的一个修改样例:

修改之前可能是这样

*.local_listener='LISTENER_ORCL'

修改后的值大概就是这个样子了

*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))'

然后保存退出

第三步:以pfile创建spfile

使用以下命令创建spfile

SQL> create spfile from pfile='/u01/oracle/product/10.2.0/db_1/dbs/initorcl.ora';

第四步:启动数据库

SQL> startup;

ORACLE instance started.

Total System Global Area *** bytes
Fixed Size *** bytes
Variable Size *** bytes
Database Buffers *** bytes
Redo Buffers *** bytes
Database mounted.
Database opened. 

### 关于ORA-00603、ORA-01092ORA-14694错误的解决方案 #### ORA-00603: ORACLE server session terminated by fatal error 此错误通常表示Oracle服务器会话因致命错误而终止。它可能是其他更具体错误的综合表现,例如资源耗尽或数据库实例异常终止。常见原因包括操作系统资源不足、进程数超出限制或其他底层错误[^1]。 #### ORA-01092: ORACLE instance terminated. Disconnection forced 该错误表明Oracle实例已终止,并强制断开了连接。通常与数据库启动或关闭过程中发生的严重问题有关。可能的原因包括控制文件损坏、数据字典表损坏或软件版本不匹配等[^5]。 #### ORA-14694: encryption or decryption service unavailable in this installation 此错误表示当前安装中不可用加密或解密服务。通常与Oracle Advanced Security选项未正确配置或未启用有关。检查是否已安装并启用了必要的许可组件是解决问题的关键[^4]。 --- #### 综合解决方案 1. **检查告警日志** 首先需要检查Oracle告警日志以获取更多详细信息。告警日志通常位于`$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/`目录下。通过分析日志中的具体错误代码(如ORA-00020、ORA-27300等),可以进一步定位问题根源[^2]。 2. **验证系统资源** 如果错误涉及操作系统层面的问题(如ORA-27301:OS failure message: No buffer space available),则需要检查服务器的内存、CPU磁盘空间使用情况。确保没有资源耗尽的情况发生[^3]。 3. **调整进程数限制** 对于ORA-00020(最大进程数超出)导致的ORA-00603错误,可以通过增加`processes`参数值来解决。编辑初始化参数文件(pfile或spfile),将`processes`参数设置为更高的值,例如: ```sql ALTER SYSTEM SET processes=1500 SCOPE=SPFILE; ``` 修改后需重启数据库实例以使更改生效[^2]。 4. **修复数据字典损坏** 如果怀疑数据字典表损坏(如ORA-00704: bootstrap process failure),可以尝试以下步骤: - 使用`ANALYZE TABLE ... VALIDATE STRUCTURE CASCADE`命令检查关键表的完整性。 - 如果发现损坏,可以使用`DBMS_REPAIR`包进行修复,或者从备份中恢复相关对象[^5]。 5. **启用加密功能** 针对ORA-14694错误,确认是否已安装Oracle Advanced Security选项。如果没有,则需要联系Oracle支持以获取相应许可。如果已安装但仍未生效,检查以下参数配置: ```sql SQL> SHOW PARAMETER db_securefile; ``` 确保`db_securefile`参数值为`ALWAYS`[^4]。 6. **重建控制文件或重做日志** 如果控制文件或重做日志损坏,可能导致数据库无法正常打开。可以通过以下步骤重建: - 备份现有控制文件。 - 使用`CREATE CONTROLFILE`语句重新创建控制文件。 - 恢复并应用归档日志以确保数据一致性。 --- ### 示例代码 以下是一个简单的示例,展示如何调整`processes`参数以避免ORA-00020错误: ```sql -- 查看当前processes参数值 SHOW PARAMETER processes; -- 修改processes参数值 ALTER SYSTEM SET processes=1500 SCOPE=SPFILE; -- 重启数据库实例以使更改生效 SHUTDOWN IMMEDIATE; STARTUP; ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值