错误来源:
将一个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))
[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
网上的解决方案是:
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