在非oracle10g所认可的linux发行版上安装oracle
compat
|
1#
compat 发表于 2008-01-16 11:06
在非oracle10g所认可的linux发行版上安装oracle
作者:瞌睡虫
近日,在笔记本上安装了一个Red Hat Linux,安装过程很顺利,随后打算安装一个oracle数据库,原本以为很简单,谁知一装才知道这个安装里面学问大了,到处在网上找帖子,查问题,足足花了两天时间才完全装好,特将相关的帖子收集整理一下,在加上自己安装中的一些体会,编辑成文以备后查。 安装环境: OS:Red Hat Linux release 9 (Shrike) 数据库:oracle10.2.0.1 for linux32 1、首先,必要的硬件信息检查(摘抄网上资料): 检查内容 最小值 检查命令参考 物理内存 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 注:个人理解,除了最后两项为安装中硬性要求外,其他几项均可以适当放宽限制,并不影响安装进程; 2、建用户组、用户脚本 使用root用户登录 # groupadd oracle # useradd -g oracle -d /oracle -m oracle # passwd oracle 注:值得一提的是最后一条命令,通过useradd命令所建立的用户,没有指定密码(即便运行useradd时使用了-p参数),无法进行登录,故需用passwd进行指定密码,这 是经历多次失败尝试后的经验; 3.设置oracle环境变量 $ vi $ORACLE_BASE/.bash_profile ---在原有内容后面添加如下设置 export DISPALY="localhost:0.0" #此句尤为重要,直接影响后续安装进程,其中localhost可以使用IP或主机名替代 export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle export ORACLE_SID=orclx #此参数应根据安装节点进行修改 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 TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH=$PATH:$ORACLE_HOME/bin:/sbin export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" #此句设置oracle字符集 ,影响到安装后字符显示问题 umask 022 4.修改核心参数(编辑/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 命令操作来使我们所做的变更生效。 注意:核心参数配置可能需要根据实际环境进行适当的变动. 5.检查linux 的安装组件(在安装oracle期间,需要使用到GCC组件包,故须检查是否安装完整) 直接在linux图形界面中,选择主菜单->系统设置->添加/删除应用程序,选中"开发"部分的"开发工具",然后默认"更新"即可。 注:安装这部分程序需用到linux9的第二张光盘(这部分程序是linux9默认安装未包含的)。 如果没有安装这部分,在后面的oracle安装过程中,将出现一系列的调用错误。 另外,还需检查libaio的安装:在linux9的第二张光盘中有 ls -l libaio*.rpm rpm - i libaio*.rpm 6.接下来,开始安装oracle 运行runInstaller,错误提示如下: Checking requirements... Checking operating system version: must be redhat-2.1,redhat-3,SuSE-9,SuSE-8,UnitedLinux-1.0 Failed<<<< 这是因为oracle10g所认可的linux发行套件没有包括linux9,所以需要降低linux核心 流行的解决方法有三种: 方法一: 在/etc下创建UnitedLinux-release文件 #cat > /etc/UnitedLinux-release << EOF >UnitedLinux 1.0 (i586) >VERSION=1.0 >EOF 然后就可以正常启动安装程序。注意不要使用vi编辑该文件,否则可能会引起ORA-12547: TNS: lost contact的错误。 方法二: 运行runInstaller -ignoreSysPrereqs,这样会跳过检查(呵呵,相信百分之99.9999999的人都会选择这种方法) 方法三: 修改Oracle 的/.../disk1/install/linux/oraparam.ini这个参数文件 7.如果接下来,安装遇到如下错误: Xlib: connection to "localhost:0.0" refused by server Xlib: No protocol specified 呵呵,你的oracle用户没有X window权限,解决办法: 使用root用户登录(必要时重新启动os),然后输入: # xhost +localhost 如果x window设置成功,可以用oracle用户登录后,输入: $ xclock 是不是看到一个小闹钟,呵呵,恭喜你又解决一个问题! 8.当程序进行到,创建数据库时,建议先不要创建,等安装完系统后,通过dbca命令来创建,不要问我为什么,反正这样子会顺利不少。 否则下面这些问题,不幸的话,可能你都会遇到: 数据库启动: $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 数据库启动: $sqlplus /nolog SQL>connect / as sysdba SQL>startup ora-01102: cannot mount database in EXCLUSIVE mode 解决方法: 完全关闭数据库,更改$ORACLE_HOME/dbs/init.ora文件里的db_name为建库时定义的“全局数据库名”,然后再重新启动数据库 数据库启动: $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,即可解决。 数据库启动: $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文件。 建库的过程中或者连接数据库的时候提示: ORA-12547: TNS: lost contact 引起该错误的环境比较复杂,原因可能是: 1、用vi编辑的/etc/UnitedLinux-release文件 2、内核参数设置不正确 3、察看一下listener是否正常启动: lsnrct1 status 4、机器负载过大 9、系统安装完毕,在oracle用户下,打开终端,运行dbca命令,后有一个向导出现,你可以按照提示创建数据库,至此安装大功告成! |