成功之路:ORACLE 11g学习笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.1 准备操作系统

操作系统准备包括下面几个步骤:

下载Oracle 11g R2的安装文件。

硬件检查。

软件检查。

创建用户和组。

创建相应的目录。

修改用户的SHELL的限制。

修改用户的环境配置。

修改内核参数。

注: 外,其他步骤都以操作系统用户root的身份完成(也就是要以root登录服务器)。

1.下载Oracle 11g R2的安装文件

可以从Oracle公司的官方网站http://www.Oracle.com下载安装文件。11g R2共由两个安装文件组成:linux_11gR2_database_1of2.zip与linux_11gR2_database_2of2.zip。

2.硬件检查

硬件检查将要检查内存、交换空间、临时目录/tmp和磁盘空间。

内存检查

执行下面的命令检查服务器内存,Oracle 11g要求最低1GB内存。

    [root@zzp home]# grep MemTotal /proc/meminfo
    MemTotal:     1132672 kB

执行下面的命令查看共享内存的大小。

    [root@zzp home]# df -k /dev/shm/
    Filesystem          1K-blocks     Used Available Use% Mounted on
    tmpfs                 566336        0   566336   0% /dev/shm

交换空间检查

执行下面的命令查看交换空间的大小。Oracle 11g交换空间的要求是:

如果物理内存介于1GB到2GB之间,交换空间应该是物理内存的1.5倍。

如果物理内存介于2GB到16GB之间,交换空间应该是物理内存的1倍。

如果物理内存大于16GB,交换空间也应该大于16GB。

    [root@zzp home]# grep SwapTotal /proc/meminfo
    SwapTotal:    2293752 kB

执行下面的命令可以查看有效的内存和交换空间。

    [root@zzp home]# free
              total      used      free    shared   buffers      cached
    Mem:      1132672    627704    504968         0     67652    382088
    -/+ buffers/cache:    177964    954708
    Swap:     2293752         0   2293752

临时目录/tmp检查

执行下面的命令查看临时目录的大小,临时目录的大小至少是1GB。临时目录和内存通常是越大越好。

    [root@zzp home]# df -k /tmp
    Filesystem          1K-blocks     Used Available Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
                      11839616   4777532   6450964  43% /

磁盘空间检查

执行下面的命令查看磁盘空间的大小,确认是否有足够大的磁盘空间安装Oracle。Oracle对空间的要求,请参考表2-1及表2-2。

表2-1 Linux x86-32 空间要求

表2-2 Linux x86-64 空间要求

    [root@zzp home]# df -k
    Filesystem          1K-blocks     Used Available Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
                      11839616   4777532   6450964  43% /
    /dev/hda1             101086    11987    83880  13% /boot
    tmpfs                 566336        0   566336   0% /dev/shm
    /dev/hdc            2935370  2935370       0 100% /media/RHEL_5.4 i386 DVD
    /dev/hdd1            7224512   4728168   2129360  69% /installfile

3.软件检查

软件检查将进行操作系统检查、内核检查、包的检查。

操作系统检查

执行下面的命令,得到操作系统的发行版本,本例中的发行版本是RedHat Enterprise Linux Server release 5.4,而Oracle要求的版本是RedHat Enterprise Linux 5 Update 2(或者更高版本),说明当前操作系统的版本满足Oracle的安装要求。

    [root@zzp home]# cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 5.4 (Tikanga)

执行下面的命令,还可以获得其他有关操作系统版本的信息。

    [root@zzp home]# lsb_release -a
    LSB   Version:          :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:
graphics-3.1-noarch
    Distributor ID: RedHatEnterpriseServer
    Description:   Red Hat Enterprise Linux Server release 5.4 (Tikanga)
    Release:       5.4
    Codename:      Tikanga

内核检查

执行下面的命令,检查Linux的内核版本,Oracle要求,对RedHat Enterprise Linux 5,内核的版本应该是2.6.18(或者更高),本例中的操作系统内核满足Oracle的安装要求。

    [root@zzp home]# uname -r
    2.6.18-164.el5

包的检查

在RedHat Enterprise Linux 5中,Oracle 11g R2要求系统安装下面的包(或者该包更高的版本)。

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-common-2.5

glibc-devel-2.5

glibc-headers-2.5

ksh-20060214

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.2

libstdc++-4.1.2

libstdc++-devel-4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

使用命令rpm –q查询一个包的存在性。

        [root@zzp ~]# rpm -q elfutils-libelf-0.125
        package elfutils-libelf-0.125 is not installed

从输出可以看出elfutils-libelf-0.125没有安装在系统中,但是,也许该包的高版本已经被安装在系统中,去掉包的版本号,然后进行查询,如下所示:

        [root@zzp ~]# rpm -q elfutils-libelf
        elfutils-libelf-0.137-3.el5

命令执行结果显示,包elfutils-libelf的高版本已经安装在系统中。

如果一个包不存在,我们可以从Linux操作系统的安装盘中获得该包,也可以从网上进行搜索。获得该包以后,把包上传到服务器上,然后进入包所在的路径,使用命令rpm –ivh进行安装,如下所示:

        [root@zzp installfile]# rpm -ivh sysstat-7.0.2-3.el5.i386.rpm
        warning: sysstat-7.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key
ID 37017186
    Preparing...                 ###########################################
[100%]
      1:sysstat                  ###########################################
[100%]

4.创建用户和组

Oracle安装需要在操作中创建3个组和1个操作系统用户:

创建Oracle Inventory组oinstall,oinstall是组的名字:

