Linux 下安装 oracle10g 标准文档

 

system:Linux5.5(64bit)
Author:hx10

Date:2010/7/26 hangzhou

 

1. 硬件需求
RAM 最小512MB  推荐1G
SWAP最小1GB       推荐RAM大小的两倍

官方文档的标准如下

RAM

Swap Space

Between 1024 MB and 2048 MB

1.5 times the size of RAM

Between 2049 MB and 8192 MB

Equal to the size of RAM

More than 8192 MB

0.75 times the size of RAM

在实际环境中,单个swap分区不要超过2G,但是可以划分多个swap分区,针对PC-SERVER服务器,一般看物理CPU有几个,就分多少个2GSWAP空间。

临时空间/tmp 最小400MB     推荐1GB
磁盘空间    最小     1.5G用于ORACLE软件, 1.5G用于启动数据库

                推荐     1.5G用于ORACLE软件, 1.5G用于启动数据库
操作系统版本  参照ORACLE文档
2OFA 最优灵活体系结构(从ORACLE 8开始引入)
提供了一种结构化方法,用于定位ORACLE需要与使用的各种文件
易于管理数据库各种文件的存储位置, 诸如备份以及还原数据库
OFA还提供了能够监视与调整性能的基本功能(诸如减少多种文件之间的竞争)
在一台电脑上运行多个ORACLE版本时,如果每个版本都遵循OFA原则,那么多个版本之间就不会得重写另一个版本所需的文件。

 

3.oracle创建用户和组(用户名为oracle,当然也可是其他用户名)

A. ORACLE创建用户和组
 
# mkdir /u01            //安装oracle软件
# mkdir /u02           //存放oracle数据文件
 
# groupadd  oinstall
# groupadd  dba
# useradd -g oinstall -G dba -d /u01/oracle  oracle
# passwd oracle
 
#chown oracle:oinstall /u02
B.oracle用户设置环境变量

#su – oracle
$vim ~/.bash_profile
在末尾增加
# User specific environment and startup programs
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
export TMP=/u01/oracle/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.1
export EDITOR=/usr/bin/vim
export ORACLE_SID=zjcsc
export PATH=$ORACLE_HOME/bin:/usr/bin:$PATH
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_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export LIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JRE
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

 

C. 配置内核参数(具体参照联机文档)
#su – root
#vim /etc/sysctl.conf
在最末尾增加
kernel.shmmax = 4294967295
kernel.shmall = 268435456
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 = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
#sysctl -p (使参数配置立即生效)
解释如下:
kernel.shmmax = 4294967295   //该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,这里设置为4G 4*1024*1024*1024-1=4294967295
kernel.shmall = 268435456 //该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改,这里设置256m     256*1024*1024=268435456
kernel.shmmni = 4096   //这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128    //表示设置的信号量
fs.file-max = 65536    //表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量
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  //  发送窗口的最大大小
D.限制oracle用户对资源的访问
D1.限制用户访问资源
# vim /etc/security/limits.conf 在文件之后加入如下内容
#Add this line
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile   1024
oracle              hard    nofile   65536
D2.限制用户SHELL对资源的访问
#vim /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

 

E.验证用户
#vim /etc/pam.d/login
session    required   pam_limits.so
session    required   /lib/security/pam_limits.so

 

4.安装必要的软件包
使用yum方式安装能省去很多麻烦,推荐(因为我们的重点在于DB,不在于OS
 [root@ocp ~]#
yum -y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel openmotif openmotif-devel libXp libXp-devel
 (因为ORACLE10g不支持RHEL5,标注软件同样必须安装)
对于Linux4.7,官方需要的软件包如下:
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
setarch-1.6-1
检查发现,缺少sysstat-5.0.5-1这个包,挂载光盘,按照如下格式安装:
# rpm –ivh sysstat-5.0.5-19.el4.i386.rpm
(2).安装Oracle 软件
先设置共享当前X11的访问权,即当前屏幕
[root@ocp ~]# xhost +
#su - oracle
定义DISPLAY变量,让显示输出到X11上,即当前0.0个显示设备上
[oracle@ocp ~]$ export DISPLAY=:0.0
$cd /var/oracle/oracle10g2
$./runinstaller   (-ignoreSysPrereqs)跳过检查,因为ORACLE 10G不支持RHEL5

 解压文件:

gunzip 10201_database_linux_x86_64.cpio.gz

cpio -idm <10201_database_linux_x86_64.cpio

重点注意:安装oracle的服务器不要修改/etc/sysconfig/i18n这个字体库,如果修改主机名的话,保证下面这2个文件是这种格式:
1 [oracle@oracle10g database]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.7     localhost.localdomain   localhost       oracle10g
2[oracle@oracle10g database]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oracle10g
安装系统的时候,最好使用英文模式,能避免很多问题的出现
小结:安装时经常出现的错误,主要集中在
A.SWAP 空间不够---可通过新增swap分区或是文件来解决
B.SELINUX的限制,导致安装完成后无法访问库文件,改变setenforce=0SELINUX处于交互模式,或是禁用,但本人认为最好的方式是根据SELINUX的提示,更改context值。
C.没有正确安装和使用的另外一个原因是所需的软件包没有正确完整的安装。
另外,有些企业的IT希望能够让ORACLE 服务器开机就启动,那么下面这些内容可能对你有用:
使用vim打开/etc/oratab(此文件是由$ORACLE_HOME/root.sh创建,所以oracle用户同样有权限修改)修改如下内容
orcl:/var/oracle/product/10.2.1:N   --- >  orcl:/var/oracle/product/10.2.1:Y

 

然后使用root身份进入修改/etc/rc.local,加入以下内容:
su - oracle <<EOF
lsnrctl start LISTENER
sqlplus /nolog<<EOS
connect sys/oracle as sysdba
startup
alter system register;
EOS
EOF
现在,保存退出,你会发现下次重开机,oracle 服务器就自动启动了,当然在进入系统时,鉴于DB的规模,而需要不同的时间来初始化这样一个环境。
同样的,如果需要对EM, listener, isqlplus等也进行自动启动,可以依上来设置。
但一般企业中不会进行自动启动的设置,这违反了一些管理原则。
附:登录sqlplus的时候,会提示命令不存在,需要安装一个rlwrap
官方下载地址:http://utopia.knoware.nl/~hlub/uck/rlwrap/
安装过程:
[root@oradb temp]# tar -xvf rlwrap-0.28.tar
[root@oradb temp]# cd rlwrap-0.28
[root@oradb rlwrap-0.28]# ./configure
这一步需要readline的库,如果报错如下
checking for readline in -lreadline... no
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
需要下载readline,地址为:ftp://ftp.gnu.org/gnu/readline/ 下载后编译安装,然后继续,或者 yum -y install readline-devel
[root@oradb rlwrap-0.28]# make
[root@oradb rlwrap-0.28]# make install