第2部分 针对oracle配置linux
oracle 对系统硬件配置的一些要求。
内存 > 512MB swap > 1GB oracle软件 > 2.5GB 数据文件 > 1.2GB /tmp > 400MB创建oracle用户和组
/usr/sbin/groupadd dba /usr/sbin/useradd -m -g oinstall -G dba oracle id oracle要记得为oracle用户设置密码。
创建oracle的安装目录,要注意前面对分区的大小要求。mkdir -p /u02/oradata chown -R oracle:oinstall /u01/app/oracle /u02/oradata chmod -R 775 /u01/app/oracle /u02/oradata配置linux内核参数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 EOF /sbin/sysctl -p为 oracle 用户设置 Shell 限制。oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 EOF cat >> /etc/pam.d/login <> /etc/profile < > /etc/csh.login < 设置oracle 用户的环境变量。通过修改 .bash_profile 来完成。 ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_SID=demo1; export ORACLE_SID其他的变量等安装完了再设置。 第3部分 安装 Oracle 使用一个修改好的rsp文件,然后执行下面的命令。然后就等着吧,看那些log或者看屏幕输出都可以看到安装进度。 第4部分 可能会遇到的问题 下面这些是从网上找到的,我用到的就是第1和9条,还没有遇到其他问题。 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、机器负载过大 9、 emca 的web界面的乱码 http://www.eygle.com/archives/2006/03/oracle10g_em_font_change.html 一直没怎么用10g的EM工具,今天打开来看看,发现也有相传已久的乱码问题.网上也流传着N种解决方案,仔细看一下,其实这个问题很好解决. 如果安装时,我们系统环境变量设置的是中文环境,那么就不会有这个问题.这个问题根本原因在于安装时,JDK/JRE字符集的自动选择. 在 $ORACLE_HOME/jdk/jre/lib 和 $ORACLE_HOME/jre/1.4.2/lib/ 目录下都有多种字符集字体配置文件: [oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib [oracle@danaly lib]$ ls font*zh_CN* font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1 font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun [oracle@danaly lib]$ cd $ORACLE_HOME/jre/1.4.2/lib/ [oracle@danaly lib]$ ls font*zh_CN* font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1 font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun 我们只要用合适的中文字符集文件替换缺省文件即可,我选择使用font.properties.zh_CN.Redhat来替换缺省字体定义文件: [oracle@danaly lib]$ cp font.properties.zh_CN.Redhat font.properties 替换之后需要清理一下Cache,重启EM即可. Cache路径通常位于: $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs 清除所有gif文件即可.然后重新启动EM: [oracle@danaly zhs]$ emctl stop dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://danaly.hurrray.com.cn:1158/em/console/aboutApplication Stopping Oracle Enterprise Manager 10g Database Control ... ... Stopped. [oracle@danaly zhs]$ emctl start dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://danaly.hurrray.com.cn:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 10g Database Control .............. started. ------------------------------------------------------------------ Logs are generated in directory /opt/oracle/product/10.2.0/danaly.hurrray.com.cn_danaly/sysman/log 现在登陆Web页面,EM显示就可以正常显示中文了. 参考文章: 这里