Oracle Inventory组(Oracle Inventory Group)

    [root@zzp home]#/usr/sbin/groupadd oinstall

数据库管理员组(Database Administrators Group)

创建数据库管理员组dba:

    [root@zzp home]#/usr/sbin/groupadd dba

数据操作员组(Database Operation Group)

创建数据操作员组oper:

    [root@zzp home]#/usr/sbin/groupadd oper

操作系统用户

执行下面命令,创建一个操作系统用户,用户名是oracle,该用户将是Oracle软件安装的拥有者。该用户必须属于Oracle Inventory组(也就是oinstall)。

    [root@zzp home]#/usr/sbin/useradd -g oinstall -G dba,oper oracle

用户oracle属于组oinstall、dba和oper。创建操作系统用户oracle以后,可以执行命令id标识用户的存在性。

    [root@zzp home]# id oracle
    uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

此外,我们还可以使用命令passwd修改用户oracle的密码。

    [root@zzp home]# passwd oracle
    Changing password for user oracle.
    New UNIX password:
    BAD PASSWORD: it does not contain enough DIFFERENT characters
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

5.创建相应的目录

Oracle需要创建5个目录:

Oracle根目录(基目录)

创建Oracle根目录/myoracle/app:

    [root@zzp home]# mkdir -p /myoracle/app

修改目录的属主:

    [root@zzp home]# chown -R oracle:oinstall /myoracle/app

修改目录的读、写、执行权限:

    [root@zzp home]# chmod -R 775 /myoracle/app/

Oracle主目录

创建Oracle主目录/myoracle/app/product/11.2.0/db_1:

    [root@zzp home]# mkdir -p /myoracle/app/product/11.2.0/db_1

修改目录的属主:

    [root@zzp home]# chown oracle:oinstall  /myoracle/app/product/11.2.0/db_1

修改目录的读、写、执行权限:

    [root@zzp home]# chmod 775 /myoracle/app/product/11.2.0/db_1

Inventory目录

创建Inventory目录/myoracle/oraInventory:

    [root@zzp home]# mkdir -p /myoracle/oraInventory

修改目录的属主:

    [root@zzp home]# chown oracle:oinstall  /myoracle/oraInventory

修改目录的读、写、执行权限:

    [root@zzp home]# chmod 775 /myoracle/oraInventory

数据文件目录

创建数据文件目录/myoracle/oradata:

    [root@zzp home]# mkdir /myoracle/oradata

修改目录的属主:

    [root@zzp home]# chown oracle:oinstall /myoracle/oradata

修改目录的读、写、执行权限:

    [root@zzp home]# chmod 775 /myoracle/oradata

闪回区目录

创建闪回区目录/myoracle/oradata:

    [root@zzp home]# mkdir /myoracle/flash_recovery_area

修改目录的属主:

    [root@zzp home]# chown oracle:oinstall /myoracle/flash_recovery_area

修改目录的读、写、执行权限:

    [root@zzp home]# chmod 775 /myoracle/flash_recovery_area

6.修改用户的SHELL的限制

为了提高性能,你需要为用户oracle提高下面SHELL的限制。

编辑文件limits.conf:

    [root@zzp ~]#vi /etc/security/limits.conf

在文件中加入(如果条目不存在)或者修改下面的内容。

    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536

编辑文件login:

    [root@zzp ~]#vi /etc/pam.d/login

在文件中加入(如果条目不存在)或者修改下面的内容。

    session required /lib/security/pam_limits.so
    session required pam_limits.so

编辑文件profile:

    [root@zzp ~]#vi /etc/profile

在文件中加入(如果条目不存在)或者修改下面的内容。

    if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
    fi

7.修改用户的环境配置

注:修改用户oracle的环境变量需要使用用户oracle的身份登录操作系统。

以用户oracle的身份登录操作系统。

    [root@zzp /]# su – oracle

查看当前目录是否在操作系统用户oracle的主目录。

    [oracle@zzp ~]$ pwd
    /home/oracle

找到环境配置文件.bash_profile。

    [oracle@zzp ~]$ ls -a
    .            .bash_profile  .gconfd         .mozilla       .Xauthority
    ..           .bashrc       .gnome2         oradiag_oracle  .zshrc
    .bash_history  .emacs        .gnome2_private  .viminfo
    .bash_logout   .gconf        .kde           .vnc

修改环境配置文件。

    [oracle@zzp ~]$ vi .bash_profile

在该文件中加入下面的内容:

    export ORACLE_BASE=/myoracle/app
    export ORACLE_HOME=/myoracle/app/product/11.2.0/db_1
    export ORACLE_SID=zdb
    export umask=022
    export PATH=$PATH:$ORACLE_HOME/bin

其中,ORACLE_BASE是Oracle的根目录。ORACLE_HOME是Oracle的主目录。ORACLE_SID是实例名(如果要创建数据库)。PATH设置命令的搜索路径。

可以使用下面的命令查看环境变量。

    [oracle@zzp ~]$env

8.修改内核参数

修改内核参数配置文件sysctl.conf:

    [root@zzp ~]vi /etc/sysctl.conf

在该文件中加入如下的内容,下面列出的只是最小值,如果要修改这些内核参数的值,我们输入的值一定要大于或者等于下面的值。

    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 536870912
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048586

为了使修改的内核参数马上生效,应执行下面的命令:

    [root@zzp /]#/sbin/sysctl –p

可以使用类似于下面的命令查看内核参数的值:

    [root@zzp /]#/sbin/sysctl -a | grep kernel.shmmax