CentOS 6.4 x86_64 安装Oracle11gR2(带图)

时间:2021-05-14 07:47:11

在Linux下安装Oracle数据库十分繁琐,前段时间本人在空闲时间进行了一次尝试,使用Oracle VirtualBox安装CentOS 6.4 64位系统,并在其底下安装Oracle11gR2,安装期间碰到了一些问题,也在网上查找了很多资料,经过2天的努力,成功完成了安装。现将我在安装时记录的详细步骤(带图)分享给大家,希望可以对大家有所帮助,步骤如下:

一、安装Oracle11g R2 database 前系统环境准备
1、查看系统版本、内核版本、操作系统位数,内存及交换分区大小、文件系统空间、主机名、IP地址等
[root@localhost101 ~]# cat /etc/redhat-release  #系统版本
CentOS release 6.4 (Final)

[root@localhost101 ~]# uname -a #内核版本

Linux localhost101 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost101 ~]# getconf LONG_BIT #操作系统位数

64

[root@localhost101 ~]# free -m #查看内存及交换分区大小,官方要求内存至少1G,建议2G以上;此处内存为1203M

             total       used       free     shared    buffers     cached

Mem:          2006        968       1037          0         42        417

-/+ buffers/cache:        509       1497

Swap:         3071          0       3071 

#交换分区大小,官方要求为内存的1.5倍以上。内存大小为2-16G时,交换分区空间等于内存大小;超过16G内存,交换分区只设置为16G

[root@localhost101 ~]# df -hT /tmp # 查看/tmp分区空间,官方要求至少1G

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda2     ext4    123G  5.8G  111G   5% /

[root@localhost101 ~]# hostname #主机名,主机名可通过修改/etc/hosts和/etc/sysconfig/network进行修改

localhost101

2、关闭防火墙、禁用SELinux

[root@localhost101 ~]# service iptables stop

[root@localhost101 ~]# chkconfig iptables off

[root@localhost101 ~]# vi /etc/selinux/config  #将SELINUX=disabled

#对于关闭系统防火墙这个操作,我在安装的过程中是没有禁用的,安装完后,加了iptables端口放行后,重启iptables,就可以正常使用了,也没有遇到有些帖子中提到的动态端口的问题。 所以这个步骤也可以不做,当遇到问题时可临时关闭以便排除问题。

3、确认以下包全部安装

[root@localhost101 ~]# rpm -q binutils

binutils-2.20.51.0.2-5.36.el6.x86_64

[root@localhost101 ~]# rpm -q gcc

gcc-4.4.7-3.el6.x86_64

[root@localhost101 ~]# rpm -q gcc-c++

gcc-c++-4.4.7-3.el6.x86_64

[root@localhost101 ~]# rpm -q glibc

glibc-2.12-1.107.el6.x86_64

[root@localhost101 ~]# rpm -q glibc-devel

glibc-devel-2.12-1.107.el6.x86_64

[root@localhost101 ~]# rpm -q libgcc

libgcc-4.4.7-3.el6.x86_64

[root@localhost101 ~]# rpm -q libstdc++

libstdc++-4.4.7-3.el6.x86_64

[root@localhost101 ~]# rpm -q libstdc++-devel

libstdc++-devel-4.4.7-3.el6.x86_64

[root@localhost101 ~]# rpm -q libaio

libaio-0.3.107-10.el6.x86_64

[root@localhost101 ~]# rpm -q make

make-3.81-20.el6.x86_64

[root@localhost101 ~]# rpm -q sysstat

sysstat-9.0.4-20.el6.x86_64


#32位包依赖安装

[root@localhost101 rpm]# rpm -ivh nss-softokn-freebl-3.12.9-11.el6.i686.rpm glibc-2.12-1.107.el6.i686.rpm

[root@localhost101 rpm]# rpm -ivh libtool-ltdl-2.2.6-15.5.el6.i686.rpm ncurses-libs-5.7-3.20090208.el6.i686.rpm readline-6.0-4.el6.i686.rpm unixODBC-2.2.14-12.el6_3.i686.rpm


#所有rpm包安装完成后的验证

[root@localhost101 rpm]# rpm -q binutils

binutils-2.20.51.0.2-5.36.el6.x86_64

[root@localhost101 rpm]# rpm -q compat-libcap1

compat-libcap1-1.10-1.x86_64

[root@localhost101 rpm]# rpm -q compat-libstdc++

package compat-libstdc++ is not installed

[root@localhost101 rpm]# rpm -q compat-libstdc++-33

compat-libstdc++-33-3.2.3-69.el6.x86_64

compat-libstdc++-33-3.2.3-69.el6.i686

[root@localhost101 rpm]# rpm -q gcc

gcc-4.4.7-3.el6.x86_64

[root@localhost101 rpm]# rpm -q gcc-c++

gcc-c++-4.4.7-3.el6.x86_64

[root@localhost101 rpm]# rpm -q glibc

glibc-2.12-1.107.el6.x86_64

glibc-2.12-1.107.el6.i686

[root@localhost101 rpm]# rpm -q glibc-devel

glibc-devel-2.12-1.107.el6.x86_64

glibc-devel-2.12-1.107.el6.i686

[root@localhost101 rpm]# rpm -q ksh

