关于CentOS_5.5(64)安装oracle 10g的思考和操作

229 阅读5分钟

CentOS_5.5(64)安装oracle 10g

CentOS_6.0(32)安装oracle 10g

                      (2020年11月17日最新修改)

安装操作系统时,使用立即定制里的默认安装包。禁用防火墙、禁用SELINUX。

Oracle安装目录为 /oracle/oracle10g如果本文有此目录,则实际安装过程中需要按照需求改变此目录

 

在root用户做以下操作

1、修改/etc/redhat_realease,将内容改为如下:

Red Hat Enterprise Linux Server release 4 (Tikanga)

#CentOS release 5.5 (Final)

 

 

 

2、修改/etc/hosts,将内容改为如下:

Do not remove the following line, or various programs

that require network functionality will fail.

主机IP      主机名 (务必和真实主机名一致)     localhost

127.0.0.1           localhost.localdomain   localhost

::1             localhost6.localdomain6 localhost6

 

3、依次安装下面的包(使用DVD安装光盘,CD光盘的安装包不在一张光盘)

32位系统(CentoOS6.0上验证成功)

libXp-1.0.0-8.i386.rpm

openmotif22-2.2.3-18.i386.rpm

compat-db-4.2.52-5.1.i386.rpm

compat-db42.i686 0:4.2.52-15.el6

compat-db43.i686 0:4.3.29-15.el6

kernel-headers-2.6.18-92.el5.i386.rpm

glibc-headers-2.5-24.i386.rpm

compat-gcc-34-3.4.6-4.i386.rpm

compat-gcc-34-c++-3.4.6-4.i386.rpm

compat-libstdc++-33-3.2.3-61.i386.rpm

libaio-0.3.106-3.2.i386.rpm

libgomp-4.1.2-42.el5.i386.rpm

gcc-4.1.2-42.el5.i386.rpm

gcc-c++-4.1.2-48.el5 

binutils-2.15.92.0.2-22

 

(64位centOS系统要如下包)(已验证)(注意除了64位还要安装一些32位rpm包)

安装下面这些包之前可能需要先导入key

 rpm --import ftp.sjtu.edu.cn/centos/5/os…(需要联网)

 

也可以使用rpm命令将安装光盘上附带的RPM-GPG-KEY-CentOS-5

libXp-1.0.0-8.i386.rpm

libXt-1.0.2(i386)

libXtst-1.0.1(i386)

openmotif22-2.2.3-18.i386.rpm****

binutils-2.15.92.0.2-22  (x86_64)
qqe;yc"RQ~#h0compat-db-4.1.25-9  (i386)ITPUB
个人空间 T@-m,X_P***
compat-db-4.1.25-9  (x86_64)**

compat-libstdc++-33-3.2.3-47.3.i386.rpm

compat-libstdc++-33.x86_64

compat-libstdc++-296.i686
control-center-2.8.0-12.rhel4.5  (x86_64)

kernel-headers-2.6.18-194.el5.x86_64.rpm

glibc-headers-2.5-49.x86_64.rpm
glibc-common-2.3.4-2.36  (x86_64)ITPUB
个人空间 (YZ ws6|U-dThd**
glibc-devel-2.3.4-2.36  (x86_64)ITPUB** 个人空间 #F0E%Rl9HN8J+@~h.|****
glibc-devel-2.3.4-2.36  (i386)

&~:gZQ'n!v-o0D0 glibc-2.3.4-2.36  (i686)
Aa3{5E-l#w(n0glibc-2.3.4-2.36  (x86_64)ITPUB
个人空间 8J5C^|)RB**
-p^#I&Z~q5tP0libstdc++3.4.68 (i386) /p2MHf8 D5LQA0libstdc++3.4.68 (x8664) libstdc++devel4.1.248.el5.x8664.rpmITPUB个人空间oFwygq5tP0libstdc++-3.4.6-8  (i386)\ /p2MHf8~ D5LQA0libstdc++-3.4.6-8  (x86_64)\ libstdc++-devel-4.1.2-48.el5.x86_64.rpmITPUB** **个人空间** **oFwyg-|?7A**
make-3.81-3.el5.x86_64.rpmITPUB****个人空间 5BQ‑S7_"X I W[a-r
pdksh-5.2.14-36.el5.x86_64.rpm yum 找不到这个包,需要自己下载)****
sysstat-7.0.2-3.el5.x86_64.rpm

