ORACLE 10G安装文档for RedHat 5.4
本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。
一、安装说明
首先安装Linux系统,根据Oracle官方文档的建议,在机器内存小于1G的情况下,swap分区大小应该设置为内存的2倍大,若内存大于2G则swap分区设置为与内存大小一样。
在系统安装的过程中,一定选择安装所有开发包,建议不要安装SELinux或者安装后在系统中禁止SELinux运行,否则会出现一些莫名其妙的问题。
为防止Oracle安装过程中出现乱码,中文安装可以再高级中选择,默认安装oracle时为英文字库,所以在安装过成中尽量使用高级选项,添加中文字库,再进行安装,预防安装中文字库需要重新安装oracle的动作。
二、安装ORACLE前准备工作
1.检查需要的软件包
可以使用#rpm -qa|grep 软件包关键词命令检查软件包是否安装,一般情况下会需要手动安装如下的软件包:共12个软件包,安装过程中确认当前设备属于32位(x64)或64位(x86),对应选择软件包。
安装格式:#rpm –ivh 软件包名称
setarch-2* 、make-3*、glibc-2* 、libaio-0* 、compat-libstdc-33-3
compat-gcc-34-3*、compat-gcc-34-c-3* 、gcc-4*、libXp-1* 、openmotif-2*、 compat-db-4*、libXp-1.0.0.0-8.1eL5-*
2.修改Linux发行版本信息(用于通过版本检查)
由于Oracle 10g发行的时候,RedHat Enterprise Linux 5没有发行,所以Oracle 10g并没有对RedHat Enterprise Linux 5确认支持,我们需要手工修改Linux的发行注记,让Oracle 10g支持RedHat Enterprise Linux 5。编辑/etc/redhat-release文件。
# vi /etc/redhat-release
将其中的内容Red Hat Enterprise Linux Server release 5 (Tikanga)
修改为Red Hat Enterprise Linux AS release 4 (Tikanga)
3.修改系统内核参数(用于通过内核检查)
# vi /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 | // 该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是 2097152,通常不需要修改 // 该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对 于oracle来说,该缺省值太低了,通常将其设置为2G // 这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改 // 表示设置的信号量 // 表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件 数量 //ipv4端口范围 // 默认的接收窗口大小 // 接收窗口的最大大小 // 默认的发送窗口大小 // 发送窗口的最大大小 |
# /sbin/sysctl –p // 修改好内核参数后,执行如下命令使新的设置生效
4.创建oracle用户、组、安装目录
在这里我只讨论单主机环境
1、确定当前登录的是超级管理员 root 用户,如下内容都是在 root 下面进行的操作。依次执行命令:
groupadd dba groupadd oinstall useradd oracle -g oinstall -G dba passwd oracle | 新建管理组 新建安装组 新建用户,用户录属于 dba 和 oinstall 修改用户密码 |
2、继续利用 root 用户建立安装目录并分配权限。
mkdir -p /oracle/product/10.2.0/db_1 chown -R oracle.oinstall /oracle chmod 755 -R /oracle | 新建 oracle 安装目录 修改 oracle 安装目录属主和属组 修改 oracle 安装目录操作权限 |
5.优化ORACLE连接
1)添加以下内容到/etc/security/limits.conf
# vi /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 | nofile - 打开文件的最大数目 noproc - 进程的最大数目 maxlogins - 此用户允许登录的最大数目
|
解释:规则(软)定义用户oracle的最大进程数为2047, 规则(硬)定义用户oracle的最大进程数为16384可以超出软规则的限制(警告),但不能超过硬规则的限制。你可以想像得到,这些规则定义到所有用户的登录SHELL和FTP等服务时是很有帮助的。
2)添加以下内容到/etc/pam.d/login
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
解释:linux limits.conf 配置 limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件/etc/pam.d/login中。
3)添加以下内容到/etc/profile
# vi /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
解释:
ulimit -n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数(max open files)
ulimit -u <可以运行的最大并发进程数> 设置用户可以同时运行的最大进程数(max user processes)
ulimit -p 管道大小
6.配置Linux主机
检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可,系统默认安装后会存在。
#vi /etc/hosts
查看如下内容
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
7.配置oracle用户环境变量
注销当前 root 用户(建议注销,不用 su 命令置换),再用刚才新建的 oracle 用户登录系统。
$ vi ./.bash_profile
增加如下内容:
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORACLE_SID=orcl
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_BASE
export ORACLE_HOME
export ORACLE_SID
export PATH
export LD_LIBRARY_PATH
保存后使用如下命令,使设置生效:
$ source ./.bash_profile
三、安装ORACLE
1.解压缩安装文件
Oracle的安装包有这样几种格式:
(1) zip
这种格式最好解压缩,直接使用命令unzip 文件名即可
(2) cpio.gz
这种格式有这样几种解压缩方式
# gunzip XXXX.cpio.gz解压出XXXX.cpio文件然后再 # cpio -idv <XXXX.cpio
解压缩完成后,设置oracle帐户对安装目录权限
chown -R oracle:oinstall //安装文件所在目录
2. 用oracle帐户进入安装文件所在目录,执行如下命令即可看到安装界面:
$ ./runInstaller //远程安装时无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序
# export DISPLAY=本地ip:vnc的ttl窗口 //用root输出,然后启动vncserver,在执行下面的命令
# xhost + // xhost +是用来控制X server访问权限的,远程安装方式可以用vnc等
vnc启动命令
vncserver :1启动ttl为1的窗口
vncserver –kill :1结束ttl为1的窗口
默认端口5901
建议使用UltraVNC Viewer进行连接
配置一下 /etc/sysconfig/vncservers
VNCSERVERS="2:oracle"
VNCSERVERARGS[2]="-geometry 800x600"
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600"
指定oracle和root用户的启动端口及启动的分辨率
$ ./runInstaller //安装默认使用英文
建议在本地图形界面下进行安装,可以省去因oracle安装可视化带来的不必要问题。
出现安装界面后,根据界面提示进行相关的设置,我的建议是在安装过程中不创建数据库,只安装程序,监听和创建数据库模板等安装完成后再进行相关的操作。
安装过程中,需要使用root权限执行两个脚本。
注意:
1、选择advance install
2、数据库home默认设置为:$ORACLE_BASE/product/10.2.0/db_1(默认)
3、数据库全局名称设置为:orcl(默认)
4、数据库字符集选Simplified Chinese ZHS16GBK(重要)
5.其他用默认设置!
注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装。
数据库安装
图略
3. 安装完成后,修改/etc/redhat-release文件中的内容为原来的内容
#vi /etc/redhat-release
修改回Red Hat Enterprise Linux Server release 5 (Tikanga)
4.创建监听以及创建数据库(本地部署时不需要此项操作)
(1) 创建监听程序
使用Oracle提供的NET CONFIGURATION ASSISTANT创建TNS监听
$ netca
基本上就是一直Next就可以了,当然你也可以在这期间修改TNS的监听端口号
TNS监听创建完成后可以使用如下命令进行检查:
# netstat -atln 检查监听端口是否打开
$ lsnrctl status 检查TNS监听状态
确认监听已经成功启动后,即可执行Database Configure Assistant进行数据库的创建,执行命令如下:
$ dbca
在创建数据库的过程中,建议将数据库的字符集设置为Unicode UTF-8,防止出现乱码。
四、数据库的启动脚本
dbstart脚本修改
数据库创建完成后,修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最后的N改成Y,
然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora
重新执行dbstart就可以了。
修改vi $ORACLE_HOME/bin/dbstart中ORACLE_HOME_LISTNER=$ORACLE_HOME
vi /etc/rc.local 加入下面一行启动ORACLE ON system boot
/oracel/product/10g/bin/dbstart
添加并修改oracle文件
# vi /etc/rc.d/init.d/oracle
#================================ Script File Start=============================
#!/bin/bash
#chkconfig: 2345 99 1 a
# description: init script to start/stop oracle database 10g, TNS listener, EMS
# match these values to your environment:
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_USER=oracle
# see how we are called:
case "$1" in
'start')
echo "Starting Oracle Database..."
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start "
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/isqlplusctl start dbconsole"
;;
'stop')
echo "Stoping Oracle Database"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/isqlplusctl stop dbconsole"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
;;
esac
#================================ Script File End ================================
chown oracle:dba /etc/rc.d/init.d/oracle //修改文件所有权
chmod 755 /etc/rc.d/init.d/oracle //修改文件权限
以后启动/关闭Oracle可以使用如下命令操作:
# service oracle start // 启动监听、数据库以及em
# service oracle stop // 关闭监听、数据库以及em
当然你也可以把Oracle作为系统服务,随系统启动等等。