Linux DBCA 报错ORA-00119 ORA-00130

本文详细介绍了在Linux环境下安装Oracle过程中遇到的多种错误及其解决方法,包括ORA-00119、ORA-00130、ORA-01078、ORA-01102等,并提供了具体的配置调整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误来源:

将一个EXPDP导出的库导入到现在服务器,发现字符集有问题,服务器安装的是西欧字符,然后DMP包确实简体中文;

于是删掉实例,重新安装,在安装的时候就出现了ORA-00119与ORA-00130错误,无法继续了。

问题根源就在于Linxu 配置 /etc/hosts

ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))
结果发现localhost竟然没有oracle和test帐户......
[oracle@test ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[oracle@test ~]$ su 
Password: [root@test oracle]#vi /etc/hosts
在127.0.0.1后面添加当前host名:
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4 test oracle
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
具体配置:
127.0.0.1      liuyang  localhost4 localhost4.localdomain4
::1                     localhost6 localhost6.localdomain6
192.168.1.197  liuyang

实例创建成功之后,在mount实例的时候出现了ORA-01078和LRM-00109   

SQL> startup mount; 

    ORA-01078: failure in processing system parameters 
    LRM-00109: could not open parameter file '/oracle/product/11.1.0/dbs/initorcl.ora'     
SQL> exit 
这是因为在oracle9i和oracle10g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。     
解决方法: 
将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.012009233838形式的文件copy 
到$ORACLE_HOME/dbs目录下initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)


经过处理实例安装成功,但是在startup mount的时候出现了错误:ORA-00845

究其原因就是Linux系统的shm的大小比SGA设置的小,造成的,距离来说,SGA设置4G,而shm可能只有1G

网上提供两种解决办法:
01、调整sga的大小,这个明显不是我们所希望的
02、调整shm的大小,这样相对简单,具体操作如下
vi /etc/fstab
修改如下行的设置
tmpfs /dev/shm tmpfs defaults 0 0
改成
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
保存退出
重新mount下shm使其生效
mount -o remount /dev/shm
通过df可以查看下,没有问题就可以继续安装数据库或者启动数据库了!

在startup mount 的时候出现另外另外一个错误:ORA-01102: cannot mount database in EXCLUSIVE mode

网上的解决方案是:

SQL> startup

ORACLE instance started.

Total System Global Area  599785472 bytes

Fixed Size                  2022600 bytes

Variable Size             171967288 bytes

Database Buffers          419430400 bytes

Redo Buffers                6365184 bytes

ORA-01102: cannot mount database in EXCLUSIVE mode

这个错误主要是lk<SID>文件造成的,该文件位于ORALCE_HOME下的dbs目录下,

这个lk<SID>的主要作用是说明DATABASE MOUNT上了,不用在MOUNT了.DATABASE UNMOUNT 后会删除掉,如果DATABASE确实没有MOUNT,这个文件在你也MOUNT上,只有手工删除,所以一定要小心.

具体解决ORA-01102问题的步骤:

# /sbin/fuser -u lkTEST

lkTEST: 4918(oracle) 20726(oracle) 20728(oracle) 20730(oracle) 20732(oracle) 20734(oracle) 20736(oracle) 20738(oracle) 20740(oracle) 20742(oracle) 20744(oracle) 20746(oracle) 20754(oracle) 21781(oracle) 21783(oracle)

该文件没释放,用fuser命令kill掉:

# /sbin/fuser -k lkTEST

lkTEST: 6666 6668 6670 6672 6674 6676 6678 6680 6690 6692 6694 6696 6737 6830

# /sbin/fuser -u lkTEST

然后:

SQL> startup

ORACLE instance started.

Total System Global Area  599785472 bytes

Fixed Size                  2022600 bytes

Variable Size             171967288 bytes

Database Buffers          419430400 bytes

Redo Buffers                6365184 bytes

Database mounted.

Database opened.

SQL>

数据库成功OPEN.


/sbin/fuser -k lkTEST 与 /sbin/fuser -u lkTEST  一起使用

本机的文件是:lkORCL

转载于:http://blog.youkuaiyun.com/liang_love_java/article/details/12844925

