服务器 频道

Oracle 10g RAC与SLES9

  【IT168 服务器学院】 1.        安装SLES9。不要安装 认证服务器(NIS、LDAP、Kerberos)。

    2.        为每台服务器的两块网卡提供两个IP地址。一个用于专门网络,一个用于公共网络。

    分别是:node1: 192.168.1.68  10.0.0.1      node2: 192.168.1.69  10.0.0.2

    3.        在YaST中配置本地主机名:n1pub.site.com和n2pub.site.com。

    4.        SLES9下所需的程序包:

    基本运行时系统
    YaST
    图形基本工具
    Linux工具
    KDE桌面环境
    C/C++编译环器和工具(安装操作系统时手工选择)
    Tips:选完全安装即可,省了很多挑选包的繁琐工作

    5.        所需内核:2.6.5-7.97-smp或更高。升级内核到2.6.5-7.155.29-smp。

    # uname –r    //查看内核

    2.6.5-7.155.29-smp

    6.        其他所需程序包的版本(或更高版本):

    make-3.8
    gcc-3.3.3-43
    gcc-c++=3.3.3-43
    libaio-0.3.98-18
    libaio-devel-0.3.98-18
    openmotif-libs-2.2.2-519

    验证已安装的程序包:
        # rpm -q make gcc gcc-c++ libaio libaio-devel openmotif-libs

    第 2 部分 为 Oracle 配置 Linux

    1.        创建 Oracle 组和用户帐户

    用户帐户名是‘oracle’,组是‘oinstall’和‘dba’。 仅在一个集群主机上以 root 用户身份执行以下命令:
    # /usr/sbin/groupadd oinstall
    # /usr/sbin/groupadd dba
    # /usr/sbin/useradd -m -g oinstall -G dba oracle
    # id oracle
    uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)

    用户 ID 和组 ID 在所有集群主机上必须相同。

    使用从 id oracle 命令得到的信息,在其余集群主机上创建 Oracle 组和用户帐户:
    # /usr/sbin/groupadd -g 1000 oinstall
    # /usr/sbin/groupadd -g 1001 dba
    # /usr/sbin/useradd -m -u 1000 -g oinstall -G dba oracle
    # id oracle

    uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)

    设置 oracle 帐户的口令:
    # passwd oracle

    2.        创建挂载点

    以 root 用户身份执行以下命令:
    # mkdir -p /u01/app/oracle
    # chown -R oracle:oinstall /u01/app/oracle
    # chmod -R 775 /u01/app/oracle

    3.        配置内核参数

    以 root 用户身份登录并在每个主机上配置 Linux 内核参数。
    # cat>> /etc/sysctl.conf <<EOF
    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    kernel.shmmin = 4096
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024     65000
    net.core.rmem_default=262144
    net.core.wmem_default=262144
    net.core.rmem_max=262144
    net.core.wmem_max=262144
    EOF
    # /sbin/sysctl -p
    在完成以上步骤之后运行以下命令:
    # /sbin/chkconfig boot.sysctl on

    4.        为 oracle 用户设置 Shell 限制

    Oracle 建议对每个 Linux 帐户可以使用的进程数量和打开文件的数量设置限制。要进行这些更改,以 root 用户身份剪切和粘贴下列命令。

    # cat >> /etc/security/limits.conf <<EOF
    oracle               soft    nproc   16384
    oracle               hard    nproc   16384
    oracle               soft    nofile  65536
    oracle               hard    nofile  65536
    EOF
    //启用资源限制
    # cat >> /etc/pam.d/login <<EOF
    session    required     /lib/security/pam_limits.so
    EOF

    说明:此处soft 值即缺省值 和hard 值上限值相等。有的参考文档描述

    需要生成profile.local ,设置 nproc 和 nofile ,这是不对的,非root

    用户无权ulimit 修改bash资源限制!

    5.        SLES9避免错误

    在 SLES9 上安装 Oracle Enterprise Manager 10g 的一个错误将导致安装因网络端口不可用而失败。OEM DBConsole 需要端口 1830,而在 SLES 环境中,此端口已经预留给 /etc/services。此错误在 MetaLink 上的错误号为 3513603。

    要避免安装过程中出现问题,以 root 用户身份登录,并在安装 Oracle 10g 软件之前将 /etc/services 文件中的端口 1830 应的行注释掉。

    6.        配置 Hangcheck 计时器

    # modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
    # cat >> /etc/init.d/boot.local <<EOF
    modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
    EOF

    7.        配置 /etc/hosts

    有些 Linux 发行版本将主机名与回送地址 (127.0.0.1) 相关联。 如果出现这种情况,则从回送地址中删除主机名。

    用于此指南的 /etc/hosts 文件:
    127.0.0.1                localhost
    10.0.0.1                n1pri.site.com           n1pri
    10.0.0.2                n2pri.site.com            n2pri
    192.168.1.68                n1pub.site.com            n1pub
    192.168.1.69                n2pub.site.com                  n2pub
    192.168.1.66                n1vip.site.com                  n1vip
    192.168.1.67            n2vip.site.com            n2vip

    8.        为用户等效性配置 SSH

    第一步是生成 SSH 的公共密钥和专用密钥。

    在每个主机上,以 oracle 用户身份登录:
    > mkdir ~/.ssh
    > chmod 755 ~/.ssh
    > /usr/bin/ssh-keygen -t rsa
    > /usr/bin/ssh-keygen -t dsa

    第二步将每个主机上的公共密钥文件 id_rsa.pub 和 id_dsa.pub 的内容复制到其他每个主机的 ~/.ssh/authorized_keys 文件中。使用 ssh 第一次访问远程主机时,将提示确认是否希望连接该主机。

    在第一个主机上,以 oracle 用户身份登录:
    > cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    > cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    > ssh oracle@n2pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    > ssh oracle@n2pub cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    > chmod 644 ~/.ssh/authorized_keys

    对第二个主机做同样的处理。这次 SSH 会提示输入在创建密钥时所使用的口令短语而非 oracle 的口令。 这是因为第一个主机 (n1pub) 现在知道了第二个主机的公共密钥,而 SSH 现在使用的是一种不同的认证协议。
    > cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    > cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    > ssh oracle@n1pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    > ssh oracle@n1pub cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    > chmod 644 ~/.ssh/authorized_keys

    9.        建立用户等效性

    以 oracle 用户身份在每个主机上执行命令:
    > exec /usr/bin/ssh-agent $SHELL
    > /usr/bin/ssh-add

    注意,用户等效性仅为当前会话建立。 如果切换到其他会话或注销并重新登录,则必须再次运行 ssh-agent 和 ssh-add 才能重新建立用户等效性。

    10.        测试连通性

    现在应该可以使用 ssh 在其他集群主机上不必输入口令而登录、执行程序和复制文件了。 通过在远程集群主机上运行诸如 hostname 等简单命令来验证用户等效性,如在n2pub上:
    > ssh n1pub hostname

    如果返回如n1pub,则表示正常。

    测试每个方向上所有服务器的连通性。 如在n1pub上:
    > ssh n2pub hostname

    11.        同步时间

    第 3 部分: 准备共享磁盘

    有三种准备共享磁盘以用于 RAC 的方法:

    Oracle 集群文件系统 (OCFS)

    自动存储管理器 (ASM)

    原始设备

    Oracle 自动存储管理器 (ASM)

    1.        首先确定ASMLib的版本。ASMLib 以一套共三个 Linux 程序包的形式提供:

    oracleasmlib — ASM 库
    oracleasm-support — 管理 ASMLib 所需的实用程序
    oracleasm — 用于 ASM 库的内核模块

    以 root 用户身份登录并运行以下命令:
    # uname -rm
    2.6.5-7.155.29-smp i686

    2.        下载与内核版本相应的oracleasm程序包(或者升级内核版本)。下载oracleasmlib 和 oracleasm-support 程序包。

    3.        以 root 用户身份执行以下命令,在每个集群主机上安装这些程序包:

    # rpm -Uvh \
    > oracleasm-2.6.5-7.155.29-smp-2.0.0-1.i586.rpm \
    > oracleasmlib-2.0.0-1.i386.rpm \
    > oracleasm-support-2.0.0-1.i386.rpm
    Preparing...                ########################################### [100%]
       1:oracleasm-support      ########################################### [ 33%]
       2:oracleasm-2.6.5-7.155.2########################################### [ 67%]
       3:oracleasmlib           ########################################### [100%]

    4.        运行配置脚本来准备驱动程序。以 root 用户身份在每个集群主机上运行以下命令并回应提示:

    # /etc/init.d/oracleasm configure
    Default user to own the driver interface []:oracle
    Default group to own the driver interface []:dba
    Start Oracle ASM library driver on boot (y/n) [n]:y
    Fix permissions of Oracle ASM disks on boot (y/n) [y]:y
    Writing Oracle ASM library driver configuration:                     done
    Creating /dev/oracleasm mount point:                                 done
    Loading module "oracleasm":                                          done
    Mounting ASMlib driver filesystem:                                   done
    Scanning system for ASM disks:                                       done

    5.        启用 ASMLib 驱动程序:

    # /etc/init.d/oracleasm enable
    Writing Oracle ASM library driver configuration:                     done
    Scanning system for ASM disks:                                      done

    6.        使用fdisk对磁盘进行分区。

    用途        大小        磁盘设备
    ASM数据区1        600G        dev/sdb
    ASM数据区2        600G        dev/sdc
    Oracle Cluster Registry        200M        dev/sdd1
    Oracle CRS Voting        200M        dev/sdd2

    7.        为 ASM 配置磁盘。注意,这些磁盘应该是不包含任何内容的空磁盘分区。仅从一个集群主机上以 root 用户身份运行以下命令:

    # /etc/init.d/oracleasm createdisk DISK_NAME1 /dev/sdb1
    # /etc/init.d/oracleasm createdisk DISK_NAME2 /dev/sdc1
    …
    Marking disk "/dev/sdb1" as an ASM disk:                             done

    8.        列出标记为由 ASMLib 使用的所有磁盘:

    # /etc/init.d/oracleasm listdisks
    DISK_NAME1
    DISK_NAME2
    ...

    9.        在所有其他集群主机上,以 root 用户身份运行以下命令,扫描所配置的 ASMLib 磁盘:

    # /etc/init.d/oracleasm scandisks

    第 4 部分: 安装 Oracle 软件

    1.1        创建CRS

    1.        在原始设备上创建 Oracle CRS 文件

    目的        大小        磁盘设备        原始设备        文件名
    Oracle ClusterRegistry        500M        dev/sdd1        /dev/raw/raw1        /u02/oracrs/ocr.crs
    Oracle CRS Voting        100M        dev/sdd2        /dev/raw/raw2        /u02/oracrs/vote.crs

    将以下各行添加到每个集群节点上的 /etc/raw:
    raw1:sdd1
    raw2:sdd2

    2.        为每个节点上的 CRS 原始设备设置所有权和权限(严格按照下述配置)

    # chown root:oinstall /dev/raw/raw1
    # chmod 660 /dev/raw/raw1
    # chown oracle:dba /dev/raw/raw2
    # chmod 640 /dev/raw/raw2

    3.        重新启动原始设备服务

    # /etc/init.d/raw start
    bind /dev/raw/raw1 to /dev/sdd1...                                                      done
    bind /dev/raw/raw2 to /dev/sdd2...                                                      done
    bind /dev/raw/raw3 to /dev/sdd3...                                                      done

    4.        让系统启动时启动raw

    # chkconfig raw on

    5.        初始化raw  (500m=524288000, 100m=104857600)

    # dd if=/dev/zero of=/dev/raw/raw1 bs=524288000  ount=1
    # dd if=/dev/zero of=/dev/raw/raw2 bs=104857600  ount=1

    6.        以 oracle 用户身份登录X-Window并建立节点间的用户等效性:

    > exec /usr/bin/ssh-agent $SHELL
    > /usr/bin/ssh-add

    7.        设置 ORACLE_BASE 和 ORACLE_HOME 环境变量:.profile

    > export ORACLE_BASE=/u01/app/oracle
    > export ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1
    > export ORA_CRS_HOME=/u01/app/oracle/crs
    > export LD_ASSUME_KERNEL=2.4.21
    > export LANG=C
    >export PATH=$PATH:$ORACLE_HOME/bin

    8.        在一台主机上(n1pub)以oracle身份登录,安装CRS。挂载包含 CRS 介质的 CD 或文件系统,如果是ship.*.cpio.gz 形式压缩的, 先执行gunzip 加压, 然后执行

    Cpio –idmv <  ship.*.cpio   解压。运行Disk1下的安装脚本, ./runInstaller

    9.        Welcome;单击 Next。

    10.        Specify Inventory Directory and Credentials — 默认值应该就是正确的。确保 inventory 目录位于 ORACLE_BASE 目录中(例如: /u01/app/oracle/oraInventory)并且操作系统组是“oinstall”,在安装节点 (n1pub) 上运行 orainstRoot.sh(确保在 /etc/hosts 中而不仅仅是在 DNS 中配置了您的主机)。

    11.        Specify File Locations — 确认默认值后继续。

    12.        Language Selection — 确认默认值后继续。

    13.        Cluster Configuration — 输入集群名和集群节点名。这里集群名可以取默认值或自己输入。公共节点名和专用节点名在此例中是public:n1pub.site.com和 n2pub.site.com;private:n1pri.site.com和n2pri.site.com。

    14.        Private Interconnect Enforcement — 为每个接口指定接口类型。

    15.        Oracle Cluster Registry — 在 Cluster Specify OCR Location 中,本例为
    /dev/raw/raw1

    16.        Voting Disk — 输入 voting disk 名,本例为 /dev/raw/raw2

    17.        在集群的其余节点上运行 orainstRoot.sh。

    18.        Summary — 在出现提示时单击 Install。

    19.        从安装节点开始,每次在一个节点上运行 Oracle CRS 主目录中的 root.sh,如 /u01/app/oracle/product/10.1.0/crs_1/root.sh。不要同时在不同主机上运行该脚本,等在一台主机上脚本运行结束后再启动另一个。 (su -)

    20.        从 $ORACLE_BASE/product/10.1.0/crs_1/bin 目录中运行 olsnodes 验证安装已成功。例如:
    > cd $ORACLE_BASE/product/10.1.0/crs_1/bin
    > ./olsnodes

    21.        在一台主机安装数据库。从 db CD 运行 ./runInstaller。

    22.        Welcome — 单击 Next。

    23.        Specify File Locations — 确认默认值后继续。

    24.        Specify Hardware Cluster Installation Mode — 选择 Cluster Installation 并选择集群中的其他节点。

    25.        Select Installation Type — Enterprise Edition。

    26.        Product-specific Prerequisite Checks — 全部选 OK。

    27.        Select Database Configuration — 选择“Do not create a starter database”。使用数据库配置助手 (DBCA) 来创建数据库。

    28.        Summary — 在出现提示时单击 Install。

    29.        在安装数据库的节点上运行/u01/app/oracle/product/10.1.0/db_1/root.sh前,必须先执行以下操作:

    # export DISPLAY=:0.0
    # export XAUTHORITY=/home/oracle/.Xauthority

    30.        从安装节点开始,以 root 用户身份登录,每次在一个主机上运行 Oracle 数据库主目录中的 root.sh,本例中为 /u01/app/oracle/product/10.1.0/db_1/root.sh。不要同时在不同主机上运行该脚本,等在一台主机上脚本运行结束后再启动另一个。

    31.        在安装节点上执行 root.sh 脚本期间,将会出现VIPCA。

    32.        Welcome — 单击 Next。

    33.        Network Interfaces — 只选择用于公共网络的接口(在本示例中为 eth0)。 集群中所有主机上的这个接口必须相同。 (如果在安装主机上该接口是 eth0,则在集群中所有其他主机上都必须是 eth0。)

    34.        Virtual IPs for cluster nodes — 输入在 DNS 中所配置的每个主机的虚拟 IP 别名(主机名)和虚拟 IP 地址。

    35.        Summary — 单击 Finish。 VIP 配置助手创建并启动 VIP、GSD 和 ONS 应用程序资源。

    36.        Configuration Results — 检查结果并单击 Exit。 在其他节点上依次运行 root.sh。

    37.        End of Installation — 安装结束。

    38. 在一个节点上Create the TNS Listener Process
    ./netca   (在用户等效性已经建立的session 中执行)

    1.2        创建 Oracle RAC 数据库

    38.        以 oracle 用户身份登录,设置环境。

    > . oraenv
    ORACLE_SID = [oracle] ? *
    ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1

    39.        dbca

    1.        Welcome — 选择“Oracle Real Application Clusters database”

    2.        Operations — 创建数据库

    3.        Node Selection — 单击 Select All(ds1 和 ds2)

    4.        Database Templates — 通用

    5.        Database Identification — 全局数据库名: gemni.orademo.org

    6.        Management Options — 利用 Enterprise Manager 配置数据库;使用数据库控制进行数据库管理

    7.        Database Credentials — 为所有帐户使用相同的口令;输入口令并再次确认

    8.        Storage Options — 自动存储管理 (ASM)

    9.        Create ASM Instance — 设置 SYS 口令并确认;创建初始化参数文件 (IFILE)

    10.        ASM Disk Groups — Create New>Create Disk Group>Disk Group Name (DATA);冗余(正常);更改磁盘发现路径(ORCL:* — 即使磁盘显示为已供应状态,仍然必须输入此项,否则会出错);选择磁盘;输入故障组名;选择新创建的磁盘组

    11.        Database File Locations — 使用 Oracle 管理的文件

    12.        Recovery Configuration — 单击 Next

    13.        Database Content — 示例模式

    14.        Initialization Parameters — 内存、典型 、字符集

    15.        Database Storage — 单击 Next

    16.        Create Options — 选择“Create Database”

    17.        Summary — 检查总结信息并单击 OK

    1.3        设置开机启动数据库和客户端配置

    设置自动启动:

      编辑 /etc/oratab  将实例对应的 N 改为 Y
      编辑 $oracle_home/bin 的dbshut dbhome  dbstart 脚本 设置
       将 ORATAB设置为/etc/oratab

    客户端设置

       NetMgr 或者 netca 配置 TNSServiceName

    地址有2个,分别是n1pub 的虚拟地址192.168.1.66 和n2pub的虚拟地址192.168.1.67

    高级选上 ,随机选取一个尝试,直到成功。 服务名:orcl.site.com ,要跟listener.ora

    描述的一致。服务器类型选数据库默认。

    注意:需要在客户端 hosts文件加上以下2条记录(主要是有重定向):

    192.168.1.68    n1pub  (n1pub 为节点一 上 uname –n 的输出) 
    192.168.1.69    n2pub   (n2pub 为节点二 上 uname –n 的输出)

0
相关文章