您的位置:首页 > 数据库 > Oracle

使用 VMware Server 在 Linux 上安装 Oracle RAC 10g

2013-02-18 11:33 435 查看
如下文档摘自oracle官方网.

作者:Vincent Chan 2007 年 1 月发表
于 10 月份 Oracle OpenWorld 2006 上推介的 Oracle 坚不可摧的 Linux 旨在为 Red Hat Linux 提供企业级支持服务,更快地修复错误,以及显著降低支持价格。此外,Oracle 自己的 Enterprise Linux(基于包含额外错误修补的 Red Hat Advanced Server 第 4 版 (Update 4))提供免费下载

因此,现在可以通过 VMware Server(VMware 提供的一个免费虚拟环境)在家用电脑上免费使用运行在 Red Hat Advanced Server 上的 Oracle 真正应用集群 (RAC) 10g。

VMware Server 允许您在一台物理计算机上运行多个操作系统。每个虚拟机都是一个独立的操作环境,并带有一组自己的虚拟组件,如磁盘、处理器和内存。虚拟技术在计算环境中 十分有用,它允许您在同一物理主机上独立地开发和测试软件以防止数据或软件损坏。VMware 软件广泛地用于服务器整合,以降低总拥有成本并加快应用程序开发和测试周期。

在本指南中,您将了解如何安装和配置两个在 Enterprise Linux 和 VMware Server 上运行 Oracle RAC 10g 第 2 版的节点。注意,本指南仅用于教学/评估目的;Oracle 及其他供应商不会为本配置提供支持。

本指南分为以下几个部分:

硬件要求和概述

配置第一个虚拟机

在第一个虚拟机上配置 Enterprise Linux

创建并配置第二个虚拟机

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

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

安装 Oracle 集群件

安装 Oracle 数据库 10g 第 2 版

探索 RAC 数据库环境

测试透明应用程序故障切换 (TAF)

数据库备份与恢复

探索 Oracle 企业管理器 (OEM) 数据库控制台

常见问题

1. 硬件要求和概述
我使用的环境是:

1 Red Hat Enterprise Linux AS 4 Update 7

2 Visual machine:vmware serve 1.0

3 Host: Winxp

4 Acer laptop 5580 3G

在本指南中,您将安装 32 位 Linux 客户操作系统。只有在主机上运行的以下 64 位处理器支持 64 位客户操作系统:

AMD Athlon 64 修订版 D 或更高版本
AMD Opteron 修订版 E 或更高版本
AMD Turion 64 修订版 E 或更高版本
AMD Sempron 64-bit-capable 修订版 D 或更新的 Intel EM64T VT-capable 处理器

如果您决定安装 64 位客户操作系统,请确定上面列出了您的处理器。您还需要确保在 BIOS 中启用了虚拟技术 (VT)。一些主流制造商在默认情况下禁用了该技术。此处提供了有关处理器兼容性的其他信息。

要验证您的处理器是否受支持,请从 VMware 网站下载处理器兼容性检查工具。

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

主机操作系统环境概况:

主机名 操作系统 处理器 内存 磁盘 网卡 pacu Windows XP Professional Service Pack 2(32 位) Intel Pentium 4 550, 3.4MHz, HT 2 GB DDR2 SDRAM, 533 MHz 250 GB, Ultra ATA/133, 7200 RPM Intel Pro/1000 MT
客户操作系统环境概况:

主机名 操作系统 处理器 内存 rac1 Oracle Enterprise Linux 4(32 位) 1 700 MB rac2 Oracle Enterprise Linux 4(32 位) 1 700 MB
虚拟磁盘布局概况:

主机操作系统上的虚拟磁盘 客户操作系统上的虚拟磁盘 虚拟设备节点 大小 (MB) 描述 d:vmraclocaldisk.vmdk /dev/sda1

/dev/sda2

/dev/sda3 SCSI 0:0 20 “/”挂载点

交换空间

Oracle 二进制文件 d:vmracsharedstorageocfs2disk.vmdk /dev/sdb SCSI 1:0 512 OCFS2 磁盘 d:vmracsharedstorageasmdisk1.vmdk /dev/sdc SCSI 1:1 3072 ASM 磁盘组 1 d:vmracsharedstorageasmdisk2.vmdk /dev/sdd SCSI 1:2 3072 ASM 磁盘组 1 d:vmracsharedstorageasmdisk3.vmdk /dev/sde SCSI
1:3 2048 ASM 闪回恢复区
(要配置共享存储,客户 OS 不能与共享存储共享同一个 SCSI 总线。指定客户 OS 使用 SCSI0,共享磁盘使用 SCSI1。)

