使用 Linux 也挺长时间了,其中仅有 1% 的时间使用图形界面,在这 1% 的时间仅有 1% 的时间不是花在安装 Oracle 上的 -_- 。最近搞到一台 Sun Fire V890 小型机,刚装好 Solaris 10/09,这次懒得开图形界面了,尝试了一下 Oracle 的静默安装,整理成这篇文章,本系列共分3篇:
(一)环境设置
(二)静默安装 Oracle 10gR2
(三)静默安装 Oracle 11gR2
一、自此创建完所需的运行用户
我的安装计划是这样的,在同一台 Sun Fire V890 上面同时安装 Oracle 10gR2 和 Oracle 11gR2 ,他们运行在不同的用户下。
[root@V890 /]$ groupadd oracle
[root@V890 /]$ useradd -g oracle -d /home/ora10g -s /bin/bash -m ora10g
UX: useradd: ERROR: Unable to create the home directory: Operation not applicable.
# 这里出了点小问题。
# 问题描述可以从这里找到:http://www.science.uva.nl/pub/solaris/solaris2/Q3.4.html
# svcadm disable /system/filesystem/autofs OK了
[root@V890 /]$ useradd -g oracle -d /home/ora11g -s /bin/bash -m ora11g
[root@V890 /]$ passwd ora10g
[root@V890 /]$ passwd ora11g
二 检查相关的安装包
有一次安装Oracle,装到 79% 的时候失败,查看日志发现竟然没有 gcc -_-!
[root@V890 /]$ pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \
[root@V890 /]> SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
system SUNWarc Lint Libraries (usr)
system SUNWbtool CCS tools bundled with SunOS
system SUNWhea SunOS Header Files
system SUNWi1of ISO-8859-1 (Latin-1) Optional Fonts
system SUNWlibm Math & Microtasking Library Headers & Lint Files (Usr)
system SUNWlibms Math & Microtasking Libraries (Usr)
system SUNWsprot Solaris Bundled tools
system SUNWtoo Programming Tools
system SUNWxwfnt X Window System platform required fonts
错误: 未发现"SUNWsprox"的信息 # 这个在 Solaris 10 中没有了,不用管
错误: 未发现"SUNWi1cs"的信息 # 在光盘中有
错误: 未发现"SUNWi15cs"的信息 # 在光盘中有
[root@V890 Product]$ cd /cdrom/sol_10_1009_sparc/Solaris_10/Product
[root@V890 Product]$ pkgadd -d ./ SUNWi1cs SUNWi15cs
三、调整内核参数
Solaris 10 的调整方式还是比较麻烦的,可以看一下这篇文章:http://www.chinaitproject.com/viewthread.php?tid=1043 Solaris 10使用新的方式修改内核参数了。
[root@V890 etc]$ id -p ora10g
uid=101(ora10g) gid=100(oracle) projid=3(default)
[root@V890 etc]$ id -p ora11g
uid=102(ora11g) gid=100(oracle) projid=3(default)
[root@V890 etc]$ projadd -U ora10g -p 99910 -c "ora10g parameters setting" user.ora10g
[root@V890 etc]$ projadd -U ora11g -p 99911 -c "ora11g parameters setting" user.ora11g
[root@V890 etc]$ id -p ora10g
uid=101(ora10g) gid=100(oracle) projid=99910(user.ora10g)
[root@V890 etc]$ id -p ora11g
uid=102(ora11g) gid=100(oracle) projid=99911(user.ora11g)
# 10g
[root@V890 etc]$ projmod -a -K "project.max-shm-memory=(priv,16442450944,deny)" user.ora10g
[root@V890 etc]$ projmod -a -K "project.max-sem-ids=(priv,128,deny)" user.ora10g
[root@V890 etc]$ projmod -a -K "process.max-sem-nsems=(priv,512,deny)" user.ora10g
[root@V890 etc]$ projmod -a -K "project.max-shm-ids=(priv,128,deny)" user.ora10g
# 11g
[root@V890 etc]$ projmod -a -K "project.max-shm-memory=(priv,16442450944,deny)" user.ora11g
[root@V890 etc]$ projmod -a -K "project.max-sem-ids=(priv,128,deny)" user.ora11g
[root@V890 etc]$ projmod -a -K "process.max-sem-nsems=(priv,512,deny)" user.ora11g
[root@V890 etc]$ projmod -a -K "project.max-shm-ids=(priv,128,deny)" user.ora11g
四、创建相应目录
参考 Oracle 的 OFA 建议,目录建得很深。
# 创建目录:
# 建立oracle_base的上一级目录
[root@V890 /]$ mkdir -p /u01/app/
[root@V890 /]$ chmod -R 777 /u01
# 建立oracle_home
[root@V890 /]$ su - ora10g
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[ora10g@V890 ~]$ echo $LOGNAME
# 10g
[ora10g@V890 ~]$ cd /u01/app/
[ora10g@V890 app]$ mkdir -p $LOGNAME/product/10.2.0/db_1
[ora10g@V890 app]$ mkdir -p $LOGNAME/oraInventory
[ora11g@V890 ora10g]$ mkdir -p $ORACLE_BASE/flash_recovery_area
[ora10g@V890 app]$ cd ora10g/
[ora10g@V890 ora10g]$ ls
oraInventory product
[ora10g@V890 ~]$ mkdir -p /u02/oradata/$LOGNAME/$ORACLE_SID
[ora10g@V890 app]$ exit
# 11g
[root@V890 /]$ su - ora11g
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[ora11g@V890 ~]$ echo $LOGNAME
ora11g
[ora11g@V890 ~]$ cd /u01/app/
[ora11g@V890 app]$ mkdir -p $LOGNAME/product/11.2.0/db_1
[ora11g@V890 app]$ mkdir -p $LOGNAME/oraInventory
[ora11g@V890 ora11g]$ mkdir -p $ORACLE_BASE/flash_recovery_area
[ora11g@V890 app]$ cd ora11g/
[ora11g@V890 ora11g]$ ls
oraInventory product
[ora11g@V890 ~]$ mkdir -p /u02/oradata/$LOGNAME/$ORACLE_SID
[ora11g@V890 app]$ exit
五、添加环境变量
这几个变量相信大家都比较熟悉了。
# 10g
[root@V890 /]$ su - ora11g
# 将以下文本添加到 ~/.profile 中
# oracle common path
ORACLE_SID=ORA10G
ORACLE_BASE=/u01/app/$LOGNAME
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID ORACLE_BASE ORACLE_HOME
# oracle exe path
PATH=$ORACLE_HOME/bin:$PATH
export PATH
# lib/class path
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH LD_LIBRARY_PATH
# 11g 用户
[root@V890 /]$ su - ora11g
# 将以下文本添加到 ~/.profile 中
# oracle common path
ORACLE_SID=ORA11G
ORACLE_BASE=/u01/app/$LOGNAME
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID ORACLE_BASE ORACLE_HOME
# oracle exe path
PATH=$ORACLE_HOME/bin:$PATH
export PATH
# lib/class path
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH LD_LIBRARY_PATH
自此,Oracle 的安装前准备基本上设置完成,下一步可以开始安装 Oracle 。