ORACLE RAC的搭建

 VMware Server1.0.10加oracle enterprise linux5.5

 

1. 硬件要求和概述

为每个虚拟机至少分配 700MB 内存;为所有虚拟机预留至少 30GB 磁盘空间。

主机操作系统环境概况:

主机名操作系统处理器内存磁盘网卡
pacuWindows XP Professional Service Pack 2(32 位)Intel Pentium 4 550, 3.4MHz, HT2 GB DDR2 SDRAM, 533 MHz250 GB, Ultra ATA/133, 7200 RPMIntel Pro/1000 MT

客户操作系统环境概况:

主机名操作系统处理器内存
rac1Oracle Enterprise Linux 4(32 位)1700 MB
rac2Oracle Enterprise Linux 4(32 位)1700 MB

虚拟磁盘布局概况:

主机操作系统上的虚拟磁盘客户操作系统上的虚拟磁盘虚拟设备节点大小 (MB)描述
d:\vm\rac\localdisk.vmdk/dev/sda1
/dev/sda2
/dev/sda3
SCSI 0:020“/”挂载点
交换空间
Oracle 二进制文件
d:\vm\rac\sharedstorage\ocfs2disk.vmdk/dev/sdbSCSI 1:0512OCFS2 磁盘
d:\vm\rac\sharedstorage\asmdisk1.vmdk/dev/sdcSCSI 1:13072ASM 磁盘组 1
d:\vm\rac\sharedstorage\asmdisk2.vmdk/dev/sddSCSI 1:23072ASM 磁盘组 1
d:\vm\rac\sharedstorage\asmdisk3.vmdk/dev/sdeSCSI 1:32048ASM 闪回恢复区

(要配置共享存储,客户 OS 不能与共享存储共享同一个 SCSI 总线。指定客户 OS 使用 SCSI0,共享磁盘使用 SCSI1。)

RAC 数据库环境概况:

主机名ASM 实例名RAC 实例名数据库名数据库文件存储OCR 与表决磁盘 (Voting Disk)
rac1+ASM1devdb1devdbASMOCFS2
rac2+ASM2devdb2devdbASMOCFS2

您将在每个节点上安装 Oracle 主目录供冗余使用。每个节点上的 ASM 和 Oracle RAC 实例共享同一个 Oracle 主目录。

2. 配置第一个虚拟机

要创建和配置第一个虚拟机,您需要添加虚拟硬件设备,如磁盘和处理器。在继续执行安装之前,请创建以下 windows 文件夹以存放虚拟机和共享存储。

D:\>mkdir vm\rac\rac1
D:\>mkdir vm\rac\rac2
D:\>mkdir vm\rac\sharedstorage

双击桌面上的 VMware Server 图标以启动应用程序:

  1. 按 CTRL-N 创建一个新的虚拟机。
  2. 新建虚拟机向导:单击 Next
  3. 选择适当的配置:
    1. 虚拟机配置:选择 Custom
  4. 选择客户操作系统:
    1. 客户操作系统:选择 Linux
    2. 版本:选择 Red Hat Enterprise Linux 4
  5. 命名虚拟机:
    1. 虚拟机名称:输入“rac1”。
    2. 位置:输入“d:\vm\rac\rac1”。
  6. 设置访问权限:
    1. 访问权限:选择 Make this virtual machine private
  7. 启动/关闭选项:
    1. 虚拟机帐户:选择 User that powers on the virtual machine
  8. 处理器配置:
    1. 处理器:选择一个处理器。
  9. 虚拟机内存:
    1. 内存:选择 700MB
  10. 网络类型:
    1. 网络连接:选择 Use bridged networking
  11. 选择 I/O 适配器类型:
    1. I/O 适配器类型:选择 LSI Logic
  12. 选择磁盘:
    1. 磁盘:选择 Create a new virtual disk
  13. 选择磁盘类型:
    1. 虚拟磁盘类型:选择 SCSI (Recommended)
  14. 指定磁盘容量:
    1. 磁盘容量:输入“20GB”。
    2. 取消选择 Allocate all disk space now。为了节省空间,您现在不必分配所有磁盘空间。
  15. 指定磁盘文件:
    1. 磁盘文件:输入“localdisk.vmdk”。
    2. 单击 Finish

重复步骤 16-24 以创建四个虚拟 SCSI 硬盘 — ocfs2disk.vmdk (512MB)、asmdisk1.vmdk (3GB)、asmdisk2.vmdk (3GB) 和 asmdisk3.vmdk (2GB)。

  1. VMware Server 控制台:单击 Edit virtual machine settings
  2. 虚拟机设置:单击 Add
  3. 新增硬件向导:单击 Next
  4. 硬件类型:
    1. 硬件类型:选择 Hard Disk
  5. 选择磁盘:
    1. 磁盘:选择 Create a new virtual disk
  6. 选择磁盘类型:
    1. 虚拟磁盘类型:选择 SCSI (Recommended)
  7. 指定磁盘容量:
    1. 磁盘容量:输入“0.5GB”。
    2. 选择 Allocate all disk space now。如果您希望节省空间,则不必分配所有磁盘空间。出于性能方面的考虑,您需要为每个虚拟共享磁盘预先分配所有磁盘空间。特别是在 Oracle 数据库创建期间或者当数据库的 DML 活动较频繁时,如果共享磁盘的大小增长快速,虚拟机可能会间歇挂起一段较短的时间甚至崩溃(这种情况很少见)。
  8. 指定磁盘文件:
    1. 磁盘文件:输入“d:\vm\rac\sharedstorage\ocfs2disk.vmdk”。
    2. 单击 Advanced
  9. 新增硬件向导:
    1. 虚拟设备节点:选择 SCSI 1:0
    2. 模式:选择 Independent,针对所有共享磁盘选择 Persistent
    3. 单击 Finish

最后,额外添加一个虚拟网卡以用于专用互联,并移除软盘驱动器(如果有)。

  1. VMware Server 控制台:单击 Edit virtual machine settings
  2. 虚拟机设置:单击 Add
  3. 新增硬件向导:单击 Next
  4. 硬件类型:
    1. 硬件类型:以太网适配器。
  5. 网络类型:
    1. 主机模式:与主机共享的专用网络
    2. 单击 Finish
  6. 虚拟机设置:
    1. 选择 Floppy 并单击 Remove
  7. 虚拟机设置:单击 OK

修改虚拟机配置文件。还需要设置其他参数以启用两个虚拟 RAC 节点之间的磁盘共享。打开配置文件 d:\vm\rac\rac1\Red Hat Enterprise Linux .vmx,并添加下面列出的粗体参数。

config.version = "8"
virtualHW.version = "4"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
memsize = "700"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "localdisk.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.fileName = "A:"
Ethernet0.present = "TRUE"
displayName = "rac1"
guestOS = "rhel4"
priority.grabbed = "normal"
priority.ungrabbed = "normal"

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus = "virtual"

