ORA-01034 ORA-27101

本文介绍了解决Oracle数据库启动时遇到的ORA-01034及12640错误的方法。通过修改sqlnet.ora文件中的认证服务设置,可以有效解决因验证适配器初始化失败导致的问题。

ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

 

首先看一下 ORACLE_BASE/ORACLE_HOME/DATABASE 下面的 ORADIM.LOG 文件
  如果里边有这个错误
  ORA-12640: 验证适配器初始化失败
  那么问题就是他了.
  到ORACLE_BASE/ORACLE_HOME/NETWORK/ADMIN下面找sqlnet.ora文件
  把sqlnet.authentication_services=(NTS) 改成
  sqlnet.authentication_services=(NONE)
  然后手动重起一下你的哪个数据库服务..在开始->控制面板->管理工具->服务里然后把这个服务的启动帐号改成你的帐号吧...其实不改大概也没有毛病.我就没改。。

看了这个方法,出错的原因大概有两种情况,修改了帐户,实例有些变动等。

 

 

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; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值