ORACLE数据库技术实用详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 开始安装

我们主要介绍在Red Hat Enterprise Linux Advanced Server 4(RHEL 4)上安装Oracle 10g R2的过程(事实上,在不同版本的Linux上安装Oracle 10g R2的准备工作以及安装过程几乎没有任何变化。同时假定我们的硬件已经满足了前面所说的要求,而且我们也同时假定读者已经具备了Linux的基本操作知识,比如知道如何创建用户、创建目录等。

我们修改Linux的核心参数。以root用户的身份执行如下命令:

    # vi /etc/sysctl.conf

在该文件的末尾添加如下内容:

    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000

在这里,我们对修改的每个参数值进行简要的解释和说明。

shmall:该参数表示系统一次可以使用的共享内存段的总容量(以页为单位)。默认值是2097152,通常不需要修改。

shmmax:该参数定义了单个进程能够使用的共享内存段的最大尺寸(以字节为单位)。默认为32MB,对于Oracle来说,该默认值太低了,通常将其设置为2GB。

shmmni:该内核参数用于设置系统范围内共享内存段的最大个数。该参数的默认值是4096,通常不需要更改。

sem:该参数表示设置的信号量。

file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在Linux系统中可以打开的文件数量。

编辑完之后保存。并以root用户的身份执行以下命令来使我们所做的修改生效。当然也可以重启Linux使我们的修改生效。

    # /sbin/sysctl -p

我们还应该执行如下命令,对limits.conf文件进行编辑。以增加操作系统用户的nofile和nproc的值。

    # vi /etc/security/limits.conf

在该文件的末尾添加如下内容:

    *   soft    nproc   65536
    *   hard    nproc   65536
    *   soft    nofile  65536
    *   hard    nofile  65536

其中,nofile表示操作系统用户可以同时打开的最大文件数;nproc表示单个用户同时可执行的最大进程数量。

然后在/etc/pam.d/login文件的末尾添加如下内容:

    session   required    /lib/security/pam_limits.so

然后,我们要确定如下的包已经被安装,如果没有,则需要单独安装。

make-3.80-5

binutils-2.15.92.0.2-15

openmotif-2.2.3-9.RHEL4.1

setarch-1.6-1

compat-gcc-32-3.2.3-47.3

compat-libstdc++-33-3.2.3-47.3

compat-libstdc++-296-2.96-132.7.2

compat-gcc-32-c++-3.2.3-47.3

compat-db-4.1.25-9

这些包的安装具有依赖关系,因此在安装以上这些包的过程中,应该按照上面列出的顺序依次进行安装。

在确认这些包是否已经安装时,应使用如下命令:

    # rpm -qa | grep <包的名字>

比如,查找compat相关包的命令为:

    # rpm -qa | grep compat

安装包时,使用如下命令:

    # rpm -ivh <包的名字>

比如,在安装compat-gcc-32-3.2.3-47.3包时,进入Linux安装介质所在的目录,执行如下命令:

    # rpm -ivh compat-gcc-32-3.2.3-47.3.i386.rpm

在安装完所有的相关包以后,以root账号登录,并创建oinstall组和dba组以及oracle用户,并为用户oracle设置密码。

    # groupadd oinstall
    # groupadd dba
    # useradd -g oinstall -G dba oracle
    # passwd oracle

然后以用户oracle的身份登录,设置用户oracle的环境变量。

    # su -oracle
    $ vi .bash_profile

将以下有关环境变量的设置添加在.bash_profile的末尾,从而在用户oracle登录操作系统时,以下的环境变量就立刻生效。

    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
    export ORACLE_SID=ora10g
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

在这里,我们已经创建了一个名为u01的mount点,并在该mout点下创建了app/oracle目录。同时,已经把对该目录/u01/app/oracle的读写权限赋予了用户oracle。我们在设置时应该根据自己的具体情况进行相应的修改。

然后执行以下命令使环境变量生效,当然也可以退出用户oracle然后再次以用户oracle的身份登录,使设置的环境变量生效。

    $ source .bash_profile

注 意 这里对这些环境变量做一个说明。

ORACLE_BASE表示Oracle相关的文件所在的基本目录。这些文件包括Oracle软件和Oracle的其他文件等。

ORACLE_HOME表示Oracle软件所在的目录。

ORACLE_SID则是用来告诉操作系统,当前正在使用的Oracle的实例名是哪个。如果不设置该环境变量,则操作系统并不知道我们要使用哪个Oracle实例。

PATH则是在我们执行命令时,自动搜索的路径。

进入Linux的桌面环境,打开一个terminal,以用户root的身份登录,然后设置DISPLAY环境变量。使用该环境变量来定向传输图形界面上的提示信息和响应信息。如果我们在另外一台主机上登录服务器,从而远程运行安装程序,则需要将DISPLAY设置为我们本地主机的IP地址。比如,如果我们客户端的IP为152.68.32.9,则将DISPLAY设置为:

    # export DISPLAY=152.68.32.9:0.0

或者我们也可以发出如下的命令:

    # xhost +

这表示任何客户端都可以接收服务器图形界面的提示信息和响应信息,这可能会带来一定的安全隐患。

然后,我们转换为用户oracle,并进入Oracle 10g安装介质所在的目录,运行runInstaller便可以打开OUI(Oracle Universal Installer)进行安装了,如图2-1所示。如果我们设置了ORACLE_HOME这个环境变量,则OUI会自动捕获该环境变量,并将其放置在对应的字段上。

    $ ./runInstaller

接下来,单击“Next”按钮,界面如图2-2所示。我们在该界面上,输入产品清单列表所在的目录(也就是Inventory Directory)。如果我们设置了ORACLE_BASE这个环境变量,则OUI会自动把产品清单列表放在名为$ORACLE_BASE/oraInventory目录下。

图2-1 OUI安装界面1

图2-2 OUI安装界面2

继续单击“Next”按钮,界面如图2-3中的①所示。这时OUI会对我们的操作系统以及硬件进行检测,判断我们当前的配置是否能够成功安装Oracle数据库。比如判断我们的内存是否足够、/tmp目录是否足够大等。如果这些条件达不到要求,则会产生告警消息。我们也可以忽略这些消息,直接单击“Next”按钮。这时进入Summary界面,如图2-3中的②所示。

图2-3 OUI安装界面3

该界面中汇总显示了我们在前面安装阶段所进行的选择。我们可以快速地浏览一下,看是否有红色的字迹,如果有则说明可能出现了空间不足等问题。如果没有,则单击“Install”按钮,正式开始安装软件。如图2-3中的③所示。当蓝色的进度条达到100%时则说明软件安装完毕。这时会弹出一个对话框,让我们执行指定的两个脚本,如图2-4中的①所示。

图2-4 OUI安装界面4

从图2-4中的①可以看出,我们需要以用户root的身份分别执行orainstRoot.sh以及root.sh这两个脚本。orainstRoot.sh用来更新最终的产品清单信息;root.sh则根据当前主机的信息生成一些实用脚本,如dbca等。在执行root.sh脚本的过程中,当需要我们输入内容的时候,直接选择回车即可,表示接受Oracle默认的配置。当我们把两个脚本都运行完毕以后,单击图2-4的①中的“OK”按钮,进入安装结束界面。如图2-4中的②所示,在该界面上单击“Exit”按钮,退出OUI界面。

至此,我们就已经成功地在Linux上安装好了Oracle 10g。

如果我们需要在Windows上安装Oracle 10g软件,则要比在Linux上简单得多。不需要像Linux或UNIX那样进行很多的配置,直接双击setup.ext打开OUI即可。打开OUI界面以后,其安装方式与Linux下的OUI界面几乎没有任何区别,这里不再赘述。