Linux DBCA 报错ORA-00119 ORA-00130

错误来源:

将一个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.csdn.net/liang_love_java/article/details/12844925

你可能感兴趣的:(Linux DBCA 报错ORA-00119 ORA-00130)