ora-01034 ,ora-27101

本文解决了MyEclipse启动时出现的连接数不足问题,并详细记录了解决过程,包括调整参数、处理ORA-01034错误以及如何通过修改spfile设置process参数来最终解决问题。

由于我修改了process的参数,修改为23,导致myeclipse 启用时,提示连接数不够用,我找到目录dbs,修改了spfile的参数,修改为默认值150。结果ora -01034 错误,于是,改为23。使用alter system set processes=200 scope=spfile。重启,问题解决。

随便找问题的相关思路:从配置文件---定位action---定位相应的方法------定位到jsp--或者是severice方法----定位到dao层,若是使用hibernate访问数据库,则只需要根据实体类来编写相应的xml文件。若是ibatis文件,则定位到dao层中相应的方法,找到对应的map文件。

由于项目这块避免了主键关联,则直接使用了单表的assigned手工生成主键的方法。系统中公用了一个方法。取主键的值,配置在一个表中tb_sql_val,每次取值取40,然后进行定位。若考虑到多个应用连一台数据库,可能会产生主键冲突的问题,这时候根据关联结构和主键表的值来进行准确的定位。

 

备注:定位的dao层和  service方法进行事务管理。在spring 和hibernate文件中进行管理!

 

ORA-01034ORA-27101Oracle 数据库中常见的错误,通常表示数据库实例不可用或共享内存区域不存在。以下是解决这两个错误的详细方案: ### 1. 检查数据库实例是否启动 ORA-01034 表示 Oracle 数据库实例未启动,而 ORA-27101 表示共享内存区域不存在,通常意味着实例未正确初始化。可以尝试以下命令连接到空闲实例并启动数据库: ```sql sqlplus /nolog conn / as sysdba startup ``` 如果数据库成功启动,则可以正常连接[^2]。 ### 2. 使用 pfile 启动数据库 如果数据库无法正常启动,可能是由于初始化参数文件(pfile 或 spfile)配置错误或缺失。可以尝试手动指定 pfile 文件启动数据库: ```sql startup pfile='D:\oracle\product\11.2.0\dbhome_1\database\init.ora' ``` 该命令会使用指定的初始化参数文件启动数据库实例,确保数据库能够正确加载并打开[^1]。 ### 3. 检查监听器状态 确保 Oracle 监听器(LISTENER)正在运行。可以通过以下命令检查监听器状态: ```bash lsnrctl status ``` 如果监听器未启动,使用以下命令启动监听器: ```bash lsnrctl start ``` 确保监听器配置文件 `listener.ora` 和 `tnsnames.ora` 中的配置正确,路径无误,避免出现 ORA-12514 等其他连接错误[^1]。 ### 4. 检查归档日志空间 如果数据库处于归档模式,归档日志空间不足也可能导致数据库无法启动。检查归档日志路径是否可用,磁盘空间是否充足。可以通过查看数据库的跟踪文件(.trc)来确认是否因归档空间不足导致问题[^3]。 ### 5. 检查数据库服务状态 在 Windows 系统中,确保 Oracle 的相关服务(如 OracleServiceSID 和 OracleOraDb11g_home1TNSListener)已启动。可以通过“服务”管理工具查看并启动这些服务。 ### 6. 检查共享内存和信号量配置 在 Linux/Unix 系统中,ORA-27101 可能与共享内存或信号量配置有关。需要确保系统内核参数(如 `shmmax`、`shmmni`、`shmall`)配置正确,且 Oracle 用户有权限访问共享内存区域。 可以通过以下命令查看当前共享内存设置: ```bash cat /proc/sys/kernel/shmall cat /proc/sys/kernel/shmmax ``` 根据数据库需求调整这些参数,并在 `/etc/sysctl.conf` 中进行永久配置。 ### 7. 检查数据库控制文件和数据文件 如果数据库无法打开,可能是控制文件或数据文件损坏。可以尝试使用以下命令重建控制文件: ```sql ALTER DATABASE BACKUP CONTROLFILE TO TRACE; ``` 根据生成的脚本重建控制文件,并确保所有数据文件路径正确且可访问。 ### 示例代码:启动数据库并指定 pfile ```sql sqlplus / as sysdba startup pfile='D:\oracle\product\11.2.0\dbhome_1\database\init.ora' ``` ### 示例代码:重建控制文件 ```sql STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u01/oradata/orcl/redo01.log' SIZE 50M, GROUP 2 '/u01/oradata/orcl/redo02.log' SIZE 50M, GROUP 3 '/u01/oradata/orcl/redo03.log' SIZE 50M DATAFILE '/u01/oradata/orcl/system01.dbf', '/u01/oradata/orcl/sysaux01.dbf', '/u01/oradata/orcl/undotbs01.dbf', '/u01/oradata/orcl/users01.dbf' CHARACTER SET AL32UTF8; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值