ksh-20100621-19.el6.x86_64

[root@localhost101 rpm]# rpm -q libgcc

libgcc-4.4.7-3.el6.x86_64

libgcc-4.4.7-3.el6.i686

[root@localhost101 rpm]# rpm -q libstdc++

libstdc++-4.4.7-3.el6.x86_64

libstdc++-4.4.7-3.el6.i686

[root@localhost101 rpm]# rpm -q libstdc++-devel

libstdc++-devel-4.4.7-3.el6.x86_64

libstdc++-devel-4.4.7-3.el6.i686

[root@localhost101 rpm]# rpm -q libaio

libaio-0.3.107-10.el6.x86_64

libaio-0.3.107-10.el6.i686

[root@localhost101 rpm]# rpm -q libaio-devel

libaio-devel-0.3.107-10.el6.i686

libaio-devel-0.3.107-10.el6.x86_64

[root@localhost101 rpm]# rpm -q make

make-3.81-20.el6.x86_64

[root@localhost101 rpm]# rpm -q sysstat

sysstat-9.0.4-20.el6.x86_64

[root@localhost101 rpm]# rpm -q unixODBC

unixODBC-2.2.14-12.el6_3.i686

unixODBC-2.2.14-12.el6_3.x86_64

[root@localhost101 rpm]# rpm -q unixODBC-devel

unixODBC-devel-2.2.14-12.el6_3.i686

unixODBC-devel-2.2.14-12.el6_3.x86_64

#上面的列表中有些问题还是比较奇怪的,64位系统下安装了一些32位的包如果你直接去光盘上找,可能有些是找不到的,可以通过访问下列网址查找:

http://pkgs.org/

4、创建安装数据库时所需要使用的用户组dba、oinstalloracle用户,并将oracle用户加入到dba

[root@localhost101 etc]# grep oinstall  /etc/group #检查用户组oinstall是否存在

[root@localhost101 etc]# grep dba /etc/group #检查用户组dba是否存在

[root@localhost101 etc]# id oracle #检查oracle用户是否存在

id: oracle: No such user

#上述均表示用户组和用户不存在

[root@localhost101 etc]# /usr/sbin/groupadd oinstall #创建用户组oinstall

[root@localhost101 etc]# /usr/sbin/groupadd dba #创建用户组dba

#检查用户组是否创建成功,以下表示创建成功

[root@localhost101 etc]# grep dba group

dba:x:503:

[root@localhost101 etc]# grep oinstall group

oinstall:x:502:

[root@localhost101 etc]# /usr/sbin/useradd -g oinstall -G dba oracle #创建oracle用户,并将oracle用户同时设定为oinstall和dba用户组的组成员

[root@localhost101 etc]# passwd oracle #设定oracle用户的密码

Changing password for user oracle.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

5、配置系统内核参数

#以root用户登录,修改在/etc/sysctl.conf文件,在该文件中添加以下参数:使用/sbin/sysctl -p 生效

# use for oracle 11g

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1174405120

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

#要注意的是,原来sysctl.conf中已经有shmallshmmax参数了,注释掉。kernel.shmmax一般比物理内存一半大点。

6、修改文件限制

#修改/etc/security/limits.conf,加入

oracle           soft    nproc          2047

oracle           hard   nproc          16384

oracle           soft    nofile          1024

oracle           hard   nofile           65536

oracle           soft    stack           10240

7、修改ulimit

#修改/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

8、新建安装目录

[root@localhost101 u01]# mkdir -p /u01/app/oracle/ #新建目录,目录可以自行定义

[root@localhost101 u01]# chown -R oracle:oinstall /u01/app/oracle/ #设置目录所有权

[root@localhost101 u01]# chmod -R 775 /u01/app/oracle/ #设置目录权限

9、设置Oracle环境变量

#切换到oracle用户,修改.bash_profile文件,添加Oracle环境变量

# Oracle 11g environment

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export ORA_NLS10=$ORACLE_HOME/nls/data

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/bin:/lib:/usr/lib:/usr/local/lib

export TEMP=/tmp

export TMPDIR=/tmp

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

unset USERNAME

[oracle@localhost101 ~]$ source .bash_profile #使用source命令使环境变量文件生效

10、修改hosts文件

#修改/etc/hosts文件

[root@localhost101 etc]# vi hosts

127.0.0.1 localhost101 localhost.localdomain localhost

::1         localhost6 localhost6.localdomain6

11、安装Oracle软件

尝试安装i386的包,不能安装

[root@localhost101 rpm]# rpm -ivh libaio-0.3.106-5.i386.rpm 

warning: libaio-0.3.106-5.i386.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEY

Preparing...                ########################################### [100%]

        package libaio-0.3.107-10.el6.x86_64 (which is newer than libaio-0.3.106-5.i386) is already installed

        package libaio-0.3.107-10.el6.i686 (which is newer than libaio-0.3.106-5.i386) is already installed

[root@localhost101 rpm]# rpm -q libaio

libaio-0.3.107-10.el6.x86_64

libaio-0.3.107-10.el6.i686

#有几个包提示没有安装,可以忽略,因为在6.464位中,默认是不安装i386的包,而在安装oracle11g中,确有需要才提示