RAC 数据库环境概况:

主机名 ASM 实例名 RAC 实例名 数据库名 数据库文件存储 OCR 与表决磁盘 (Voting Disk) rac1 +ASM1 devdb1 devdb ASM OCFS2 rac2 +ASM2 devdb2 devdb ASM OCFS2
您将在每个节点上安装 Oracle 主目录供冗余使用。每个节点上的 ASM 和 Oracle RAC 实例共享同一个 Oracle 主目录。

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

D:>mkdir vmracrac1

D:>mkdir vmracrac2

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

按 CTRL-N 创建一个新的虚拟机。
新建虚拟机向导:单击 Next
选择适当的配置:

虚拟机配置:选择 Custom

选择客户操作系统:

客户操作系统:选择 Linux
版本:选择 Red Hat Enterprise Linux 4

命名虚拟机:

虚拟机名称:输入“rac1”。
位置:输入“d:vmracrac1”。

设置访问权限:

访问权限:选择 Make this virtual machine private

启动/关闭选项:

虚拟机帐户:选择 User that powers on the virtual machine

处理器配置:

处理器:选择一个处理器。

虚拟机内存:

内存:选择 700MB。(最好1G)

网络类型:

网络连接:选择 Use bridged networking

选择 I/O 适配器类型:

I/O 适配器类型:选择 LSI Logic

选择磁盘:

磁盘:选择 Create a new virtual disk

选择磁盘类型:

虚拟磁盘类型:选择 SCSI (Recommended)

指定磁盘容量:

磁盘容量:输入“20GB”。
取消选择 Allocate all disk space now。为了节省空间,您现在不必分配所有磁盘空间。

指定磁盘文件:

磁盘文件:输入“localdisk.vmdk”。
单击 Finish

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

VMware Server 控制台:单击 Edit virtual machine settings
虚拟机设置:单击 Add
新增硬件向导:单击 Next
硬件类型:

硬件类型:选择 Hard Disk

选择磁盘:

磁盘:选择 Create a new virtual disk

选择磁盘类型:

虚拟磁盘类型:选择 SCSI (Recommended)

指定磁盘容量:

磁盘容量:输入“0.5GB”。
选择 Allocate all disk space now。 如果您希望节省空间,则不必分配所有磁盘空间。出于性能方面的考虑,您需要为每个虚拟共享磁盘预先分配所有磁盘空间。特别是在 Oracle 数据库创建期间或者当数据库的 DML 活动较频繁时,如果共享磁盘的大小增长快速,虚拟机可能会间歇挂起一段较短的时间甚至崩溃(这种情况很少见)。

指定磁盘文件:

磁盘文件:输入“d:vmracsharedstorageocfs2disk.vmdk”。
单击 Advanced

新增硬件向导:

虚拟设备节点:选择 SCSI 1:0
模式:选择 Independent,针对所有共享磁盘选择 Persistent
单击 Finish

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

VMware Server 控制台:单击 Edit virtual machine settings
虚拟机设置:单击 Add
新增硬件向导:单击 Next
硬件类型:

硬件类型:以太网适配器。

网络类型:

主机模式:与主机共享的专用网络 (注意这里添加的额外的网卡用的时HOST ONLY模式,前面的是使用bridge模式)
单击 Finish

虚拟机设置:

选择 Floppy 并单击 Remove

虚拟机设置:单击 OK



修改虚拟机配置文件。还需要设置其他参数以启用两个虚拟 RAC 节点之间的磁盘共享。打开配置文件 d:vmracrac1Red Hat Enterprise Linux 4.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:vmracsharedstorageocfs2disk.vmdk"

scsi1:0.mode = "independent-persistent"

scsi1:0.deviceType = "disk"

scsi1:1.present = "TRUE"

scsi1:1.fileName = "D:vmracsharedstorageasmdisk1.vmdk"

scsi1:1.mode = "independent-persistent"

scsi1:1.deviceType = "disk"

scsi1:2.present = "TRUE"

scsi1:2.fileName = "D:vmracsharedstorageasmdisk2.vmdk"

scsi1:2.mode = "independent-persistent"

scsi1:2.deviceType = "disk"