libaio-0.3.105-2  (i386)

libgomp-4.1.2-42.el5.i386.rpm****

gcc-4.1.2-48.el5  (x86_64)

gcc-c++-4.1.2-48.el5  (x86_64)

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

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

配置完成后,执行如下命令使设置生效

sysctl –p

 

 

5修改/etc/security/limits.conf文件,在结尾处添加如下内容:

*    Soft           nproc   2047

*    hard           nproc   16384

*    soft            nofile   1024

*    hard           nofile   65536

 

6、修改/etc/pam.d/login文件,在结尾处添加如下内容:

session required     /lib/security/pam_limits.so

session required     pam_limits.so

7、新增组和用户

groupadd oinstall

groupadd dba

groupadd oper

useradd -g oinstall -G dba oracle

passwd oracle

(设置密码) 8、解压oracle安装文件

oracle的安装包有这样几种格式:
(1) zip
这种格式最好解压缩,直接使用命令unzip 文件名即可
(2) cpio.gz
这种格式有这样几种解压缩方式
a.  # zcat XXXX.cpio.gz | cpio -idmv 
b.  # gunzip XXXX.cpio.gz解压出XXXX.cpio文件然后   再 # cpio -idvm < XXXX.cpio
\

创建oracle目录,并授权

 mkdir -p /oracle/oracle10g/product/10.2.0/db_1

移动oracle数据库的安装文件到/oracle/oracle10g/database目录中。

mv  /oracle/database  /oracle/oracle10g

chown -R oracle.oinstall /oracle/oracle10g

chmod -R 755 /oracle/oracle10g

 

 

在oracle用户下操作

9、编辑/home/oracle/.bash_profile文件(此处为oracle用户的环境变量),在结尾添加以下内容:

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/oracle/oracle10g; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME

ORACLE_SID=orcl; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=PATH:PATH:ORACLE_HOME/bin ; export PATH

umask 022

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

 

“orcl”是下步需要创建的实例名。

保存后使用如下命令,使设置生效:
$ source ~/.bash_profile

 

在root用户下操作

10、编辑/etc/profile文件,在结尾添加以下内容:

if [ $USER = "oracle" ]; then

  if [ $SHELL = "/bin/ksh" ]; then

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

 

 

11、为了让任何用户在任何桌面环境下启动X,执行如下命令

export  DISPLAY=:0.0

xhost +

 

 

 

在oracle用户下操作(需安装oracle服务器的本地图形化界面)

12、安装oracle

$ cd  /oracle/oracle10g/database

$ source ~/.bash_profile

$ export LANG="en_US.UTF-8"

$ ./runInstaller
\

出现安装界面后,根据界面提示进行相关的设置:

(由于截图是原来的图,实际路径应该是

/oracle/oracle10g/product/10.2.0/db_1),否则返回检查环境变量设置,并从第11步重新开始。

把安装目录改为刚才创建的oracle目录。

DBA用户组选择创建的oinsatll

需要使用root用户权限执行两个脚本。

/oracle/oracle10g/oralnventory/orainstRoot.sh

/oracle/oracle10g/product/10.2.0/db_1/root.sh

安装结束 安装过程错误:

 错误情况一

这种错误,一般情况下是安装oracle的依赖包不完全导致的错误。

查询metalink发现对于glibc-devel需要32位的包,详细信息参考metalink文档ID 786995.1

解决方案,强制安装glibc-devel-2.5-42.i386.rpm 这个包,如果产生其他依赖包,则依次强制安装,直到成功为止。****

 

 错误情况二

oss.oracle.com/projects/co…

 

错误情况三

安装到62%时报下面的错误:

Error in invoking target 'all_no_orcl ihsodbc' of makefile '/oracle/product/10g/rdbms/lib/ins_

rdbms.mk'.See '/oracle/oraInventory/logs/installActions2009-12-01_11-55-10AM.log' for details.

缺少以下包:

compat-libstdc++-33-3.2.3-47.3.i386.rpm

错误情况四:出现ins_emdb.mk错误,可以直接跳过

错误情况五:

ora-27125 unable to create shared memory segment

它影响全局数据库的创建。

