一、安装前的准备
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