<think>好的,我需要帮助用户解决在Linux环境下使用sqlplus连接Oracle数据库时遇到的ORA-12547错误。首先,我应该回顾一下用户提供的引用内容,看看有没有相关的线索。引用中提到这个错误可能与权限问题有关,例如libaio库的问题或者Oracle可执行文件的权限设置。 首先,我需要确认用户的环境。用户提到的是Linux Mint安装Oracle 12cR2时出现这个问题,以及DBCA报同样的错误。这说明问题可能出现在安装或配置过程中,而不仅仅是运行时的连接问题。不过用户现在的问题是在使用sqlplus连接时出现的,所以需要从连接的角度入手。 根据引用中的信息,权限问题是一个常见的因素。比如,Oracle的可执行文件(如sqlplus、oracle)需要有正确的执行权限,并且所属用户和组正确。例如,引用[1]提到通过strace定位到权限问题,并修改了$ORACLE_HOME/bin/oracle文件的权限为6751,解决了问题。这可能涉及到setuid和setgid的权限设置,确保Oracle进程能够正确运行。 其次,libaio库的问题也被提到。在引用[2]中,用户怀疑libaio有问题,但可能没有正确安装或配置。需要确认libaio是否已安装,并且是32位还是64位版本,这取决于Oracle的安装版本。 另外,环境变量是否正确设置也是一个关键点。比如ORACLE_HOME、PATH、LD_LIBRARY_PATH等是否指向正确的路径,避免路径错误导致程序无法找到必要的库或文件。 接下来,可能的解决方案步骤应该包括: 1. 检查Oracle相关文件的权限,特别是$ORACLE_HOME/bin/oracle文件,确保其权限设置为6751,所属用户和组正确。 2. 确认libaio库已正确安装,并且是适合系统架构的版本(如64位系统需要libaio1的64位版本)。 3. 检查环境变量是否正确配置,确保sqlplus能够找到所需的库和可执行文件。 4. 检查SELinux或AppArmor等安全模块是否阻止了Oracle进程的运行,必要时暂时禁用或配置策略。 5. 查看日志文件,如$ORACLE_HOME/install/make.log或alert日志,寻找更详细的错误信息。 此外,用户可能需要重新运行Oracle的安装脚本,如root.sh,以确保所有权限和配置正确应用。同时,如果问题出现在安装过程中,可能需要重新安装Oracle,并严格按照文档步骤操作,确保没有遗漏的依赖项或配置步骤。 在生成相关问题的时候,需要考虑用户可能进一步遇到的困难,比如如何检查文件权限,如何安装libaio,如何设置环境变量,或者如何处理SELinux的问题。因此,相关问题应该围绕这些可能的扩展点展开,帮助用户更全面地理解和解决问题。</think>### Linux环境下解决sqlplus ORA-12547错误的步骤 #### 1. **检查Oracle可执行文件权限** 确保`$ORACLE_HOME/bin/oracle`文件的权限正确,通常需设置为`6751`(包含`setuid`和`setgid`权限): ```bash chmod 6751 $ORACLE_HOME/bin/oracle ``` 同时确认文件所属用户和组为`oracle:oinstall`: ```bash chown oracle:oinstall $ORACLE_HOME/bin/oracle ``` 权限问题是最常见的ORA-12547原因[^1][^4]。 #### 2. **验证libaio库安装** Oracle依赖`libaio`库进行异步I/O操作,未安装或版本不匹配会导致此错误。 - 对于Ubuntu/Debian系统: ```bash sudo apt-get install libaio1 ``` - 对于CentOS/RHEL系统: ```bash sudo yum install libaio ``` 确保安装与系统架构一致的版本(如64位系统需`libaio1:amd64`)[^2]。 #### 3. **检查环境变量配置** 确认`ORACLE_HOME`、`PATH`和`LD_LIBRARY_PATH`已正确设置: ```bash export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` 可通过`echo $ORACLE_HOME`验证路径是否正确。 #### 4. **禁用SELinux/AppArmor** Linux安全模块可能阻止Oracle进程运行,临时禁用以排查问题: - **SELinux**: ```bash sudo setenforce 0 ``` - **AppArmor**: ```bash sudo systemctl stop apparmor ``` 若问题解决,需配置策略允许Oracle相关进程[^3]。 #### 5. **检查日志定位具体错误** - **安装日志**:查看`$ORACLE_HOME/install/make.log`中的编译错误。 - **数据库日志**:检查`$ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log`中的详细错误信息。 #### 6. **重新运行Oracle配置脚本** 以root用户执行`root.sh`修复权限问题: ```bash sudo $ORACLE_HOME/root.sh ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值