scsi1:3.present = "TRUE"

scsi1:3.fileName = "D:vmracsharedstorageasmdisk3.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因为是安装的Red Hat Enterprise Linux AS 4 Update 7,所以后来需要添加很多需要的package(oracle EL自带了很多包)

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

Enterprise-R4-U4-i386-disc1.iso
Enterprise-R4-U4-i386-disc2.iso
Enterprise-R4-U4-i386-disc3.iso
Enterprise-R4-U4-i386-disc4.iso

在 VMware Server 控制台上,双击右面板上的 CD-ROM 设备,然后选择第 1 张磁盘的 ISO 镜像 Enterprise-R4-U4-i386-disc1.iso。

VMware Server 控制台:(最好以Iinux text 安装会快很多,不要期图形界面)

单击 Start this virtual machine

Enter 键以图形模式安装。
跳过介质测试并启动安装。
欢迎使用 Enterprise Linux:单击 Next
语言选择:<选择语言首选项>。
键盘配置:<选择键盘首选项>。
安装类型:自定义。
磁盘分区设置:使用 Disk Druid 进行手动分区。

警告:单击 Yes 将初始化每个设备 — sda、sdb、sdc、sdd 和 sde。

磁盘设置:通过双击挂载点(/ 和 /u01)和交换空间的 /dev/sda 可用空间来分配 sda 驱动器上的磁盘空间。您稍后将为 OCFS2 和 ASM 配置其余驱动器。

添加分区:

挂载点: /
文件系统类型:ext3
开始柱面: 1
结束柱面: 910

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

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



引导加载程序配置:仅选择默认的 /dev/sda1,其余选项均保留未选中状态。
网络配置:

网络设备

选择并编辑 eth0

取消选择 Configure Using DHCP
选择 Activate on boot
IP 地址:输入“192.168.2.131”。
网络掩码:输入“255.255.255.0”。

选择并编辑 eth1

取消选择 Configure Using DHCP
选择 Activate on boot
IP 地址:输入“10.10.10.31”。
网络掩码:输入“255.255.255.0”。

主机名

选择 manually 并输入“rac1.mycorpdomain.com”。

杂项设置

网关:输入“192.168.2.1”。
首选 DNS:<可选>
备用 DNS:<可选>

防火墙配置:

选择 No Firewall。如果启用了防火墙,当您稍后在设置期间尝试挂载 ocfs2 文件系统时,可能会遇到错误“mount.ocfs2:Transport endpoint is not connected while mounting”。

启用 SELinux 吗?:Active。

警告 — 无防火墙:单击 Proceed
其他语言支持:<选择所需的语言>。
时区选择:<选择您的时区>
设置 Root 口令:<输入您的 root 口令>
程序包组选择:(最好全选)

选择 X Window System
选择 GNOME Desktop Environment
选择 Editors

单击 Details 并选择您偏好的文本编辑器。

选择 Graphical Internet
选择 Text-based Internet
选择 Office/Productivity
选择 Sound and Video
选择 Graphics
选择 Server Configuration Tools
选择 FTP Server
选择 Legacy Network Server

单击 Details

选择 rsh-server
选择 telnet-server

选择 Development Tools
选择 Legacy Software Development
选择 Administration Tools
选择 System Tools。(这些包都要去oracle 自己下)

单击 Details。除了默认选中的程序包外,再选择以下程序包。

选择 ocfs-2-2.6.9-42.0.0.0.1EL(UP 内核驱动程序),或者选择 ocfs-2-2.6.9-42.0.0.0.1ELsmp(SMP 内核驱动程序)。

选择 ocfs2-tools
选择 ocfs2console
选择 oracle oracleasm-2.6.9-42.0.0.0.1EL(UP 内核驱动程序),或者选择
oracleasm-2.6.9-42.0.0.0.1ELsmp
(SMP 内核驱动程序)。
选择 sysstat

选择 Printing Support

准备安装:单击 Next
所需的安装介质:单击 Continue
更 改 CD-ROM:在 VMware Server 控制台上,按 CTRL-D 显示 Virtual Machine Settings。单击 CD-ROM 设备并选择第 2 张磁盘的 ISO 镜像 Enterprise-R4-U4-i386-disc2.iso,然后是第 3 张磁盘的 ISO 镜像 Enterprise-R4-U4-i386-disc3.iso。

安装结束时:

