CentOS 5.1 安装 Oracle 10gR2
网址: http://bluedata.org/2008/04/26/centos5-install-oracle10gr2/
Oracle 10gR2 安装的硬件需求
所需最小内存为 512MB,而所需最小交换空间为 1GB。
对于内存小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于内存大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
Oracle 10gR2 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。
据此,根据宿主机器的情况,在 VMware 上创建了虚拟主机。内存 1GB,一块 20GB 的 IDE 硬盘。
CentOS 5.1 的安装
文本模式安装(linux text),安装完成默认启动的是文本界面(init 3)。
选择 简体中文,但文本安装模式不支持 utf8,所以安装过程还是英文模式,但安装完成后的系统是中文的。
分区如下(安装完成后 df -h 的输出):
/dev/hda1 965M 223M 693M 25% /
/dev/hda3 965M 21M 895M 3% /tmp
/dev/hda6 1.9G 70M 1.8G 4% /var
/dev/hda5 3.8G 1.5G 2.2G 40% /usr
/dev/hda2 为 2GB 的 swap 分区,留了 10GB 空间安装 Oracle 10gR2,还没有分区。
时区去掉 使用 UTC。
默认要安装的包全去掉,选上自定义包,然后只选了 Gnome 桌面环境和 X Window System,其它的都去掉。
Oracle 10gR2 的安装需要桌面环境。
第一次启动时的 Steup Agent:
防火墙设置里关闭了防火墙,禁用了 SELinux。
系统服务只留下了 crond network sshd syslog vncserver xfs
vncserver 是为了远程通过图形界面安装 Oracle 10gR2。为了使用中文需要开启 xfs 字体服务。
安装 Oracle 10gR2 前的系统配置
配置 Linux 内核参数
设置共享内存
设置 SHMMAX
SHMMAX 参数定义共享内存段的最大大小(以字节为单位)。Oracle SGA 由共享内存组成,且错误设置 SHMMAX 可能会限制 SGA 的大小。
在设置 SHMMAX 时,切记 SGA 的大小应该适合于一个共享内存段。SHMMAX 设置不足可能会导致以下问题:
ORA-27123:unable to attach to shared memory segment
可以通过执行以下命令确定 SHMMAX 的值:
cat /proc/sys/kernel/shmmax
4294967295
SHMMAX 的默认值为 4GB。这个值对于配置 Oracle SGA 足够了。RHEL3 或 RHEL4 的默认值为 33554432(32MB),在早期的安装手册中就把这个值调整为了 2147483648(2GB)。
设置 SHMMNI
这个内核参数用于设置系统范围内共享内存段的最大数量。
可以通过执行以下命令确定 SHMMNI 的值:
cat /proc/sys/kernel/shmmni
4096
SHMMNI 的默认设置足以满足 Oracle 10gR2 安装的需要。
设置 SHMALL
SHMALL 共享内存内核参数。该参数控制系统一次可以使用的共享内存总量(以页为单位)。简言之,该参数的值始终应至少为:ceil(SHMMAX/PAGE_SIZE)
可以使用以下命令进行查询:
cat /proc/sys/kernel/shmall
268435456
SHMALL 的默认设置足以满足 Oracle 10gR2 安装的需要。
设置信号
使用以下命令查看所有信号限制:
cat /proc/sys/kernel/sem
250 32000 32 128
依次为:
SEMMSL: 用于控制每个信号集合的最大信号数。
Oracle 建议将 SEMMSL 设置为 init.ora 文件(适用于 Linux 系统上所有数据库)中的最大 PROCESS 实例参数设置再加上 10。此外,Oracle 建议将 SEMMSL 设置为不小于 100。
SEMMNI: 用于控制整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 设置为不小于 100。
SEMMNS: 用于控制整个 Linux 系统中的信号(而非信号集)的最大数量。
Oracle 建议将 SEMMNS 设置为系统上每个数据库的 PROCESSES 实例参数设置之和,加上最大的 PROCESSES 的两倍,最后为系统上的每个 Oracle 数据库加上 10。
SEMOPM: 用于控制每个 semop 系统调用可以执行的信号操作数。Oracle 建议将 SEMOPM 设置为不小于 100。
默认设置满足 Oracle 10gR2 安装的需要。
设置文件句柄
文件句柄的设置表示 Linux 系统上可以打开的文件数。使用以下命令来确定整个系统中文件句柄的最大数量:
cat /proc/sys/fs/file-max
102408
Oracle 建议将整个系统的文件句柄值至少设置为 65536。默认设置足以满足 Oracle 10gR2 安装的需要。
一些早期版本的 CentOS(RHEL) 这些参数的默认值较小,所以需要调整的大一些。而在 CentOS5 中,这些参数的默认值就已经满足 Oracle 安装的需求了,也就不需要再做调整了。
软件需求
需要安装以下程序包:
make-3.81-1.1
glibc-2.5-18
glibc-devel-2.5-18
glibc-headers-2.5-18
gcc-4.1.2-14.el5
compat-db-4.2.52-5.1
compat-gcc-34-3.4.6-4
compat-gcc-34-c++-3.4.6-4
compat-libstdc++-33-3.2.3-61
openmotif-2.3.0-0.3.el5
setarch-2.0-1.1
查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:
rpm -q make glibc glibc-devel glibc-headers gcc compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 openmotif setarch
缺什么就装什么。例如这里用 yum 安装了这些没有安装的包:
yum install gcc compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 openmotif
yum 会自动解决依赖问题。为方便安装,可以把 yum 设置为通过 DVD 光盘安装。(http://blog.bluedata.org/centos-yum-use-dvd-iso/)
创建安装 Oracle 10gR2 软件的分区及数据库的分区。
fdisk /dev/hda
把剩余的 10gR2B 空间平分为两个分区(/dev/hda7 /dev/hda8)并创建文件系统
mkfs -t ext3 -L /u01 /dev/hda7
mkfs -t ext3 -L /u02 /dev/hda8
创建挂载点
mkdir /u01 /u02
在 /etc/fstab 文件中添加
LABEL=/u01 /u01 ext3 defaults 1 2
LABEL=/u02 /u02 ext3 defaults 1 2
挂载
mount -a
创建目录及用户
mkdir -p /u01/app
groupadd -g 115 dba
useradd -u 175 -g 115 -d /u01/app/oracle -s /bin/bash -c "Oracle Software Owner" -p oracle oracle
chown -R oracle:dba /u01 /u02
passwd oracle
配置 VNCServer 远程登录
切换到 oracle 用户
su - oracle
vncserver
设置密码并修改 .vnc/xstartup 文件,配置 VNC 使用中文的 Gnome 桌面环境。
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
export LANG="zh_CN.GBK"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session
exit 回到 root 下,修改 /etc/sysconfig/vncservers 文件
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERARGS[2]="-geometry 800x600"
重启一下 VNCServer
/etc/init.d/vncserver restart
之后,可以通过 VNC 客户端远程连接了。
设置 oracle 用户的环境变量
su - oracle
vi .bash_profile
export LANG=en_US.UTF-8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
bash 使用英文环境是为了避免中文安装界面及运行 Oracle 应用程序的乱码问题。
需要再配置一下 gnome-terminal,VNC 以 oracle 用户登录,打开 应用程序 -> 附件 -> 终端,做如下设置:
编辑 -> 当前配置文件 -> 标题和命令,勾选上 以登录 Shell 方式运行命令。
这样,中文界面下的 gnome-terminal 的环境就是英文的了。
exit
准备安装文件
unzip -d /u01/app/oracle/orainstall /usr/local/src/10201_database_linux32.zip
chown -R oracle:dba /u01/app/oracle/orainstall
安装 Oracle 10gR2
vnc 用 oracle 用户登录后开始正式安装
因为 Oracle 10gR2 不支持 CentOS 操作系统,需要跳过操作系统验证,使用以下命令安装:
/u01/app/oracle/orainstall/database/runInstaller -ignoreSysPrereqs
1. 欢迎页面。直接点击 Next
2. 选择安装类型。企业版,产品语言中添加 简体中文。
3. 安装路径。使用默认值,Next
4. 安装环境的检查。查看一下是否有问题,有问题就解决问题。对于操作系统版本不被支持的警告可以忽略。
5. 不创建数据库,选择 只安装数据库软件。
6. 摘要。点击 Install 开始安装。
7. 需要以 root 用户执行脚本,执行完后点击 OK
8. 结束安装。
创建数据库
打开 终端,运行 dbca
1. 欢迎页面。直接点击 Next
2. 选择创建数据库。
3. 选择默认的模板,点击 Next
4. 设置数据库名和 SID
5. 使用 Enterprise Manager
6. 创建用户密码。
7. 存储选项。使用文件系统。
8. 数据库文件路径。Use Common Location for All Database Files: /u02/oradata
9. 闪回目录。/u02/flash_recover_area 。开启归档日志。
10. Sample Schemas 选上可以创建示例。
11. 初始化参数。Character Sets 改为 ZHS16GBK ,语言选择 简体中文,日期格式选择 中国。
12. Database Storage 。可根据需要配置。
13. 创建数据库和创建脚本。
14. 配置详情。结束。
安装后的任务
启动/停止数据库
以 root 用户编辑 /etc/oratab,该文件指定了使用 dbstart/dbshut 工具时哪些数据库实例会被 启动/关闭。文件格式为:
$ORACLE_SID:$ORACLE_HOME:
如果最后一列为 Y,那么在 $ORACLE_HOME 目录下的 SID 为 $ORACLE_SID 的实例会由 dbstart 工具启动。
编辑完成后保存。然后以 oracle 用户运行 dbstart 命令,数据库启动。停止数据库以 oracle 用户运行 dbshut 命令。
无法启动 Listener 的问题
提示:Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
vi $ORACLE_HOME/bin/dbstart
把 ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle 替换为 ORACLE_HOME_LISTNER=$ORACLE_HOME
启动/停止 Oracle Listener
启动 Listener 以 oracle 用户运行命令 lsnrctl start
停止 Listener 以 oracle 用户运行命令 lsnrctl stop
为便于管理,创建一个启动脚本
vi /etc/init.d/oracle
# chkconfig: 0356 95 1
# description: init script to start/stop Oracle Database 10gR2, TNS listener, isQL*Plus, EMS
# match these values to your environment:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_USER=oracle
# see how we are called:
case $1 in
start)
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/dbstart"
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/isqlplusctl start"
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/emctl start dbconsole"
;;
stop)
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/isqlplusctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
chmod +x /etc/init.d/oracle
chkconfig --add oracle
登录地址
isQL*Plus URL:
http://oracle:5560/isqlplus
isQL*Plus DBA URL:
http://oracle:5560/isqlplus/dba
Enterprise Manager 10gR2 Database Control URL:
http://oracle:1158/em
解决 OEM 乱码问题
分别进入以下三个目录:
$ORACLE_HOME/jdk/jre/lib
$ORACLE_HOME/jre/1.4.2/lib
$ORACLE_HOME/javavm/lib/ojvmfonts
替换字体配置文件
mv font.properties font.properties.bak
cp -a font.properties.zh_CN.Redhat font.properties
如果之前已经运行过 OEM,需要进入 OEM 的缓存图片目录清除缓存图片
cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zht
rm -f *.gif *.imx

















