在安装过程之前需要执行一些步骤。它们被分为以下几类:
Oracle 9i 是一个庞然大物,你最好拥有一台性能良好的机器。以下是安装指南中的说明(摘要):
Parameter Required Sufficient (tested)
---------------------------------------------------
CPU PII or K6 K6/2 *(1)
RAM 512 MB 256 MB
HDD space 3.5 GB 2.5 GB *(2)
Swap space 1GB or RAMx2 512 MB or more
(1) 对于大型数据库,建议使用双 CPU。通常,高性能 CPU 对(Xeon 或 Athlon MP)甚至四核系统被认为是好的选择。
(2) 如果要安装多个数据库实例,建议使用带有 RAID 的 SCSI 硬盘驱动器 (HDD) 或为每个数据库使用单独的 HDD。
Oracle 需要最低版本的内核和 JRE 软件
Parameter Required Sufficient (tested)
---------------------------------------------------
Kernel Version 2.4.7 later is fine
JRE 1.1.8v3 1.1.8v3
自从(包括)8i 版本以来,安装过程都是基于 GUI 的,并使用 Java 构建,因此主要需求是 X 服务器和窗口管理器。至少应安装 JRE 版本 1.1.8v3。此安装是使用 JRE 版本 1.1.8v3 完成的。我不能保证其他版本可以完成这项工作。请自行承担风险进行测试。
如果您决定安装企业版服务器,这些要求是有效的。对于标准版,足够的值就可以了。在某些情况下,这些参数甚至可以更低。
以下是我在此示例中使用的安装环境
CPU K6 III /400
RAM 512 MB
HDD space 2.3 GB
Swap space 512 MB
CD ROM 24x
Kernel version 2.4.18-24.8.0
JRE 1.1.8v3
似乎此环境足以进行小数据库规模的测试,但如前所述,如果您需要使用大型或超大型数据库,请选择更好的硬件。
安装需要在启动前设置一些环境变量。这些变量可以直接设置到每个用于访问数据库的帐户的 .bash_profile 文件中,或者以更通用的方法设置在 /etc/profile 文件中(如本次安装)。以下是变量的简单列表和示例值(当前示例):
ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/9.2.0.1.0 ORACLE_SID=ORTD PATH=$PATH:$ORACLE_HOME/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH
到目前为止,所有内容对于 RedHat 8.x 和 9.x 都是有效的,但似乎 Oracle 考虑了另一个变量,该变量必须在 RedHat 9 中设置。它必须与之前的变量一起包含并相应导出。如果您不想在安装过程中陷入无限循环,则必须设置它。
LD_ASSUME_KERNEL=2.4.1
感谢我的同事和 DBA Steve Schladel,安装过程顺利进行,没有出现问题。
我通过使用 ORacle Test Database 的缩写设置了 ORACLE_SID 变量。您可以自行决定将什么设置为 SID。这将是您的默认数据库名称和全局数据库名称的一部分。
有关变量含义的更多信息,请参阅 Oracle 管理员手册或参考文档。
JRE (Java 运行时环境) 可以从 Blackdown 网站 下载。如果您不知道要下载什么,请选择 1.1.8v3 并将 tarball 解压到 /usr/local 目录中。这将创建一个以 JRE 版本命名的目录。在 /usr/local/ 中创建以下链接:
ln -s jre118_v3 jre
用于 JRE 1.1.8v3 发行版。如果使用较新版本,请相应地更改命令。现在将 JRE 的 bin 目录添加到 PATH 变量中
PATH=$PATH:/usr/local/jre/bin
export $PATH
或者根据您的效率,将此处的行与配置文件中的行混合使用。
在开始安装之前,应准备好 Linux 环境和目录结构。以下是一些步骤,并在下面列出了每个步骤的描述。请记住,这些步骤是安装标准版所需的最低步骤。如果有人打算安装企业版和附加服务,我建议彻底研究 Oracle 9i 安装指南。
以 root 用户身份登录并按照列表操作。
如果以下部分不太清楚,请参考 Linux 的 IPC 程序员参考文档。
>从 2.2.1 版本开始,内核通过 /proc 文件系统动态设置参数,无需重新编译。为此,/proc 文件系统可以非常灵活地使用。以下是更新内核和设置启动时运行的脚本所需的步骤,以便每次系统启动时都设置参数。
将当前目录更改为 /proc/sys/kernel。
下面列出的是需要更新的最低要求集(如果需要)。
可以使用以下命令读取信号量参数 SEMMSL、SEMMNS、SEMOPM、SEMMNI 的值
cat sem
输出应类似于
250 32000 32 128
这是上述列表中参数值的列表顺序。现在使用以下命令设置值
echo 100 32000 100 100 > sem
可以使用以下命令读取共享内存参数 SHMMAX、SHMMIN、SHMMNI、SHMSEG
cat shm_param
其中 shm_param 是 shmmax、shmmin、shmmni、shmall 等之一。现在使用以下命令为必要的参数设置值
echo 2147483648 > shmmax
echo 4096 > shmmni
echo 2097152 > shmall
上述命令集可以组合在一个 shell 脚本中,并在启动时在运行级别中运行,以决定将使用哪个 Oracle 数据库,但请记住,这些参数应在数据库实例启动之前设置。有关运行级别和启动 init 脚本的更多信息,请参考 Linux 管理员指南。
使用以下命令设置文件句柄
echo 65536 > /proc/sys/fs/file-max
ulimit -n 65536
使用以下命令设置套接字
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
使用以下命令设置进程限制
ulimit -u 16384
与所有 Oracle 数据库一样,9i 需要一个所有者帐户,传统上命名为 oracle。对组的要求有点不寻常;必须有一个用于 OSDBA 的组,默认情况下命名为 dba。Oracle 还要求第二个组(通常称为 oinstall)来分配安装软件的权限。还应该存在另一个用于操作员的组(但它是可选的),用于授予操作员对某些用户组的访问权限。以下是创建组的命令序列
groupadd dba
groupadd oinstall
groupadd oper
创建组后,我们可以为 Oracle 所有者添加一个帐户
useradd -c DBA -g oinstall -G dba oracle
这将创建 oracle 帐户,主组为 oinstall,辅助组为 dba。
此外,将使用此数据库实例的用户可以添加到 /etc/group 文件中的 dba 组。
Oracle 9i 安装至少需要两个挂载点 -- 一个用于软件,一个用于数据库文件。如果使用 OFA(最佳灵活架构),则至少需要四个挂载点 -- 一个用于软件,三个(或更多)用于数据库文件。
Oracle 文档建议每个挂载点都位于单独的物理磁盘上,但对于本例中的最小使用情况,挂载点可以是目录。挂载点的名称传统上是 /u01、/u02、/u03 等。它们可以在系统上的任何位置创建为子目录,并与根目录链接链接。在我的例子中,我在根目录下创建了目录(只有 2 个 - /u01 和 /u02)。
以下是创建和准备挂载点(以 root 用户身份)的简短命令列表
mkdir /u01 /u02
chown oracle.dba /u01 /u02
chmod 755 /u01 /u02
最后两个命令将安装目录的所有权设置为授权安装 Oracle 9i 的用户,但在安装后,根据管理员的选择,最顶层目录可以切换回 root 所有权。
在大多数情况下,umask 应设置为 0022。安装 Oracle 数据库时,建议检查 umask,如果未正确设置,则设置为 0022。这将确保安装期间创建的所有文件都具有正确的属性。使用以下命令
umask
用于测试掩码,以及
umask 0022
用于设置掩码。如果它不是默认值 0022,也可以在配置文件中设置此命令。
在开始安装之前,以 oracle 用户身份登录到 X 终端,并确保 DISPLAY 和 PATH 变量包含正确的值。DISPLAY 变量应指定系统名称、服务器号和屏幕号,以及 Oracle Universal Installer 将运行的位置。仅当您使用远程 X 服务器时,此步骤才是必要的。在本地安装的情况下,如果您可以运行 X Window Manager,您将能够毫无问题地运行安装程序。如果由于 DISPLAY 变量而导致运行安装程序出现问题,请执行
xhost +localhost
export DISPLAY=localhost:0.0
这应该可以解决问题。
此外,以 oracle 用户身份执行
env
并检查所有先前提到的环境变量。如果怀疑一个或多个未正确设置,则应更正它们并重新加载环境。