几个常见的LINUX下的ORACLE错误解决方法
uxwoldsh
|
1#
uxwoldsh 发表于 2008-02-02 00:20
几个常见的LINUX下的ORACLE错误解决方法
必要的硬件信息检查:
检查内容 最小值 检查命令参考 物理内存 512M # grep MemTotal /proc/meminfo 交换空间 max{1.0 GB,2倍内存} # grep SwapTotal /proc/meminfo /tmp 空间 400 MB # df -k /tmp 软件所需空间 2.5 GB # df -k 数据库文件 1.2 GB # df -k 前提:tds7.1(kernel: 2.4.21-16)操作系统选择[完全安装] 一、建用户组、用户脚本creuser.sh # For create the oracle user #!/bin/sh groupadd -g 600 dba groupadd -g 601 oinstall useradd -u 600 -g dba -G oinstall oracle -d /opt/oracle -p oracle 二、设置环境变量.bash_profile脚本如下(该脚本cp到$ORACLE_BASE目录下,并更改文件里的SID。执行以下命令: # chown –R oracle.dba /opt/oracle/ ): # .bash_profile # Use to set orale profile # /opt/oracle/.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then SOURCE ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME export ORACLE_BASE=/opt/oracle export ORACLE_SID=ORA10G #此参数应根据节点修改 export ORACLE_HOME=$ORACLE_BASE/product/ora10g export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH=$PATH:$ORACLE_HOME/bin:/sbin export LANG=en_US export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib export THREADS_FLAG=native umask 022 三、编辑/etc/sysctl.conf,在该文件末尾加入如下内容: kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效。 注意:核心参数配置可能需要根据实际环境进行适当的变动. 四、Trouble-Shooting 1、运行runInstaller,错误提示如下: Checking requirements... Checking operating system version: must be redhat-2.1,redhat-3,SuSE-9,SuSE-8,UnitedLinux-1.0 Failed<<<< 解决方法: 方法一: 在/etc下创建UnitedLinux-release文件 #cat > /etc/UnitedLinux-release << EOF >UnitedLinux 1.0 (i586) >VERSION=1.0 >EOF 然后就可以正常启动安装程序。注意不要使用vi编辑该文件,否则可能会引起ORA-12547: TNS: lost contact的错误。 方法二: 运行runInstaller -ignoreSysPrereqs,这样会跳过检查 方法三: 修改Oracle 的/.../disk1/install/linux/oraparam.ini这个参数文件 2、安装界面或者netca界面、dbca界面显示很多"口口"样子的乱码 解决办法:查看locale输出 # locale LANG=zh_CN.GB18030 LC_CTYPE=zh_CN.GB18030 LC_NUMERIC="zh_CN.GB18030" LC_TIME="zh_CN.GB18030" LC_COLLATE="zh_CN.GB18030" LC_MONETARY="zh_CN.GB18030" LC_MESSAGES="zh_CN.GB18030" LC_PAPER="zh_CN.GB18030" LC_NAME="zh_CN.GB18030" LC_ADDRESS="zh_CN.GB18030" LC_TELEPHONE="zh_CN.GB18030" LC_MEASUREMENT="zh_CN.GB18030" LC_IDENTIFICATION="zh_CN.GB18030" LC_ALL= 执行#export LANG=en_US 然后重新调用安装程序. 3、Oracle10g自动检查操作系统是否符合安装的条件。当按照上面的脚本对系统进行配置后,会有警告提示。[Retry]会看到如下提示: Checking for openmotif-2.1.30-11; found Not found. Failed <<<< Check complete. The overall result of this check is: Failed <<<< Problem: Some recommended packages are missing (see above) 下载并安装openmotif-2.1.30-11软件包后,通过验证。 备注:有oracle文档说明:对于在RHELAS3上安装oracle10g,需要openmotif-2.2.2-16或更高版本; 但下载openmotif-2.2.2-16.src.rpm,在机器上编译安装,oracle自动检查仍然有警告提示。 4、安装程序在进行到74%的时,按照提示用root身份运行$ORACLE_HOME/root.sh,出现以下错误: ./root.sh: line 227: /var/opt/oracle/srvConfig.loc: 没有那个文件或目录 ./root.sh: line 228: /var/opt/oracle/srvConfig.loc: 没有那个文件或目录 /bin/chown: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录 /bin/chgrp: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录 /bin/chmod: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录 Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. OCR create keys failed, OCR error 26 Failed to initialize Oracle Cluster Registry for cluster 解决方法: # mkdir /var/opt/oracle # chown -R oracle.dba /var/opt/oracle # ./root.sh 5、 数据库启动: $sqlplus /nolog SQL>connect / as sysdba SQL>startup ORA-00371: not enougsh shared pool memory, should be atleast 52132659 bytes. 解决方法: 这个错误并非是内核参数设置的问题,也和系统的物理内存大小无关。编辑$ORACLE_HOME/dbs/init$GID.ora文件: shared_pool_size = 52132659 6、 数据库启动: $sqlplus /nolog SQL>connect / as sysdba SQL>startup ora-01102: cannot mount database in EXCLUSIVE mode 解决方法: 完全关闭数据库,更改$ORACLE_HOME/dbs/init.ora文件里的db_name为建库时定义的“全局数据库名”,然后再重新启动数据库 7、 数据库启动: $sqlplus /nolog SQL>connect / as sysdba SQL>startup ora-00205:error in identifying conrolfile, check alert log for more info 解决方法: SQL>show parameter control_files SQL>CREATE CONTROLFILE 将$ORACLE_BASE/admin/$GID/pfile/init$SID.ora***************拷贝到$ORACLE_HOME/dbs下,命名为init$SID.ora,即可解决。 8、数据库启动: $sqlplus /nolog SQL>connect / as sysdba SQL>startup ORA-01990:error opening password file '$ORACLE_NAME/dbs/orapw' ORA-27037:unable to obtain file status Linux Error:2: No such file or directory Additional information: 3 解决方法: 将$ORACLE_HOME/dbs下的orapw$db_name文件拷贝生成一个orapw文件。 8、建库的过程中或者连接数据库的时候提示: ORA-12547: TNS: lost contact 引起该错误的环境比较复杂,原因可能是: 1、用vi编辑的/etc/UnitedLinux-release文件 2、内核参数设置不正确 3、察看一下listener是否正常启动: lsnrct1 status 4、机器负载过大 |