一、安装前的准备
1、由root执行的任务(用root用户登录)
1.1 设置系统变量
1) 用文本编辑器打开"/etc/system" 文件
# vi /etc/system
2)在 "/etc/system" 文件结尾插入如下几行
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=256
set semsys:seminfo_semmns=1024
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
注:
SHMMAX maximum size of a shared memory segment
(共享内存段的最大字节数)
SHMMIN minimum size of shared memory segment
(共享内存段的最小尺寸)
SHMMNI maximum number of shared memory identifiers in the system
(系统中共享内存标识符的最大数目)
SHMSEG maximum number of shared memory segments a user process can attach
(每个用户进程可分配的最大共享内存段数目)
SEMMNI maximum number of semaphore identifiers in the system
(系统中信号灯标识符的最大数目)
SEMMSL maximum number of semaphores in a set
(每个(信号灯)集合中的信号灯的最大数目)
SEMMNS maximum number of semaphores in the system
(系统中信号灯的最大数目)
SEMOPM maximum number of operations per semop call
(每个semop调用的信号灯的最大数目)
SEMVMX semaphore maximum value
(信号灯最大值)
注意!
上面提到的 SEMMSL 和 SEMMNS 的值仅适用于最初的安装,安装完成后应根据应用的实际情况进行调整,其中
★ SEMMSL 的值可以通过以下方式计算得到:
所有Oracle实例的"init[SID].ora"文件中最大的PROCESSES值 + 10
★ SEMMNS 的值可以通过以下方式计算得到:
系统中各个Oracle实例的"init[SID].ora"文件中PROCESSES值的总和(不包括最大的那个PROCESSES值)+ 最大的那个PROCESSES值 * 2 + 10 * Oracle实例的个数。
注:[SID]即为具体的数据库实例名
例如,一个有三个 Oracle实例的系统,在各自的"initsid.ora"文件中的PROCESSES参数设置为下列值:
ORACLE_SID=A, PROCESSES=100
ORACLE_SID=B, PROCESSES=100
ORACLE_SID=C, PROCESSES=200
则 SEMMSL 值的计算方法如下:
SEMMSL = [(c=200) + 10] = 210
则 SEMMNS 值的计算方法如下:
SEMMNS = [(A=100) + (B=100)] + [(C=200) * 2] + [(# of instances=3) * 10] = 630
对于操作系统,设置的参数值过高会导致机器不能启动,对参数的限制,请参阅Sun SPARC Solaris系统管理文档。
3) 重启系统,以使新的内核参数生效
# sync;sync;reboot
4) 系统重启后,可以通过sysdef命令检查 "Maximum Shared Memory" 和 "Minimum Shared Memory" 的数值(在列表底部的"Shared Memory Area" 部分)
# sysdef
1.2 建立组、用户及相关目录
1) 创建 "dba" 和 "oinstall" 组,添加用户名为 "oracle" 的用户,并为其设置密码
# groupadd dba
# groupadd oinstall
# useradd -g dba -G oinstall -d /export/home/oracle -m -s /bin/sh oracle
# passwd oracle
以上操作也可通过admintool管理工具来实现
# admintool
2) 创建相关目录
# mkdir -p /opt/oracle/product/8.1.7
# mkdir -p /opt/oracle/oraInventory
# chown -R oracle:dba /opt/oracle
# mkdir /var/opt/oracle
# chown -R oracle:dba /var/opt/oracle
2、由 "oracle user" 执行的任务
1) 退出root登录,用之前创建的oracle用户登录
2) 修改oracle用户的 "./profile" 配置文件
$ cd
$ vi .profile
将原来的 PATH 串改为:
PATH=/bin:/usr/bin:/usr/openwin/bin:/usr/sbin:/usr/ccs/bin:/sbin:/opt/oracle/product/8.1.7/bin:
PATH=$PATH:/usr/local/bin:/opt/oracle/admin/bin:.
在 export PATH 串下加入如下几行:
ADMIN_HOME=/opt/oracle/admin
DISPLAY=localhost:0.0
LD_LIBRARY_PATH=/usr/lib:/usr/openwin/lib:/opt/oracle/product/8.1.7/lib:
LOCAL_HOME=/usr/local
MSGVERB=text:action
NOMSGLABEL=1
NOMSGSEVERITY=1
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/8.1.7
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280 # for Chinese
#NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
ORACLE_SID=orcl # You may replace "orcl" with your own SID Name you wish to use
export ORACLE_BASE ORACLE_HOME ORACLE_SID ADMIN_HOME LOCAL_HOME
export MSGVERB NOMSGLABEL NOMSGSEVERITY NLS_LANG ORA_NLS33 DISPLAY LD_LIBRARY_PATH
其中,到底使用 "AMERICAN_AMERICA.ZHS16CGB231280" 还是 "SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 视具体情况而定
3) oracle用户重新登录,以使之前修改的 ".profile" 文件配置生效
4) 通过set命令检查刚才的配置是否生效
$ set
5) 进入oracle安装文件所在目录并开始进行安装
(假设oracle817安装文件存在于"/export/home/oracle/ora817/Disk1")
$ cd /export/home/oracle/ora817/Disk1
$ runInstaller
备忘:
★ 下载的Oracle cpio文件的解开方法为:cpio -idcmv < <filename.cpio>
★ 看到有说用Oracle光盘安装时换盘时会有无法弹出光盘的情况,通过将安装光盘cp到硬盘安装解决
如:将光盘1的所有内容到cp到"/export/home/oracle/ora817/Disk1"中
将光盘2的所有内容到cp到"/export/home/oracle/ora817/Disk2"中
......
目前还未遇到过使用光盘介质来安装的情况
★ 安装过程中,当提示要运行 root.sh ($ORACLE_HOME/root.sh)脚本时,要手工打开一个新的console(控制台)以root用户身份执行。
★ 如安装完成后初始化数据库过程中遇到 ORA-03114: not connected to ORACLE 错误,则应适当加大 SEMMSL, SEMMNS 等参数的数值。
6) 安装完后的简单测试
默认已经是oracle用户登录,执行 lsnrctl start 启动Oracle LISTENER
$ lsnrctl start
当监听启动成功后,将会看到如下类似信息:
LSNRCTL for Intel SVR4 UNIX: Version 8.1.7.0.0 - Production on 23-JUN-2002 04:02:46
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /opt/oracle/product/8.1.7/bin/tnslsnr: please wait...
TNSLSNR for Intel SVR4 UNIX: Version 8.1.7.0.0 - Production
System parameter file is /opt/oracle/product/8.1.7/network/admin/listener.ora
Log messages written to /opt/oracle/product/8.1.7/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Listening on:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gokmen.selcuk.edu.tr)(PORT=1521)))
Listening on:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gokmen.selcuk.edu.tr)(PORT=2481))
(PROTOCOL_STACK=(PRESENTATION=GIOP)
(SESSION=RAW)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Intel SVR4 UNIX: Version 8.1.7.0.0 - Production
Start Date 23-JUN-2002 04:02:47
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /opt/oracle/product/8.1.7/network/admin/listener.ora
Listener Log File /opt/oracle/product/8.1.7/network/log/listener.log
Services Summary...
PLSExtProc has 1 service handler(s)
orcl has 1 service handler(s)
The command completed successfully
如果看到的是如下类似信息,说明监听已经启动:
LSNRCTL for Intel SVR4 UNIX: Version 8.1.7.0.0 - Production on 24-JUN-2002 05:02:46
(c) Copyright 1998 Oracle Corporation. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
如果监听启动成功,就可以用 dbstart 命令来启动数据库了
$ dbstart
启动成功后将会看到如下类似信息:
Oracle Server Manager Release 3.1.7.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SVRMGR> Connected.
SVRMGR> ORACLE instance started.
Total System Global Area 247464096 bytes
Fixed Size 73888 bytes
Variable Size 17596416 bytes
Database Buffers 229621760 bytes
Redo Buffers 172032 bytes
Database mounted.
Database opened.
SVRMGR>
Server Manager complete.
Database "orcl" warm started.
3、安装Oracle补丁
用oracle用户登录,通过 "runInstaller" 进行安装(假设oracle817安装文件存在于"/export/home/oracle/ora817/Disk1")
$ cd /export/home/oracle/ora817/Disk1
$ runInstaller
(1) On the Welcome screen, click the Next button. This will display the File Locations screen.
(2) Click the Browse button for the Source... entry field and navigate to the stage directory where you unpacked the Patch Set tar file.
(3) Select the products.jar file. Click the Next button.
......
4、添加开机自启动脚本
用root用户登录
1) 打开"oratab"文件(本文档中,"oratab" 文件存在于 "/var/opt/oracle" 目录)
# vi /var/opt/oracle/oratab
找到
orcl:/opt/oracle/product/8.1.7:N
为了能使用 "dbstart" 命令来启动数据库,所以必须将其改为
orcl:/opt/oracle/product/8.1.7:Y
当作了上述改动后,还需编辑 "$ORACLE_HOME/bin" 目录下的 "dbstart" 和 "dbshut" 两个文件,在本档中,$ORACLE_HOME 指向 "/opt/oracle/product/8.1.7" 目录,分别打开这两个文件
# cd /opt/oracle/product/8.1.7
# vi dbstart
# vi dbshut
找到
ORATAB=/etc/oratab
将其改为
ORATAB=/var/opt/oracle/oratab
备忘:按之前的安装步骤,"dbstart" 和 "dbshut" 文件的相应行已经是 "ORATAB=/var/opt/oracle/oratab" 了
2) 创建"/etc/init.d/dbora"文件
# vi /etc/init.d/dbora
3) 写入如下内容
#!/bin/sh
ORAHOME=/opt/oracle/product/8.1.7
ORAOWNER=oracle
if [ ! -f $ORAHOME/bin/dbstart ] ;
then
echo "ERROR: Cannot start Oracle Database Server"
fi
case "$1" in
"start")
echo "Starting Oracle Database... \c"
su - $ORAOWNER -c "$ORAHOME/bin/lsnrctl start" > /dev/null
su - $ORAOWNER -c $ORAHOME/bin/dbstart > /dev/null
echo "Done."
;;
"stop")
echo "Stopping Oracle Database... \c"
su - $ORAOWNER -c $ORAHOME/bin/dbshut > /dev/null
su - $ORAOWNER -c "$ORAHOME/bin/lsnrctl stop" > /dev/null
echo "Done."
;;
"")
echo "You must tell what you want me to do."
echo "Usage : ./dbora [start | stop ]"
echo " start - Start Oracle Database immediately"
echo " stop - Stop Oracle Database immediately"
;;
esac
exit
保存并退出编辑
4)
# chmod 744 /etc/init.d/dbora
# ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora
# ln -s /etc/init.d/dbora /etc/rc1.d/K10dbora
# ln -s /etc/init.d/dbora /etc/rc2.d/S90dbora
# ln -s /etc/init.d/dbora /etc/rcS.d/K10dbora
*** END ***