在 VMware Server 控制台上,按 CTRL-D 显示 Virtual Machine Settings。单击 CD-ROM 设备并选择
Use physical drive

单击 Reboot

欢迎页面:单击 Next
许可协议:选择 Yes, I agree to the License Agreement
日期和时间:设置日期和时间。
显示:<选择所需的分辨率>。
系统用户:保留项目为空并单击 Next
其他 CD:单击 Next
完成设置:单击 Next



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

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

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

单击 VM,然后选择 Install VMware Tools
rac1 — 虚拟机:单击 Install
双击桌面上的 VMware Tools 图标。
cdrom:双击 VMwareTools-1.0.1-29996.i386.rpm



完成系统准备:单击 Continue
打开一个终端并执行 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 用户身份同步时间。

执行“vmware-toolbox”以显示 VMware Tools Properties 窗口。在 Options 选项卡下,选择 Time synchronization between the virtual machine and the host operating system。您应该发现 tools.syncTime = "TRUE" 参数已经追加到虚拟机配置文件 d:vmracrac1Red Hat Enterprise Linux 4.vmx 中。

编辑 /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 /export/home/oracle /ocfs

# useradd -d /export/home/oracle -g oinstall -G dba -s /bin/ksh oracle

# chown oracle:dba /export/home/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/app/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:/bin:

/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

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/loginsession required /lib/security/pam_limits.so/etc/profileif [ $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.2.131 rac1.mycorpdomain.com rac1

192.168.2.31 rac1-vip.mycorpdomain.com rac1-vip

10.10.10.31 rac1-priv.mycorpdomain.com rac1-priv

192.168.2.132 rac2.mycorpdomain.com rac2

192.168.2.32 rac2-vip.mycorpdomain.com rac2-vip

10.10.10.32 rac2-priv.mycorpdomain.com 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

三个都要从oracle 下载

为 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
修改 /etc/udev/permissions.d/50-udev.permissions。原 始设备在引导时会重新映射。默认情况下,在引导时原始设备的拥有者将更改为 root 用户。如果拥有者不是 oracle 用户,则 ASM 在访问共享分区时会出现问题。在 /etc/udev/permissions.d/50-udev.permissions 中为原始行“raw/*:root:disk:0660”添加注释,然后添加一个新行“raw/*:oracle:dba:0660”。

/etc/udev/permissions.d/50-udev.permissions

# raw devices

ram*:root:disk:0660

#raw/*:root:disk:0660

raw/*:oracle:dba:0660

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

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

修改网络配置。

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

# shutdown –h now
在主机系统上,将 rac1 文件夹中的所有文件复制到 rac2。

D:>copy d:vmracrac1 d:vmracrac2
在 VMware Server 控制台上,按 CTRL-O 打开第二个虚拟机 d:racrac2Red Hat Enterprise Linux 4.vmx。

VMware Server 控制台:

将虚拟机名称从 rac1 重命名为 rac2。右键单击您刚才打开的新 rac1 选项卡,然后选择 Settings

选择 Options 选项卡。

1. 虚拟机名称:输入“rac2”。



单击 Start this virtual machine 启动 rac2,保留 rac1 为电源关闭状态。
rac2 — 虚拟机:选择 Create a new identifier

以 root 用户身份登录并执行 system-config-network,以修改网络配置。
IP 地址:双击每个以太网设备,并使用下面的表进行必要的更改。

设备 IP 地址 子网掩码 默认网关地址 eth0 192.168.2.132 255.255.255.0 192.168.2.1 eth1 10.10.10.32 255.255.255.0 <保留空白>
MAC 地址:导航到 Hardware Device 选项卡,并探测每个以太网设备的新 MAC 地址。

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

主机名 首选 DNS 备用 DNS DNS 搜索路径 rac2.mycorpdomain.com 输入 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

一定要确认不需要密码就能执行 否则后面从rac1远程安装cluster ware到rac2上的时候会报错.

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)
: 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 磁盘。以 root 用户身份在任何一个节点上创建 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

VOL46. 配置 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

要去oracle 下载

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

# ocfs2console

OCFS2 控制台:选择 Cluster,然后选择 Configure Nodes
“集群堆栈已经启动”:单击 Close
节点配置:单击 Add
新增节点:添加以下节点,然后单击 Apply

名称:rac1
IP 地址: 192.168.2.131
IP 端口: 7777
名称:rac2
IP 地址: 192.168.2.132
IP 端口: 7777

验证生成的配置文件。 # 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 控制台上选择 Cluster
Propagate 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

(很重要的命令,重新启动后应该首先判断这个服务是否开启,状态如何,特别是heartbeat是不是active

一般都是ocfs没有mount上的原因造成没有启动)

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

OCFS2 控制台:选择 Tasks、Format
格式:

可用设备:/dev/sdb1
卷标:oracle
集群大小:Auto
节点插槽数量: 4
块大小:Auto

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 用户身份执行(注销切换到oracle ,这样起安装图形就没有问题)

安装之前最好是用安装目录下的检测工具来检查是否满足安装的要求

../. cluvfy stage -pre crsinst -n rac1,rac2

我安装的时候还差几个gcc 的包 安装好了就可以了

检查的时候会报vips的错误可以忽略,等cluster安装后了以后再设置.

rac1-> /u01/staging/clusterware/runInstaller

欢迎页面:单击 Next
指定 Inventory 目录和证书:

输入 inventory 目录的完整路径:/u01/app/oracle/oraInventory。
指定操作系统组名:oinstall。

指定 Home 详细内容:

名称:OraCrs10g_home
/u01/app/oracle/product/10.2.0/crs_1

特定于产品的必要条件检查:

忽略有关物理内存要求的警告。

指定集群配置:单击 Add

公共节点名称:rac2.mycorpdomain.com
专用节点名称:rac2-priv.mycorpdomain.com
虚拟主机名称:rac2-vip.mycorpdomain.com
最好这里直接用rac1,rac1-priv,rac1-vip来指名节点

指定网络接口用法:

接口名称:eth0
子网: 192.168.2.0
接口类型:Public
接口名称:eth1
子网: 10.10.10.0
接口类型:Private

指定 Oracle 集群注册表 (OCR) 位置:选择 External Redundancy

为了简单起见,这里将不镜像 OCR。在生产环境中,您可能会考虑复用 OCR 以实现更高的冗余。

指定 OCR 位置:/ocfs/clusterware/ocr

指定表决磁盘位置:选择 External Redundancy

同样,为了简单起见,我们选择不镜像表决磁盘。

表决磁盘位置:/ocfs/clusterware/votingdisk

摘要:单击 Install
执行配置脚本:以 root 用户身份按顺序执行以下脚本(一次执行一个)。在当前脚本完成后,再继续执行下一个脚本。

在 rac1 上执行 /u01/app/oracle/oraInventory/orainstRoot.sh。
在 rac2 上执行 /u01/app/oracle/oraInventory/orainstRoot.sh。
在 rac1 上执行 /u01/app/oracle/product/10.2.0/crs_1/root.sh。
在 rac2 上执行 /u01/app/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。

以 root 用户身份在第二个节点上手动调用 VIPCA。

# /u01/app/oracle/product/10.2.0/crs_1/bin/vipca
欢迎页面:单击 Next
网络接口:选择 eth0
集群节点的虚拟 IP:

节点名称:rac1
IP 别名:rac1-vip
IP 地址: 192.168.2.31
子网掩码: 255.255.255.0
节点名称:rac2
IP 别名:rac2-vip
IP 地址: 192.168.2.32
子网掩码: 255.255.255.0

摘要:单击 Finish



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



配置助手:验证所有检查均成功。OUI 在最后会执行集群件安装后检查。如果 CVU 失败,请更正问题,并以 oracle 用户身份重新运行以下命令: rac1-> /u01/app/oracle/product/10.2.0/crs_1/bin/cluvfy stage

-post crsinst -n rac1,rac2

Performing post-checks for cluster services setup

Checking node reachability...

Node reachability check passed from node "rac1".

Checking user equivalence...

User equivalence check passed for user "oracle".

Checking Cluster manager integrity...

Checking CSS daemon...

Daemon status check passed for "CSS daemon".

Cluster manager integrity check passed.

Checking cluster integrity...

Cluster integrity check passed

Checking OCR integrity...

Checking the absence of a non-clustered configuration...

All nodes free of non-clustered, local-only configurations.

Uniqueness check for OCR device passed.

Checking the version of OCR...

OCR of correct Version "2" exists.

Checking data integrity of OCR...

Data integrity check for OCR passed.

OCR integrity check passed.

Checking CRS integrity...

Checking daemon liveness...

Liveness check passed for "CRS daemon".

Checking daemon liveness...

Liveness check passed for "CSS daemon".

Checking daemon liveness...

Liveness check passed for "EVM daemon".

Checking CRS health...

CRS health check passed.

CRS integrity check passed.

Checking node application existence...

Checking existence of VIP node application (required)

Check passed.

Checking existence of ONS node application (optional)

Check passed.

Checking existence of GSD node application (optional)

Check passed.

Post-check for cluster services setup was successful.
安装结束:单击 Exit

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

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

rac1-> /u01/staging/database/runInstaller

欢迎页面:单击 Next
选择安装类型:

选择 Enterprise Edition

指定 Home 详细内容:

名称:OraDb10g_home1
路径:/u01/app/oracle/product/10.2.0/db_1

指定硬件集群安装模式:

选择 Cluster Installation
单击 Select All

特定于产品的必要条件检查:

忽略有关物理内存要求的警告。

选择配置选项:

创建数据库。

选择数据库配置:

选择 Advanced

摘要:单击 Install
数据库模板:

选择 General Purpose

数据库标识:

全局数据库名称:devdb
SID 前缀:devdb

管理选项:

选择 Configure the Database with Enterprise Manager

数据库证书:

针对所有帐户使用相同的口令。

存储选项:

选择 Automatic Storage Management (ASM)

创建 ASM 实例:

SYS 口令:<输入 SYS 口令>。
选择 Create initialization parameter file (IFILE)

ASM 磁盘组:

单击 Create New

创建磁盘组:

创建两个磁盘组 — 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/app/oracle/product/10.2.0/db_1/root.sh。
在 rac2 上执行 /u01/app/oracle/product/10.2.0/db_1/root.sh。

返回到 rac1 的执行配置脚本屏幕,然后单击 OK
安装结束:单击 Exit



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

我装的还是比较顺利的,主要是cluster ware那里因为节点名字的原因导致在远程ssh 安装的时候要输入密码.所以远程安装失败.要么保证那几个ssh xx date命令都需要密码,要么就直接用最简单的节点名字.

其它参考:

Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群

http://www.oracle.com/technology/global/cn/pub/articles/hunter_rac11gr1_iscsi.html

. 探索 RAC 数据库环境

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

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

这个crs_stat 命令本来找不到,which后发现就在安装目录下面.于是env 查看环境变量,发现oracle_crs_home和ora_crs_home写的不对,改掉后ok.

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 YES10. 测试透明故障切换 (TAF)

Oracle TAF 中的故障切换机制使任何失败的数据库连接能够重新连接到集群中的其他节点。故障切换对用户是透明的。Oracle 在故障切换实例上重新执行查询并继续向用户显示余下的结果。

创建一个新的数据库服务。首先,创建一个名为 CRM 的新服务。可以使用 DBCA 或 srvctl 实用程序来创建数据库服务。这里,您将使用 DBCA 在 devdb1 上创建 CRM 服务。

服务名 数据库名 首选实例 可用实例 TAF 策略 CRM devdb devdb1 devdb2 BASIC

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

rac1-> dbca

欢迎页面:选择 Oracle Real Application Clusters database
操作:选择 Services Management
集群数据库列表:单击 Next
数据库服务:单击 Add

添加服务:输入“CRM”。

选择 devdb1 作为首选实例。
选择 devdb2 作为可用实例。
TAF 策略:选择 Basic

单击 Finish



数据库配置助手:单击 No 退出。

数据库配置助手将在 tnsnames.ora 中创建以下 CRM 服务名项:

CRM =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

(LOAD_BALANCE = yes)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = CRM)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(RETRIES = 180)

(DELAY = 5)

)

)

)

SQL> connect system/oracle@devdb1

Connected.

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb, CRM

SQL> connect system/oracle@devdb2

Connected.

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb使用 CRM 服务连接第一个会话。如果 failover_type 和 failover_mode 返回的输出为“NONE”,则验证是否在 tnsnames.ora 中正确配置了 CRM 服务。SQL> connect system/oracle@crm

Connected.

SQL> select

2 instance_number instance#,

3 instance_name,

4 host_name,

5 status

6 from v$instance;

INSTANCE# INSTANCE_NAME HOST_NAME STATUS

---------- ---------------- --------------------- ------------

1 devdb1 rac1.mycorpdomain.com OPEN

SQL> select

2 failover_type,

3 failover_method,

4 failed_over

5 from v$session

6 where username='SYSTEM';

FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER

------------- --------------- ----------------

SELECT BASIC NO从其他会话中关闭该实例。在 CRM 实例上以 sys 用户身份连接,并关闭该实例。rac1-> export ORACLE_SID=devdb1

rac1-> sqlplus / as sysdba

SQL> select

2 instance_number instance#,

3 instance_name,

4 host_name,

5 status

6 from v$instance;

INSTANCE# INSTANCE_NAME HOST_NAME STATUS

---------- ---------------- --------------------- ------------

1 devdb1 rac1.mycorpdomain.com OPEN

SQL> shutdown abort;

ORACLE instance shut down.验证会话已经完成故障切换。从您先前打开的同一 CRM 会话执行以下查询,以验证该会话已经故障切换到其他实例。SQL> select

2 instance_number instance#,

3 instance_name,

4 host_name,

5 status

6 from v$instance;

INSTANCE# INSTANCE_NAME HOST_NAME STATUS

---------- ---------------- --------------------- ------------

2 devdb2 rac2.mycorpdomain.com OPEN

SQL> select

2 failover_type,

3 failover_method,

4 failed_over

5 from v$session

6 where username='SYSTEM';

FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER

------------- --------------- ----------------

SELECT BASIC YES将 CRM 服务重新定位到首选实例。恢复 devdb1 之后,CRM 服务不会自动重新定位到首选实例。您必须手动将服务重新定位到 devdb1。rac1-> export ORACLE_SID=devdb1

rac1-> sqlplus / as sysdba

SQL> startup

ORACLE instance started.

Total System Global Area 209715200 bytes

Fixed Size 1218556 bytes

Variable Size 104859652 bytes

Database Buffers 100663296 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb

rac2-> export ORACLE_SID=devdb2

rac2-> sqlplus / as sysdba

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb, CRM

rac1-> srvctl relocate service -d devdb -s crm -i devdb2 -t devdb1

SQL> connect system/oracle@devdb1

Connected.

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb, CRM

SQL> connect system/oracle@devdb2

Connected.

SQL> show parameter service

NAME TYPE VALUE

------------------------------ ----------- ------------------------

service_names string devdb11. 数据库备份与恢复

使用 Oracle 恢复管理器 (RMAN) 备份和恢复 Oracle RAC 数据库的过程与单实例数据库的备份和恢复过程相同。

在本部分中,您将看到一个非常简单的备份和恢复案例:

1. 执行完整的数据库备份。

2. 在 test_d 表空间中创建 mytable 表。

3. 在 t1 时间,向 mytable 中插入第一个记录。

4 在 t2 时间,向 mytable 中插入第二个记录。

5. 在 t3 时间,删除 mytable 表。

6. 将 test_d 表空间恢复到某个时间点。

7. 验证恢复结果。

执行完整的数据库备份。rac1-> rman nocatalog target /

Recovery Manager: Release 10.2.0.1.0 - Production on Mon Nov 13 18:15:09 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: DEVDB (DBID=511198553)

using target database control file instead of recovery catalog

RMAN> configure controlfile autobackup on;

RMAN> backup database plus archivelog delete input;在 test_d 表空间中创建 mytable 表。19:01:56 SQL> connect system/oracle@devdb2

Connected.

19:02:01 SQL> create table mytable (col1 number) tablespace test_d;

Table created.在 t1 时间,向 mytable 中插入第一个记录。19:02:50 SQL> insert into mytable values (1);

1 row created.

19:02:59 SQL> commit;

Commit complete.在 t2 时间,向 mytable 中插入第二个记录。19:04:41 SQL> insert into mytable values (2);

1 row created.

19:04:46 SQL> commit;

Commit complete.在 t3 时间,删除 mytable 表。19:05:09 SQL> drop table mytable;

Table dropped.将 test_d 表空间恢复到某个时间点。

为辅助数据库创建辅助目录。

rac1-> mkdir /u01/app/oracle/aux

RMAN> recover tablespace test_d

2> until time "to_date('13-NOV-2006 19:03:10','DD-MON-YYYY HH24:MI:SS')"

3> auxiliary destination '/u01/app/oracle/aux';

RMAN> backup tablespace test_d;

RMAN> sql 'alter tablespace test_d online';验证恢复结果。19:15:09 SQL> connect system/oracle@devdb2

Connected.

19:15:16 SQL> select * from mytable;

COL1

----------

112. 探索 Oracle 企业管理器 (OEM) 数据库控制台

Oracle 企业管理器数据库控制台提供了一个非常好的集成式综合 GUI 界面,用于管理集群数据库环境。您可以在控制台内执行几乎所有的任务。

要访问数据库控制台,请打开 Web 浏览器并输入下面的 URL。

以 sysman 用户身份登录,并输入您先前在数据库安装期间选择的口令。
http://rac1:1158/em


启动和停止数据库控制台。rac1-> emctl stop dbconsole

TZ set to US/Eastern

Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0

Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...

... Stopped.

rac1-> emctl start dbconsole

TZ set to US/Eastern

Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0

Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control

................... started.

------------------------------------------------------------------

Logs are generated in directory

/u01/app/oracle/product/10.2.0/db_1/rac1_devdb1/sysman/log验证数据库控制台的状态。rac1-> emctl status dbconsole

TZ set to US/Eastern

Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0

Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
Oracle Enterprise Manager 10g is running.

------------------------------------------------------------------

Logs are generated in directory

/u01/app/oracle/product/10.2.0/db_1/rac1_devdb1/sysman/log

rac1-> emctl status agent

TZ set to US/Eastern

Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0

Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.

---------------------------------------------------------------

Agent Version : 10.1.0.4.1

OMS Version : 10.1.0.4.0

Protocol Version : 10.1.0.2.0

Agent Home : /u01/app/oracle/product/10.2.0/db_1/rac1_devdb1

Agent binaries : /u01/app/oracle/product/10.2.0/db_1

Agent Process ID : 10263

Parent Process ID : 8171

Agent URL : http://rac1.mycorpdomain.com:3938/emd/main
Started at : 2006-11-12 08:10:01

Started by user : oracle

Last Reload : 2006-11-12 08:20:33

Last successful upload : 2006-11-12 08:41:53

Total Megabytes of XML files uploaded so far : 4.88

Number of XML files pending upload : 0

Size of XML files pending upload(MB) : 0.00

Available disk space on upload filesystem : 71.53%

---------------------------------------------------------------

Agent is Running and Ready13. 常见问题

下面是可能对您有用的问题和解决方法摘要列表。

问题 1:无法激活以太网设备。

错误消息为“Cannot activate network device eth0!Device eth0 has different MAC address than expected, ignoring.”

解决方法:

“ifconfig”报告的 MAC 地址与 /etc/sysconfig/network-scripts/ifcfg-eth0 不匹配。您可以使用新的 MAC 地址更新文件,或者只需通过
system-config-network 工具探测新的 MAC 地址。



问题 2:无法生成 OCFS2 配置文件。

在尝试生成 OCFS2 配置文件时,出现错误消息“Could not start cluster stack.This must be resolved before any OCFS2 filesystem can be mounted”。

解决方法:

以 root 用户身份(而非 oracle 用户身份)执行 ocfs2console。



问题 3:无法在远程节点上安装 Oracle 集群件或 Oracle 数据库软件。

在 Oracle 集群件软件安装期间,出现错误消息“/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”。

解决方法:

通过安装 VMware 工具来同步客户 OS 与主机 OS 的时间,并在 /boot/grub/grub.conf 中包含选项“clock=pit nosmp noapic nolapic”。请参阅第 3 部分,以获得更多信息。



问题 4:无法挂载 OCFS2 文件系统。

在尝试挂载 ocfs2 文件系统时,出现错误消息“mount.ocfs2:Transport endpoint is not connected while mounting”。

解决方法:

执行 /usr/bin/system-config-securitylevel 以禁用防火墙。



问题 5:无法启动 ONS 资源。

当 VIPCA 尝试启动 ONS 应用程序资源时,出现错误消息“CRS-0215:Could not start resource ‘ora.rac2.ons’”。

解决方法:

ONS 尝试访问本地主机,但无法解析 IP 地址。将以下项添加到 /etc/hosts 中。

127.0.0.1 localhost

结论

希望通过本指南的学习,您可以免费、快速地使用 VMware Server 构建集群 Oracle 数据库环境。利用免费软件,开始学习并试用 Enterprise Linux 上的 Oracle RAC!

Vincent Chan () 是 MSD Inc. 的高级顾问。他是一位经过 Oracle 认证的高级数据库管理员,拥有十年以上的针对各种客户端设计和实施 Oracle 解决方案的经验。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: