CentOS6.4安装oracle 10g教程

##一、硬件要求
1、内存 & swap
Minimum: 1 GB of RAM
Recommended: 2 GB of RAM or more
硬件要求

检查内存情况

1
2
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo

2、硬盘
由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。
检查磁盘情况

1
df -h

df-h

##二、软件
系统平台:CentOS 6.3(x86_64)
CentOS-6.3-x86_64-bin-DVD1.iso
Oracle版本:Oracle 10g R2
10201_database_linux_x86_64.cpio

##三、系统安装注意
系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,CentOS 的防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。
本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

##四、安装Oracle前的系统准备工作
首先,请先以root账号登入作一些前置设定作业。
1、关闭防火墙、禁用SELinux
setup
setup

vi /etc/selinux/config
修改SELINUX=disabled,然后重启。
如果不想重启系统,使用命令setenforce 0
setenforce

2、安装依赖包
Oracle官方文档要求的安装包:
oracle安装依赖包

查看Oracle相关包是否已经安装:
oracle相关包

用yum方式安装所需的包:

1
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

yum

最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。

1
yum install libXp

libXp

3、创建Oracle用户与组
在这里只讨论单主机环境,不考虑RAC环境的配置。
执行以下指令以新增oracle安装时所需要的使用者与群组。
(1) 建立群组oinstall

1
groupadd oinstall

(2) 建立群组dba

1
groupadd dba

(3) 新增使用者oracle并将其加入oinstall和dba群组

1
useradd -m -g oinstall -G dba oracle

(4) 测试oracle账号是否建立完成

1
id oracle

(5) 建立oracle的新密码

1
passwd oracle

passwd

(6) 建立oracle安装目录

1
2
3
mkdir -p /home/app/oracle
chown -R oracle:oinstall /home/app/oracle
chmod -R 775 /home/app/oracle

4、将oracle使用者加入到sudo群组中
vi /etc/sudoers
找到

1
root        ALL=(ALL)        ALL

这行,并且在底下再加入

1
oracle        ALL=(ALL)        ALL

输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter
sudo

5、配置系统内核参数
vi /etc/sysctl.conf
修改和添加以下内容:

1
2
3
4
5
6
7
8
9
kernel.shmall = 4294967296                           //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改
kernel.shmmax = 68719476736                      //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G
kernel.shmmni = 4096                                    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128                    //表示设置的信号量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304                     //默认的接收窗口大小
net.core.rmem_max=4194304                        //接收窗口的最大大小
net.core.wmem_default=262144                      //默认的发送窗口大小
net.core.wmem_max=262144                         //发送窗口的最大大小

会有一些与目前的参数重复的,就修改成文件上提供的。
sysctl

编辑完之后,储存,然后执行:

1
sysctl –p

启用刚刚所做的变更。
sysctl-p

6、编辑/etc/security/limits.conf
vi /etc/security/limits.conf
添加以下四行

1
2
3
4
oracle  soft        nproc   2047
oracle  hard        nproc   16384
oracle  soft        nofile  1024
oracle  hard        nofile  65536

limits

7、编辑/etc/pam.d/login
vi /etc/pam.d/login
添加以下两行

1
2
session required /lib64/security/pam_limits.so
session required pam_limits.so

login

8、修改/etc/profile
vi /etc/profile
将以下代码新增到profile档案中。

1
2
3
4
5
6
7
8
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

profile

9、修改Linux发行版本信息
由于Oracle 10g发行的时候,CentOS 6没有发行,所以Oracle 10g并没有对CentOS 6确认支持,需要修改文件让Oracle 10g支持CentOS 6。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6。
编辑/etc/redhat-release文件
vi /etc/redhat-release
将其中的内容CentOS release 6.3 (Final)修改为redhat 4
redhat-release

10、创建Oracle安装文件夹以及数据存放文件夹

1
2
3
mkdir /opt/oracle
mkdir /opt/oracle/102
chown -R oracle:dba /opt/oracle

mkdir

11、配置Linux主机
检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。
配置linux主机
第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

1
2
cd /home/oracle
vi .bash_profile

修改并加入以下內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=pltest02
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH32=$ORACLE_HOME/lib32
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/jre
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export

保存后使用如下命令,使设置生效:

1
source /home/oracle/.bash_profile

##五、安装Oracle,并进行相关设置
1、解压缩安装文件
将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle
回到终端模式并且进入到oracle文件夹:

1
cd /opt/oracle

解压缩10201_database_linux_x86_64.cpio

1
cpio -idmv < 10201_database_linux_x86_64.cpio

接着会看到一连串的解压缩动作。
解压缩

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

1
cd database

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

1
export LANG=en_US

接着执行

1
./runInstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:

1
2
3
export DISPLAY=:0.0 
xhost + 
./runInstaller

runInstatller

遇到错误:Exception in …… /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
exception-in

解决:
yum -y install libXp.i686
分析:看报错信息”/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory”,libXp需要安装i386的包,而不能安装X64的包。上面认为64位的linux需要安装64位的libXp包,所以导致这个问题。
再次执行

1
$ ./runInstaller

遇到错误:Exception in …… /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
exception-in

解决:
yum -y install libXt.i686
再次执行

1
$ ./runInstaller

遇到错误:Exception in …… /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
exception-in

解决:
yum -y install libXtst.i686
再次执行

1
$ ./runInstaller

开始执行安装程序。
安装

由于相关的前置作业已经在之前做好了,在这个步骤只需要将UNIX DBA Group选择为dba以及输入SYS, SYSTEM等账号共享的database Password即可。然后选择Next即可。
安装

同样的,将群组选择为dba群组,按Next
在这个步骤中,请点选Checking Network Configuration requirements为User Verified,接着按下Next
安装

最后出现Install Summary画面,此时只要按下Install按钮,系统即开始安装。
安装

安装过程…
安装

安装进度大约到65%时会有错误提示:
Error in invoking target ‘collector’ of makefile ‘/opt/oracle/102/sysman/lib/ins_emdb.mk’.
安装

同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:
安装

这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。
在Configuration Assistants 时会出现错误提示:
OUI-25031:Some of the configuration assistants failed.
安装

分析:主机名映射错误
解决:修改/etc/hosts文件,增加IP地址与主机名的映射如下:
安装

接着会遇到错误提示:
ORA-27125:unable to create shared memory segment
安装

解决:

  1. 确定安装oracle所使用的用户组
    1
    id oracle

可以看到oracle组dba id 为501。

  1. 修改内核参数
    1
    echo "501" >/proc/sys/vm/hugetlb_shm_group

就可以了。
安装

安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。
安装

安装完成前,出现以下的设置脚本:
安装

开启一个新的终端,su到root。
将要求执行的两段script依序执行。
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/102/root.sh
安装

执行画面如上图。
执行完后,回到安装窗口按下OK完成所有的oracle安装。安装完成会出现以下画面。安装
安装

此时,您可以以上述网址,作为测试,登入账号可以为sys或system
http://CentOS-Oracle:5560/isqlplus
http://CentOS-Oracle:5560/isqlplus/dba
http://CentOS-Oracle:1158/em
安装

以上画面都成功代表oracle已经正常安装了。

script>