scsi1.present = "TRUE"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\vm\rac\sharedstorage\ocfs2disk.vmdk"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\vm\rac\sharedstorage\asmdisk1.vmdk"
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\vm\rac\sharedstorage\asmdisk2.vmdk"
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "D:\vm\rac\sharedstorage\asmdisk3.vmdk"
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1.virtualDev = "lsilogic"
ide1:0.autodetect = "TRUE"
floppy0.present = "FALSE"
Ethernet1.present = "TRUE"
Ethernet1.connectionType = "hostonly"

3. 在第一个虚拟机上安装并配置 Enterprise Linux

从 Oracle 网站下载 Enterprise Linux 并解压缩文件

Enterprise-R5-U5-Server-i386-dvd

  1. 在 VMware Server 控制台上,双击右面板上的 CD-ROM 设备,然后选择第 1 张磁盘的 ISO 镜像 Enterprise-R5-U5-Server-i386-dvd
  2. VMware Server 控制台:
    • 单击 Start this virtual machine
  3. Enter 键以图形模式安装。
  4. 跳过介质测试并启动安装。
  5. 欢迎使用 Enterprise Linux:单击 Next
  6. 语言选择:<选择语言首选项>。
  7. 键盘配置:<选择键盘首选项>。
  8. 安装类型:自定义。
  9. 磁盘分区设置:使用 Disk Druid 进行手动分区。
    • 警告:单击 Yes 将初始化每个设备 — sda、sdb、sdc、sdd 和 sde。
  10. 磁盘设置:通过双击挂载点(/ 和 /u01)和交换空间的 /dev/sda 可用空间来分配 sda 驱动器上的磁盘空间。您稍后将为 OCFS2 和 ASM 配置其余驱动器。
    • 添加分区:
      • 挂载点: /
      • 文件系统类型:ext3
      • 开始柱面: 1
      • 结束柱面: 910

      • 文件系统类型:Swap
      • 开始柱面: 911
      • 结束柱面: 1170

      • 挂载点:/u01
      • 文件系统类型:ext3
      • 开始柱面: 1171
      • 结束柱面: 2610

  • 引导加载程序配置:仅选择默认的 /dev/sda1,其余选项均保留未选中状态。
  • 网络配置:
    1. 网络设备
      • 选择并编辑 eth0
        1. 取消选择 Configure Using DHCP
        2. 选择 Activate on boot
        3. IP 地址:输入“192.168.1.131”。/* Wilson注: 由于本网卡使用的bridge方式。其IP地址的选择应该和你Windows主机的IP地址在同一个网段。这样windows主机才可能和该Linux虚拟机想通,才可以把Oracle的介质传送到Linux当中。举个例子: 如果你的windows机器的IP地址是192.168.1.5, 那么这里的地址也要设置成192.168.1.xxx,而不是192.168.2.xxx */
        4. 网络掩码:输入“255.255.255.0”。
      • 选择并编辑 eth1
        1. 取消选择 Configure Using DHCP
        2. 选择 Activate on boot
        3. IP 地址:输入“10.10.10.31”。
        4. 网络掩码:输入“255.255.255.0”。
    2. 主机名
      • 选择 manually 并输入“RAC1”。
    3. 杂项设置
      • 网关:输入“192.168.1.1”。
      • 首选 DNS:<可选>
      • 备用 DNS:<可选>
  • 防火墙配置:
    1. 选择 No Firewall。如果启用了防火墙,当您稍后在设置期间尝试挂载 ocfs2 文件系统时,可能会遇到错误“mount.ocfs2:Transport endpoint is not connected while mounting”。
    2. 启用 SELinux 吗?:Active(默认的即可)。
  • 警告 — 无防火墙:单击 Proceed
  • 其他语言支持:<选择所需的语言>。
  • 时区选择:<选择您的时区>
  • 设置 Root 口令:<输入您的 root 口令>
  • 程序包组选择:
    1. 选择 X Window System
    2. 选择 GNOME Desktop Environment
    3. 选择 Editors
      • 单击 Details 并选择您偏好的文本编辑器。
    4. 选择 Graphical Internet
    5. 选择 Text-based Internet
    6. 选择 Office/Productivity
    7. 选择 Sound and Video
    8. 选择 Graphics
    9. 选择 Server Configuration Tools
    10. 选择 FTP Server
    11. 选择 Legacy Network Server
      • 单击 Details
        1. 选择 rsh-server
        2. 选择 telnet-server
    12. 选择 Development Tools
    13. 选择 Legacy Software Development
    14. 选择 Administration Tools
    15. 选择 System Tools
      • 单击 Details。除了默认选中的程序包外,再选择以下程序包。
        1. 选择 ocfs-2-2.6.9-42.0.0.0.1EL(UP 内核驱动程序),或者选择 ocfs-2-2.6.9-42.0.0.0.1ELsmp(SMP 内核驱动程序)。
        2. 选择 ocfs2-tools
        3. 选择 ocfs2console
        4. 选择 oracle oracleasm-2.6.9-42.0.0.0.1EL(UP 内核驱动程序),或者选择 oracleasm-2.6.9-42.0.0.0.1ELsmp(SMP 内核驱动程序)。
        5. 选择 sysstat
    16. 选择 Printing Support
  • 准备安装:单击 Next
  • 所需的安装介质:单击 Continue

    Enterprise-R4-U4-i386-disc2.iso,然后是第 3 张磁盘的 ISO 镜像 Enterprise-R4-U4-i386-disc3.iso。

  • 安装结束时:
    1. 在 VMware Server 控制台上,按 CTRL-D 显示 Virtual Machine Settings。单击 CD-ROM 设备并选择 Use physical drive
    2. 单击 Reboot
  • 欢迎页面:单击 Next
  • 许可协议:选择 Yes, I agree to the License Agreement
  • 日期和时间:设置日期和时间。
  • 显示:<选择所需的分辨率>。
  • 系统用户:保留项目为空并单击 Next
  • 其他 CD:单击 Next
  • 完成设置:单击 Next

    恭喜,您已经在 VMware Server 上安装了 Enterprise Linux!

    安装 VMware 工具。VMware 工具要求同步主机和客户机的时间。

    在 VMware 控制台上,以 root 用户身份登录。

    1. 单击 VM,然后选择 Install VMware Tools
    2. rac1 — 虚拟机:单击 Install
    3. 双击桌面上的 VMware Tools 图标。
    4. cdrom:双击 VMwareTools-1.0.1-29996.i386.rpm
    5. 可以解压。tar.gz包(tar -zxvf vmwareTools-.....tar.gz)

     

    1. 完成系统准备:单击 Continue
    2. 打开一个终端并执行 vmware-config-tools.pl
      • 输入所需的显示大小。
    同步客户 OS 与主机 OS 的时间。在安装 Oracle 集群件和 Oracle 数据库软件时,Oracle 安装程序将首先在本地节点上安装软件,然后再将软件远程复制到远程节点。如果两个 RAC 节点的日期和时间未同步,您可能会收到类似于以下内容的错误。
    "/bin/tar: ./inventory/Components21/oracle.ordim.server/10.2.0.1.0: time 
    stamp  2006-11-04 06:24:04 is 25 s in the future"
    要确保成功安装 Oracle RAC,虚拟机上的时间必须与主机上的时间同步。执行下面的步骤,以 root 用户身份同步时间。
    1. 执行“vmware-toolbox”以显示 VMware Tools Properties 窗口。/* Wilson注:vmware-toolbox是一个可执行文件,直接在Terminal窗口中以root身份敲vmware-toolbox就可以执行它了 */ 在 Options 选项卡下,选择Time synchronization between the virtual machine and the host operating system。您应该发现 tools.syncTime = "TRUE" 参数已经追加到虚拟机配置文件 d:\vm\rac\rac1\Red Hat Enterprise Linux 4.vmx 中。
    2. 编辑 /boot/grub/grub.conf,并将选项“clock=pit nosmp noapic nolapic”添加到读取内核 /boot/ 的那一行。您已经将选项添加到两个内核,现在只需对特定内核进行更改。
      #boot=/dev/sda
      default=0
      timeout=5
      splashimage=(hd0,0)/boot/grub/splash.xpm.gz
      hiddenmenu
      title Enterprise (2.6.9-42.0.0.0.1.ELsmp)
              root (hd0,0)
              kernel /boot/vmlinuz-2.6.9-42.0.0.0.1.ELsmp ro 
      root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic
              initrd /boot/initrd-2.6.9-42.0.0.0.1.ELsmp.img
      title Enterprise-up (2.6.9-42.0.0.0.1.EL)
              root (hd0,0)
              kernel /boot/vmlinuz-2.6.9-42.0.0.0.1.EL ro root=LABEL=/ 
      rhgb quiet clock=pit nosmp noapic nolapic
              initrd /boot/initrd-2.6.9-42.0.0.0.1.EL.img
      

    重新引导 rac1。

    reboot

    创建 oracle 用户。 以 root 用户身份执行

    # groupadd oinstall
    # groupadd dba
    # mkdir -p /u01/oracle /ocfs
    # useradd -d /u01/oracle -g oinstall -G dba -s /bin/bash oracle
    # chown oracle:dba /u01/oracle /u01
    # passwd oracle
    New Password:
    Re-enter new Password:
    passwd: password successfully changed for oracle
    

    创建 oracle 用户环境文件。

    /export/home/oracle/.profile

    export PS1="`/bin/hostname -s`-> "
    export EDITOR=vi
    export ORACLE_SID=devdb1
    export ORACLE_BASE=/u01/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
    export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
    umask 022
    

    创建文件系统目录结构。以 oracle 用户身份执行

    rac1-> mkdir p $ORACLE_BASE/admin 
    rac1-> mkdir p $ORACLE_HOME
    rac1-> mkdir p $ORA_CRS_HOME
    rac1-> mkdir -p /u01/oradata/devdb
    

    提高 Oracle 用户的 shell 限制。使用文本编辑器将下面列出的行添加到 /etc/security/limits.conf、/etc/pam.d/login 和 /etc/profile。

    /etc/security/limits.conf

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

    /etc/pam.d/login

    session required /lib/security/pam_limits.so
    

    /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
    

    安装 Enterprise Linux 软件程序包。安装 Oracle 软件需要以下附加程序包。如果您已经安装了 64 位版本的 Enterprise Linux,则安装程序应该已安装了这些程序包。

    • libaio-0.3.105-2.i386.rpm
    • openmotif21-2.1.30-11.RHEL4.6.i386.rpm

    从 ISO CD 解压缩这些程序包,并以 root 用户身份执行下面的命令。

    # ls
    libaio-0.3.105-2.i386.rpm  openmotif21-2.1.30-11.RHEL4.6.i386.rpm
    #
    # rpm -Uvh *.rpm
    warning: libaio-0.3.105-2.i386.rpm: V3 DSA signature: NOKEY, key ID b38a8516
    Preparing...                
    ########################################### [100%]
       1:openmotif21            
    ########################################### [ 50%]
       2:libaio                 
    ########################################### [100%]
    

    配置内核参数。使用文本编辑器将下面列出的行添加到 /etc/sysctl.conf。要使更改立即生效,请执行 /sbin/sysctl –p

    # more  /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
    net.core.rmem_default        = 1048576
    net.core.rmem_max            = 1048576
    net.core.wmem_default        = 262144
    net.core.wmem_max            = 262144
    

    修改 /etc/hosts 文件。

    # more /etc/hosts
    127.0.0.1               localhost
    192.168.1.131           rac1       
    192.168.1.31            rac1-vip
    10.10.10.31             rac1
    192.168.1.132           rac2
    192.168.1.32            rac2-vip
    10.10.10.32             rac2-priv
    

    配置 hangcheck timer 内核模块。hangcheck timer 内核模块可监控系统的运行情况,并重新启动出现故障的 RAC 节点。它使用两个参数,即 hangcheck_tick(定义系统检查频率)和 hangcheck_margin(定义在重置 RAC 节点前的最大挂起延时)来确定节点是否出现故障。

    在 /etc/modprobe.conf 中添加以下行,以设置 hangcheck 内核模块参数。

    /etc/modprobe.conf
    options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

    要立即加载模块,执行“modprobe -v hangcheck-timer”。

    为 OCFS2 和 Oracle ASM 创建磁盘分区。为 OCFS2 (/dev/sdb) 和 Oracle ASM(/dev/sdc、/dev/sdd、/dev/sde)准备一组原始磁盘。

    在 rac1 上,以 root 用户身份执行

    # fdisk /dev/sdb

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-512, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-512, default 512):
    Using default value 512
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    # fdisk /dev/sdc

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-391, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-391, default 391):
    Using default value 391
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    # fdisk /dev/sdd

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-391, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-391, default 391):
    Using default value 391
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    # fdisk /dev/sde

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-261, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):
    Using default value 261
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    # fdisk -l

    Disk /dev/sda: 21.4 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1         910     7309543+  83  Linux
    /dev/sda2             911        1170     2088450   82  Linux swap
    /dev/sda3            1171        2610    11566800   83  Linux
    
    Disk /dev/sdb: 536 MB, 536870912 bytes
    64 heads, 32 sectors/track, 512 cylinders
    Units = cylinders of 2048 * 512 = 1048576 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         512      524272   83  Linux
    
    Disk /dev/sdc: 3221 MB, 3221225472 bytes
    255 heads, 63 sectors/track, 391 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1               1         391     3140676   83  Linux
    
    Disk /dev/sdd: 3221 MB, 3221225472 bytes
    255 heads, 63 sectors/track, 391 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdd1               1         391     3140676   83  Linux
    
    Disk /dev/sde: 2147 MB, 2147483648 bytes
    255 heads, 63 sectors/track, 261 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sde1               1         261     2096451   83  Linux
    

    安装 oracleasmlib 程序包。 从 OTN 下载 ASM 库,并以 root 用户身份安装 ASM RPM。

     # rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm
    Preparing...                
    ########################################### [100%]
       1:oracleasmlib           
    ########################################### [100%]
    

    在这个阶段,您应该已经安装了以下 ASM 程序包。

    [root@rac1 swdl]# rpm -qa | grep oracleasm
    oracleasm-support-2.0.3-2
    oracleasm-2.6.9-42.0.0.0.1.ELsmp-2.0.3-2
    oracleasmlib-2.0.2-1
    

    为 ASM 磁盘映射原始设备。仅当您打算使用标准 Linux I/O 创建 ASM 磁盘时,才需要原始设备映射。创建 ASM 磁盘的另一个方法是使用 Oracle 提供的 ASM 库驱动程序。稍后,您将使用 ASM 库驱动程序配置 ASM 磁盘。

    执行以下任务,将原始设备映射到先前创建的共享分区。每次引导集群节点时,原始设备都必须与块设备绑定。

    将以下行添加到 /etc/sysconfig/rawdevices 中。

    /etc/sysconfig/rawdevices

    /dev/raw/raw1 /dev/sdc1
    /dev/raw/raw2 /dev/sdd1
    /dev/raw/raw3 /dev/sde1
    

    要使映射立即生效,以 root 用户身份执行以下命令:

    # /sbin/service rawdevices restart
    Assigning devices:
               /dev/raw/raw1  -->   /dev/sdc1
    /dev/raw/raw1:  bound to major 8, minor 33
               /dev/raw/raw2  -->   /dev/sdd1
    /dev/raw/raw2:  bound to major 8, minor 49
               /dev/raw/raw3  -->   /dev/sde1
    /dev/raw/raw3:  bound to major 8, minor 65
    done
    
    # chown oracle:dba /dev/raw/raw[1-3]
    # chmod 660 /dev/raw/raw[1-3]
    # ls -lat /dev/raw/raw*
    crw-rw----  1 oracle dba 162, 3 Nov  4 07:04 /dev/raw/raw3
    crw-rw----  1 oracle dba 162, 2 Nov  4 07:04 /dev/raw/raw2
    crw-rw----  1 oracle dba 162, 1 Nov  4 07:04 /dev/raw/raw1
    

    以 oracle 用户身份执行

    rac1-> ln -sf /dev/raw/raw1 /u01/oradata/devdb/asmdisk1
    rac1-> ln -sf /dev/raw/raw2 /u01/oradata/devdb/asmdisk2
    rac1-> ln -sf /dev/raw/raw3 /u01/oradata/devdb/asmdisk3
    

     

    配置裸设备
    由于RHEL5中取消了rawdevices,如果不想将映射命令放到rc.local中的话,我们就需要将其配置到/etc/udev/rules.d/文件夹中
    修改文件
    [root@RAC1 ~]# vi /etc/udev/rules.d/60-raw.rules

    增加如下内容:
    ACTION=="add", KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
    ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
    ACTION=="add", KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"
    ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"
    ACTION=="add", KERNEL=="/dev/sdd1",RUN+="/bin/raw /dev/raw/raw3 %N"
    ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"
    KERNEL=="raw[1-4]", OWNER="oracle", GROUP="oinstall", MODE="640"

    4. 创建并配置第二个虚拟机

    要创建第二个虚拟机,只需关闭第一个虚拟机,将 d:\vm\rac\rac1 中的所有文件复制到 d:\vm\rac\rac2,然后更改几个配置即可。

    修改网络配置。
    1. 在 rac1 上,以 root 用户身份执行
      # shutdown –h now
    2. 在主机系统上,将 rac1 文件夹中的所有文件复制到 rac2。
      D:\>copy d:\vm\rac\rac1 d:\vm\rac\rac2
    3. 在 VMware Server 控制台上,按 CTRL-O 打开第二个虚拟机 d:\rac\rac2\Red Hat Enterprise Linux.vmx。
    4. VMware Server 控制台:
      • 将虚拟机名称从 rac1 重命名为 rac2。右键单击您刚才打开的新 rac1 选项卡,然后选择 Settings
        • 选择 Options 选项卡。
          1. 虚拟机名称:输入“rac2”。

    • 单击 Start this virtual machine 启动 rac2,保留 rac1 为电源关闭状态。
    • rac2 — 虚拟机:选择 Create a new identifier
    1. 以 root 用户身份登录并执行 system-config-network,以修改网络配置。

      IP 地址:双击每个以太网设备,并使用下面的表进行必要的更改。

      设备IP 地址子网掩码默认网关地址
      eth0192.168.1.132255.255.255.0192.168.1.1
      eth110.10.10.32255.255.255.0<保留空白>

      MAC 地址:导航到 Hardware Device 选项卡,并探测每个以太网设备的新 MAC 地址。

      主机名和 DNS:使用下面的表对 DNS 选项卡中的项进行必要的更改,然后按 CTRL-S 保存。

      主机名首选 DNS备用 DNSDNS 搜索路径
      RAC2输入 DNS IP 地址或保留空白。输入 DNS IP 地址或保留空白。接受默认设置或保留空白。

      最后,激活每个以太网设备。

    修改 /etc/hosts。将以下项添加到 /etc/hosts 中。

    127.0.0.1 localhost

    稍后,在 Oracle 集群件软件安装期间,VIPCA 将尝试使用回送地址。

    修改 /export/home/oracle/.profile。用 devdb2 替换 ORACLE_SID 的值。

    使用 SSH 建立用户等效性。在集群就绪服务 (CRS) 和 RAC 安装过程中,Oracle Universal Installer (OUI) 必须能够以 oracle 的身份将软件复制到所有 RAC 节点,而不提示输入口令。在 Oracle 10g 中,可以使用 ssh 代替 rsh 完成此操作。

    要建立用户等效性,请在两个节点上以 oracle 用户身份生成用户的公钥和私钥。打开 rac1 的电源,在这两个节点上执行以下任务。
    在 rac1 上执行

    rac1-> mkdir ~/.ssh
    rac1-> chmod 700 ~/.ssh
    rac1-> ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/export/home/oracle/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /export/home/oracle/.ssh/id_rsa.
    Your public key has been saved in /export/home/oracle/.ssh/id_rsa.pub.
    The key fingerprint is:
    87:54:4f:92:ba:ed:7b:51:5d:1d:59:5b:f9:44:da:b6 oracle@rac1.mycorpdomain.com
    rac1-> ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/export/home/oracle/.ssh/id_dsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /export/home/oracle/.ssh/id_dsa.
    Your public key has been saved in /export/home/oracle/.ssh/id_dsa.pub.
    The key fingerprint is:
    31:76:96:e6:fc:b7:25:04:fd:70:42:04:1f:fc:9a:26 oracle@rac1.mycorpdomain.com	
    

    在 rac2 上执行

    rac2-> mkdir ~/.ssh
    rac2-> chmod 700 ~/.ssh
    rac2-> ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/export/home/oracle/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /export/home/oracle/.ssh/id_rsa.
    Your public key has been saved in /export/home/oracle/.ssh/id_rsa.pub.
    The key fingerprint is:
    29:5a:35:ac:0a:03:2c:38:22:3c:95:5d:68:aa:56:66 oracle@rac2.mycorpdomain.com
    rac2-> ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/export/home/oracle/.ssh/id_dsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /export/home/oracle/.ssh/id_dsa.
    Your public key has been saved in /export/home/oracle/.ssh/id_dsa.pub.
    The key fingerprint is:
    4c:b2:5a:8d:56:0f:dc:7b:bc:e0:cd:3b:8e:b9:5c:7c oracle@rac2.mycorpdomain.com
    

    在 rac1 上执行

    rac1-> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    rac1-> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    rac1-> ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    The authenticity of host 'rac2 (192.168.2.132)' can't be established.
    RSA key fingerprint is 63:d3:52:d4:4d:e2:cb:ac:8d:4a:66:9f:f1:ab:28:1f.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'rac2,192.168.2.132' (RSA) to the list of known hosts.
    oracle@rac2's password:
    rac1-> ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    oracle@rac2's password:
    rac1-> scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
    oracle@rac2's password:
    authorized_keys                           100% 1716     1.7KB/s   00:00
    

    在每个节点上测试连接。验证当您再次运行以下命令时,系统是否不提示您输入口令。

    ssh rac1 date
    ssh rac2 date
    ssh rac1-priv date
    ssh rac2-priv date
    ssh rac1.mycorpdomain.com date
    ssh rac2.mycorpdomain.com date
    ssh rac1-priv.mycorpdomain.com date
    ssh rac2-priv.mycorpdomain.com date
    

    5. 配置 Oracle 自动存储管理 (ASM)

    Oracle ASM 与 Oracle 数据库紧密集成在一起,并与 Oracle 的数据管理工具套件配合工作。它可以简化数据库存储管理,并提供原始磁盘 I/O 的性能。

    配置 ASMLib。以 root 用户身份在两个节点上配置 ASMLib。

    # /etc/init.d/oracleasm configure
    Configuring the Oracle ASM library driver.
    
    This will configure the on-boot properties of the Oracle ASM library
    driver.  The following questions will determine whether the driver is
    loaded on boot and what permissions it will have.  The current values
    will be shown in brackets ('[]').  Hitting  without typing an
    answer will keep that current value.  Ctrl-C will abort.
    
    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:           [  OK  ]
    Loading module "oracleasm":                                [  OK  ]
    Mounting ASMlib driver filesystem:                         [  OK  ]
    Scanning system for ASM disks:                             [  OK  ]
    

    创建 ASM 磁盘。以 ro 以 root 用户身份执行theadot 用户身份在任何一个节点上创建 ASM 磁盘。

    # /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
    Marking disk "/dev/sdc1" as an ASM disk:                   [  OK  ]
    # /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
    Marking disk "/dev/sdd1" as an ASM disk:                   [  OK  ]
    # /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
    Marking disk "/dev/sde1" as an ASM disk:                   [  OK  ]
    Verify that the ASM disks are visible from every node. 
    # /etc/init.d/oracleasm scandisks
    Scanning system for ASM disks:                      [  OK  ]
    # /etc/init.d/oracleasm listdisks
    VOL1
    VOL2
    VOL3
    

     

    6. 配置 Oracle 集群文件系统 (OCFS2)

    OCFS2 是 Oracle 开发的一个通用集群文件系统,与 Enterprise Linux 内核集成在一起。它允许所有节点在集群文件系统上同时共享文件,因而消除了管理原始设备的需求。这里,您将在 OCFS2 文件系统中寄宿 OCR 和表决磁盘。您可以从 OCFS2 用户指南获取有关 OCFS2 的其他信息。

    在 Enterprise Linux 安装期间,您应该已经安装了 OCFS2 RPM。验证 RPM 是否已经安装在两个节点上。

    rac1-> rpm -qa | grep ocfs
    ocfs2-tools-1.2.2-2
    ocfs2console-1.2.2-2
    ocfs2-2.6.9-42.0.0.0.1.ELsmp-1.2.3-2
    

    创建 OCFS2 配置文件。 在 rac1 上,以 root 用户身份执行

    # ocfs2console
    1. OCFS2 控制台:选择 Cluster,然后选择 Configure Nodes
    2. “集群堆栈已经启动”:单击 Close
    3. 节点配置:单击 Add
    4. 新增节点:添加以下节点,然后单击 Apply
      • 名称:rac1
      • IP 地址: 192.168.2.131
      • IP 端口: 7777
      • 名称:rac2
      • IP 地址: 192.168.2.132
      • IP 端口: 7777
    5. 验证生成的配置文件。
      # more /etc/ocfs2/cluster.conf
      node:
              ip_port = 7777
              ip_address = 192.168.2.131
              number = 0
              name = rac1
              cluster = ocfs2
      
      node:
              ip_port = 7777
              ip_address = 192.168.2.132
              number = 1
              name = rac2
              cluster = ocfs2
      
      cluster:
              node_count = 2
              name = ocfs2
      
  • 将配置文件传播到 rac2。您可以在 rac2 上重新运行上述步骤以生成配置文件,或者在 rac1 的 OCFS2 控制台上选择 ClusterPropagate Configuration 以将配置文件传播到 rac2。

    配置 O2CB 驱动程序。O2CB 是一组集群服务,负责管理节点与集群文件系统之间的通信。下面是对各个服务的说明:

    • NM:用于跟踪 cluster.conf 中的所有节点的节点管理器
    • HB:当节点加入或离开集群时向上/向下发出通知的心跳服务
    • TCP:处理节点之间的通信
    • DLM:用于跟踪所有锁、这些锁的所有者以及状态的分布式锁管理器
    • CONFIGFS:在 /config 中挂载的用户空间驱动的配置文件系统
    • DLMFS:用户空间与内核空间 DLM 的接口

    在两个节点上执行下面的过程,将 O2CB 配置为在引导时启动。

    当系统提示您指定心跳死亡阈值时,您必须指定一个大于 7 的值,以防止节点由于较慢的 IDE 磁盘驱动器而崩溃。心跳死亡阈值是一个用于计算隔离时间的变量。

    Fence time (seconds) = (heartbeat dead threshold -1) * 2

    在我们的环境中,120 秒的隔离时间很合适。两个节点上的心跳死亡阈值应该完全相同。

    以 root 用户身份执行

    # /etc/init.d/o2cb unload
    Stopping O2CB cluster ocfs2: OK
    Unmounting ocfs2_dlmfs filesystem: OK
    Unloading module "ocfs2_dlmfs": OK
    Unmounting configfs filesystem: OK
    Unloading module "configfs": OK
    
    # /etc/init.d/o2cb configure
    Configuring the O2CB driver.
    
    This will configure the on-boot properties of the O2CB driver.
    The following questions will determine whether the driver is loaded on
    boot.  The current values will be shown in brackets ('[]').  Hitting
     without typing an answer will keep that current value.  Ctrl-C
    will abort.
    
    Load O2CB driver on boot (y/n) [y]: y
    Cluster to start on boot (Enter "none" to clear) [ocfs2]:
    Specify heartbeat dead threshold (>=7) [7]: 61
    Writing O2CB configuration: OK
    Loading module "configfs": OK
    Mounting configfs filesystem at /config: OK
    Loading module "ocfs2_nodemanager": OK
    Loading module "ocfs2_dlm": OK
    Loading module "ocfs2_dlmfs": OK
    Mounting ocfs2_dlmfs filesystem at /dlm: OK
    Starting O2CB cluster ocfs2: OK
    

    格式化文件系统。在格式化和挂载文件系统之前,应验证 O2CB 在两个节点上均联机;O2CB 心跳当前没有活动,因为文件系统未挂载。

    # /etc/init.d/o2cb status
    Module "configfs": Loaded
    Filesystem "configfs": Mounted
    Module "ocfs2_nodemanager": Loaded
    Module "ocfs2_dlm": Loaded
    Module "ocfs2_dlmfs": Loaded
    Filesystem "ocfs2_dlmfs": Mounted
    Checking O2CB cluster ocfs2: Online
    Checking O2CB heartbeat: Not active
    

    您只需在一个节点上格式化文件系统。在 rac1 上,以 root 用户身份执行

    # ocfs2console
    1. OCFS2 控制台:选择 Tasks、Format
    2. 格式:
      • 可用设备:/dev/sdb1
      • 卷标:oracle
      • 集群大小:Auto
      • 节点插槽数量: 4
      • 块大小:Auto
    3. OCFS2 控制台:按 CTRL-Q 退出。

    挂载文件系统。要挂载文件系统,在两个节点上执行以下命令。

    # mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs

    要在引导时挂载文件系统,在两个节点的 /etc/fstab 中添加以下行。

    /etc/fstab

    /dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0

    创建 Oracle 集群件目录。在 OCR 和表决磁盘将驻留的 OCFS2 文件系统中创建目录。

    在 rac1 上执行

    # mkdir /ocfs/clusterware
    # chown -R oracle:dba /ocfs 
    

    现在,您已经完成了 OCFS2 的设置。验证您可以在两个节点的共享集群文件系统上读写文件。

    7. 安装 Oracle 集群件

    下载后,在 rac1 上以 oracle 用户身份执行

    将cluster软件解压到、u01目录下

    unzip  /rpm/10........zip

    chmod -R oracle:dba /clusterware

    rac1-> /u01/clusterware/runInstaller[/etc/redhat-release  把里面的5.5版本改为4.0 ,这样oracle 10g才支持]
    1. 欢迎页面:单击 Next
    2. 指定 Inventory 目录和证书:
      • 输入 inventory 目录的完整路径:/u01/oracle/oraInventory。
      • 指定操作系统组名:oinstall。
    3. 指定 Home 详细内容:
      • 名称:OraCrs10g_home
      • /u01/oracle/product/10.2.0/crs_1
    4. 特定于产品的必要条件检查:
      • 忽略有关物理内存要求的警告。
    5. 指定集群配置:单击 Add
      • 公共节点名称:rac2
      • 专用节点名称:rac2-priv
      • 虚拟主机名称:rac2-vip
      • 指定网络接口用法:
      • 接口名称:eth0
      • 子网: 192.168.1.1
      • 接口类型:Public
      • 接口名称:eth1
      • 子网: 10.10.10.0
      • 接口类型:Private
    6. 指定 Oracle 集群注册表 (OCR) 位置:选择 External Redundancy
      为了简单起见,这里将不镜像 OCR。在生产环境中,您可能会考虑复用 OCR 以实现更高的冗余。
      • 指定 OCR 位置:/ocfs/clusterware/ocr
    7. 指定表决磁盘位置:选择 External Redundancy
      同样,为了简单起见,我们选择不镜像表决磁盘。
      • 表决磁盘位置:/ocfs/clusterware/votingdisk
    8. 摘要:单击 Install
    9. 执行配置脚本:以 root 用户身份按顺序执行以下脚本(一次执行一个)。在当前脚本完成后,再继续执行下一个脚本。
      • 在 rac1 上执行 /u01/oracle/oraInventory/orainstRoot.sh。
      • 在 rac2 上执行 /u01/oracle/oraInventory/orainstRoot.sh。
      • 在 rac1 上执行 /u01/oracle/product/10.2.0/crs_1/root.sh。
      • 在 rac2 上执行 /u01/oracle/product/10.2.0/crs_1/root.sh。
      rac2 上的 root.sh 脚本会自动调用 VIPCA,但会因为“The given interface(s), "eth0" is not public.Public interfaces should be used to configure virtual IPs.”错误而失败。如果您的公共接口使用不可路由的 IP 地址 (192.168.x.x),则 Oracle 集群验证实用程序 (CVU) 将无法找到合适的公共接口。一种解决方法是手动运行 VIPCA。
    10. 以 root 用户身份在第二个节点上手动调用 VIPCA。
      # /u01/oracle/product/10.2.0/crs_1/bin/vipca
    11. 欢迎页面:单击 Next
    12. 网络接口:选择 eth0
    13. 集群节点的虚拟 IP:
      • 节点名称:rac1
      • IP 别名:rac1-vip
      • IP 地址: 192.168.1.31
      • 子网掩码: 255.255.255.0
      • 节点名称:rac2
      • IP 别名:rac2-vip
      • IP 地址: 192.168.1.32
      • 子网掩码: 255.255.255.0
    14. 摘要:单击 Finish

  • 配置助手进度对话框:配置完成后,单击 OK
  • 配置结果:单击 Exit
  • 返回到 rac1 的执行配置脚本屏幕,然后单击 OK

     

    8. 安装 Oracle 数据库 10g 第 2 版

    下载后,在 rac1 上以 oracle 用户身份执行

    rac1-> /u01/database/runInstaller
    1. 欢迎页面:单击 Next
    2. 选择安装类型:
      • 选择 Enterprise Edition
    3. 指定 Home 详细内容:
      • 名称:OraDb10g_home1
      • 路径:/u01/oracle/product/10.2.0/db_1
    4. 指定硬件集群安装模式:
      • 选择 Cluster Installation
      • 单击 Select All
    5. 特定于产品的必要条件检查:
      • 忽略有关物理内存要求的警告。
    6. 选择配置选项:
      • 创建数据库。
    7. 选择数据库配置:
      • 选择 Advanced
    8. 摘要:单击 Install
    9. 数据库模板:
      • 选择 General Purpose
    10. 数据库标识:
      • 全局数据库名称:devdb
      • SID 前缀:devdb
    11. 管理选项:
      • 选择 Configure the Database with Enterprise Manager
    12. 数据库证书:
      • 针对所有帐户使用相同的口令。
    13. 存储选项:
      • 选择 Automatic Storage Management (ASM)
    14. 创建 ASM 实例:
      • SYS 口令:<输入 SYS 口令>。
      • 选择 Create initialization parameter file (IFILE)
    15. ASM 磁盘组:
      • 单击 Create New
    16. 创建磁盘组:
      创建两个磁盘组 — DG1 和 RECOVERYDEST。
      • 磁盘组名称:DG1
      • 选择 Normal 冗余。
      • 选择磁盘路径 ORCL:VOL1 和 ORCL:VOL2。如果您已经使用标准 Linux I/O 配置了 ASM 磁盘,则请选择 /u01/oradata/devdb/asmdisk1 和 /u01/oradata/devdb/asmdisk2。
      • 单击 OK

    • 磁盘组名称:RECOVERYDEST。
    • 选择 External 冗余。
    • 选择磁盘路径 ORCL:VOL3。如果您已经使用标准 Linux I/O 配置了 ASM 磁盘,则请选择 /u01/oradata/devdb/asmdisk3。
    • 单击 OK

     

    ASM 磁盘组:单击 Next

  • 数据库文件位置:
    • 选择 Use Oracle-Managed Files
      • 数据库区域:+DG1
  • 恢复配置:
    • 选择 Specify Flash Recovery Area
      • 闪回恢复区:+RECOVERYDEST
      • 闪回恢复区大小:1500M
    • 选择 Enable Archiving
  • 数据库内容:
    • 选择或取消选择示例模式。
  • 数据库服务:
    • 单击 Next。稍后,您可以使用 DBCA 或 srvctl 创建或修改其他服务。
  • 初始化参数:
    • 选择 Custom
      • 共享内存管理:Automatic
      • SGA 大小:200MB
      • PGA 大小:25MB
    • b. 根据需要修改其余参数。
  • 数据库存储:单击 Next
  • 创建选项:
    • 选择 Create Database
    • 单击 Finish
  • 摘要:单击 OK
  • 数据库配置助手:单击 Exit

  • 执行配置脚本:以 root 用户身份执行下面的脚本。
    • 在 rac1 上执行 /u01/oracle/product/10.2.0/db_1/root.sh。
    • 在 rac2 上执行 /u01/oracle/product/10.2.0/db_1/root.sh。
  • 返回到 rac1 的执行配置脚本屏幕,然后单击 OK
  • 安装结束:单击 Exit

    恭喜,您已经在 Enterprise Linux 上成功安装了 Oracle RAC 数据库 10g

    9. 探索 RAC 数据库环境

    现在,您已经成功安装了虚拟双节点 RAC 数据库,下面我们来探究一下您刚刚配置的环境。

    检查应用程序资源的状态。

    rac1-> crs_stat -t
    Name           Type           Target    State     Host
    ------------------------------------------------------------
    ora.devdb.db   application    ONLINE    ONLINE    rac1
    ora....b1.inst application    ONLINE    ONLINE    rac1
    ora....b2.inst application    ONLINE    ONLINE    rac2
    ora....SM1.asm application    ONLINE    ONLINE    rac1
    ora....C1.lsnr application    ONLINE    ONLINE    rac1
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1
    ora.rac1.ons   application    ONLINE    ONLINE    rac1
    ora.rac1.vip   application    ONLINE    ONLINE    rac1
    ora....SM2.asm application    ONLINE    ONLINE    rac2
    ora....C2.lsnr application    ONLINE    ONLINE    rac2
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2
    ora.rac2.ons   application    ONLINE    ONLINE    rac2
    ora.rac2.vip   application    ONLINE    ONLINE    rac2
    
    rac1-> srvctl status nodeapps -n rac1
    VIP is running on node: rac1
    GSD is running on node: rac1
    Listener is running on node: rac1
    ONS daemon is running on node: rac1
    	
    rac1-> srvctl status nodeapps -n rac2
    VIP is running on node: rac2
    GSD is running on node: rac2
    Listener is running on node: rac2
    ONS daemon is running on node: rac2
    
    rac1-> srvctl status asm -n rac1
    ASM instance +ASM1 is running on node rac1.
    
    rac1-> srvctl status asm -n rac2
    ASM instance +ASM2 is running on node rac2.	
    
    rac1-> srvctl status database -d devdb
    Instance devdb1 is running on node rac1
    Instance devdb2 is running on node rac2
    
    rac1-> srvctl status service -d devdb
    rac1->
    

    检查 Oracle 集群件的状态。

    rac1-> crsctl check crs
    CSS appears healthy
    CRS appears healthy
    EVM appears healthy
    
    rac2-> crsctl check crs
    CSS appears healthy
    CRS appears healthy
    EVM appears healthy
    

    在命令行执行 crsctl 以查看所有可用选项。

    列出 RAC 实例。

    SQL> select
      2  instance_name,
      3  host_name,
      4  archiver,
      5  thread#,
      6  status
      7  from gv$instance;
    
    INSTANCE_NAME  HOST_NAME             ARCHIVE  THREAD# STATUS
    -------------- --------------------- ------- -------- ------
    devdb1         rac1.mycorpdomain.com STARTED        1 OPEN
    devdb2         rac2.mycorpdomain.com STARTED        2 OPEN
    

    检查连接。

    验证您能够连接到每个节点上的实例和服务。

    sqlplus system@devdb1
    sqlplus system@devdb2
    sqlplus system@devdb
    

    检查数据库配置。

    rac1-> export ORACLE_SID=devdb1
    rac1-> sqlplus / as sysdba
    
    SQL> show sga
    
    Total System Global Area  209715200 bytes
    Fixed Size                  1218556 bytes
    Variable Size             104859652 bytes
    Database Buffers          100663296 bytes
    Redo Buffers                2973696 bytes
    
    
    SQL> select file_name,bytes/1024/1024 from dba_data_files;
    
    FILE_NAME                                   BYTES/1024/1024
    ------------------------------------------- ---------------
    +DG1/devdb/datafile/users.259.606468449                   5
    +DG1/devdb/datafile/sysaux.257.606468447                240
    +DG1/devdb/datafile/undotbs1.258.606468449               30
    +DG1/devdb/datafile/system.256.606468445                480
    +DG1/devdb/datafile/undotbs2.264.606468677               25
    	
    
    	SQL> select
      	  2  group#,
      	  3  type,
      	  4  member,
      	  5  is_recovery_dest_file
      	  6  from v$logfile
      	  7  order by group#;
    
    GROUP# TYPE    MEMBER                                              IS_
    ------ ------- --------------------------------------------------- ---
         1 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_1.257.606468581 YES
         1 ONLINE  +DG1/devdb/onlinelog/group_1.261.606468575          NO
         2 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_2.258.606468589 YES
         2 ONLINE  +DG1/devdb/onlinelog/group_2.262.606468583          NO
         3 ONLINE  +DG1/devdb/onlinelog/group_3.265.606468865          NO
         3 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_3.259.606468875 YES
         4 ONLINE  +DG1/devdb/onlinelog/group_4.266.606468879          NO
         4 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_4.260.606468887 YES
    
    
    rac1-> export ORACLE_SID=+ASM1
    rac1-> sqlplus / as sysdba
    
    SQL> show sga
    
    Total System Global Area   92274688 bytes
    Fixed Size                  1217884 bytes
    Variable Size              65890980 bytes
    ASM Cache                  25165824 bytes
    
    
    SQL> show parameter asm_disk
    
    NAME                           TYPE        VALUE
    ------------------------------ ----------- ------------------------
    asm_diskgroups                 string      DG1, RECOVERYDEST
    asm_diskstring                 string
    
    
    SQL> select
      2  group_number,
      3  name,
      4  allocation_unit_size alloc_unit_size,
      5  state,
      6  type,
      7  total_mb,
      8  usable_file_mb
      9  from v$asm_diskgroup;
    
                           ALLOC                        USABLE
     GROUP                  UNIT                 TOTAL    FILE
    NUMBER NAME             SIZE STATE   TYPE       MB      MB
    ------ ------------ -------- ------- ------ ------ -------
         1 DG1           1048576 MOUNTED NORMAL   6134    1868
         2 RECOVERYDEST  1048576 MOUNTED EXTERN   2047    1713
    
    
    SQL> select
      2  name,
      3  path,
      4  header_status,
      5  total_mb free_mb,
      6  trunc(bytes_read/1024/1024) read_mb,
      7  trunc(bytes_written/1024/1024) write_mb
      8  from v$asm_disk;
    
    NAME  PATH       HEADER_STATU    FREE_MB    READ_MB   WRITE_MB
    ----- ---------- ------------ ---------- ---------- ----------
    VOL1  ORCL:VOL1  MEMBER             3067        229       1242
    VOL2  ORCL:VOL2  MEMBER             3067        164       1242
    VOL3  ORCL:VOL3  MEMBER             2047         11        354
    

    创建表空间。

    SQL> connect system/oracle@devdb
    Connected.
    SQL> create tablespace test_d datafile '+DG1' size 10M;
    
    Tablespace created.
    
    SQL> select
      2  file_name,
      3  tablespace_name,
      4  bytes
      5  from dba_data_files
      6  where tablespace_name='TEST_D';
    
    FILE_NAME                                TABLESPACE_NAME      BYTES
    ---------------------------------------- --------------- ----------
    +DG1/devdb/datafile/test_d.269.606473423 TEST_D            10485760
    

    创建在线重做日志文件组。

    SQL> connect system/oracle@devdb
    Connected.
    SQL> alter database add logfile thread 1 group 5 size 50M;
    
    Database altered.
    
    SQL> alter database add logfile thread 2 group 6 size 50M;
    
    Database altered.
    
    SQL> select
      2  group#,
      3  thread#,
      4  bytes,
      5  members,
      6  status
      7  from v$log;
    
        GROUP#    THREAD#      BYTES    MEMBERS STATUS
    ---------- ---------- ---------- ---------- ----------------
             1          1   52428800          2 CURRENT
             2          1   52428800          2 INACTIVE
             3          2   52428800          2 ACTIVE
             4          2   52428800          2 CURRENT
             5          1   52428800          2 UNUSED
             6          2   52428800          2 UNUSED
    
    SQL> select
      	  2  group#,
      	  3  type,
      	  4  member,
      	  5  is_recovery_dest_file
      	  6  from v$logfile
    	  7  where group# in (5,6)
      	  8  order by group#;
    
    GROUP# TYPE    MEMBER                                               IS_
    ------ ------- ---------------------------------------------------- ---
         5 ONLINE  +DG1/devdb/onlinelog/group_5.271.606473683           NO
         5 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_5.261.606473691  YES
         6 ONLINE  +DG1/devdb/onlinelog/group_6.272.606473697           NO
         6 ONLINE  +RECOVERYDEST/devdb/onlinelog/group_6.262.606473703  YES
    

     

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的集群相比,还是与普通的oracle数据库相比,RAC都有一些独特之处。 RAC由至少两个节点组成,节点之间通过公共网络和私有网络连接,其中私有网络的功能是实现节点之间的通信,而公共网络的功能是提供用户的访问。在每个节点上分别运行一个Oracle数据库实例和一个监听器,分别监听一个IP地址上的用户请求,这个地址称为VIP(Virtual IP)。用户可以向任何一个VIP所在的数据库服务器发出请求,通过任何一个数据库实例访问数据库。Clusterware负责监视每个节点的状态,如果发现某个节点出现故障,便把这个节点上的数据库实例和它所对应的VIP以及其他资源切换到另外一个节点上,这样可以保证用户仍然可通过这个VIP访问数据库。 在普通的Oracle数据库中,一个数据库实例只能访问一个数据库,而一个数据库只能被一个数据库实例打开。在RAC环境中,多个数据库实例同时访问同一个数据库,每个数据库实例分别在不同的节点上运行,而数据库存放在共享的存储设备上。 通过RAC,不仅可以实现数据库的并发访问,而且可以实现用户访问的负载均衡。用户可以通过任何一个数据库实例访问数据库,实例之间通过内部通信来保证事务的一致性。例如,当用户在一个实例修改数据时,需要对数据加锁。当另一个用户在其他实例中修改同样的数据时,便需要等待锁的释放。当前一个用户提交事务时,后一个用户立即可以得到修改之后的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值