解决上述错误的办法是:

cd ORACLE_HOME/bin\ mv oracle oracle.bin\ cat >oracle <<"EOF"\ #!/bin/bash\ export DISABLE_HUGETLBFS=1\ exec ORACLE_HOME/bin/oracle.bin $@
EOF
chmod +x oracle

 

在root用户下操作

18、编辑/etc/redhat-release,把文件内容改为:

CentOS release 5.5 (Final)

 

 

19、编辑/etc/oratab文件,把最后一行包含  instance 的重启动标志设置成 'Y'。

如:orcl:/oracle/oracle10g/product/10.2.0/db_1:Y

 

 

20、创建并编辑/etc/init.d/dbora文件,添加如下内容(注意要拷贝完整):

#!/bin/sh

description: Oracle auto start-stop script.

chkconfig: 345 99 10

Set ORA_HOME to be equivalent to the $ORACLE_HOME

from which you wish to execute dbstart and dbshut;

Set ORA_OWNER to the user id of the owner of the

Oracle database in ORA_HOME.

ORA_HOME=/oracle/oracle10g/product/10.2.0/db_1

ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]

then

    echo "Oracle startup: cannot start"

    exit

fi

case "$1" in

    'start')

        # Start the Oracle databases:

        # The following command assumes that the oracle login

        # will not prompt the user for any values

        su - ORAOWNERcORA_OWNER -c ORA_HOME/bin/dbstart

        su - ORAOWNERc"ORA_OWNER -c "ORA_HOME/bin/lsnrctl start"

su - ORAOWNERc"ORA_OWNER -c "ORA_HOME/bin/emctl start dbconsole"

        ;;

    'stop')

        # Stop the Oracle databases:

        # The following command assumes that the oracle login

        # will not prompt the user for any values

su - ORAOWNERc"ORA_OWNER -c "ORA_HOME/bin/emctl stop dbconsole"

        su - ORAOWNERc"ORA_OWNER -c "ORA_HOME/bin/lsnrctl stop"

        su - ORAOWNERcORA_OWNER -c ORA_HOME/bin/dbshut

        ;;

    'restart')

        $0 stop

        $0 start

        ;;

esac

 

 

21、更改权限

chgrp dba /etc/init.d/dbora

chmod 750 /etc/init.d/dbora

 

23、指定哪些系统运行级别需要运行oracle数据库设置开机自启动

 

chkconfig --add dbora

chkconfig --list dbora

chkconfig --list dbora运行结果:

dbora 0:off 1:off 2:off 3:on 4:on 5:on 6:off

检查:

根据上面的运行结果,当相应的运行级别为on时(例如:5:on),在对应的/etc/rc.d/rcN.d(例如:和5:on对应的是:/etc/rc.d/rc5.d)下面会生成一个文件:S99dbora,使用vi S99dbora打开该文件,可以看到该文件的内容和/etc/rc.d/init.d/dbora内容相同,表示配置成功,其实,S99dbora是一个到/etc/rc.d/init.d/dbora的链接,我们可以使用file命令来查看:

$file /etc/rc.d/rc5.d/S99dbora

S99dbora:symbolic link to '../init.d/dbora

一点说明:

脚本文件中的:# chkconfig: 345 99 10

指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oradbstart,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)K10oradbstart。

 

24、一般不用这步,如果oracle数据库还是不能随操作系统一起启动,可编辑/etc/rc.local文件,在结尾添加如下内容:

/etc/rc.d/init.d/dbora start

 

25.改监听文件

Oracle用户下

vim /oracle/oracle10g/product/10.2.0/db_1/bin/dbstart

找到ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
将该行改为export ORACLE_HOME_LISTNER=$ORACLE_HOME
\

然后重启系统 su - oracle

用lsnrctl或者sqlplus查看能否正常进入监听或者数据库

 

26、在oracle客户端,添加此数据库实例。在DOS窗口执行netca,或在程序目录中找。

 

 

27、使用pl/sql创建表空间,执行如下命令,注意'/oracle/oracle10g/oradata/orcl/QAZDB',按照每台服务器实际安装实例的目录。(整段复制过去)

CREATE SMALLFILE TABLESPACE "QAZDB" DATAFILE '/oracle/oracle10g/oradata/orcl/QAZDB' SIZE 400M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;