在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(10)

在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(10)  

在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(10)
(2007-10-16 17:57:35)
在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(10) - 轩辕剑 - 摸索着前进总比原地踏步好转载
var $tag=''; var $tag_code='7988af85098d516677e3affac7eca2bb'; var $r_quote_bligid='4cbd76e501000b3b'; var $worldcup='0'; var $worldcupball='0'; 分类: oracle_rac


 

格式化 OCFS2 文件系统

注:与本节中其他任务不同,只能在 RAC 集群中的一个节点上创建 OCFS2 文件系统。我将只从 linux1 执行本节中的所有命令。

现在,我们开始使用“在 iSCSI 卷上创建分区”一节中针对 OCFS2 分区的 iSCSI 卷。

注意:需要格外重点注意的是,此时在本文中,在对 iSCSI 卷进行分区以用于 OCFS2(如 /dev/sdb1)后,您可能已经重新引导 linux1 若干次。这意味着从 Openfiler 发现的 iSCSI 目标名映射可能与 linux1 上的本地 SCSI 设备名不同。请重复“发现 iSCSI 目标”一节中所述的过程,以确定重新引导之后是否发现 iSCSI 目标名与 linux1 上的本地 SCSI 设备名不同。

例如,在要用于 OCFS2 的 iSCSI 卷上创建主分区时,我指定 iSCSI 目标名“iqn.2006-01.com.openfiler:rac1.crs”映射到本地 SCSI 设备名 /dev/sdb。然后,在本节前面部分,我必须在禁用 SELinux 后重新引导两个节点。执行完“发现 iSCSI 目标”一节中所述的过程后,我确定“iqn.2006-01.com.openfiler:rac1.crs”现已映射到本地 SCSI 设备名 /dev/sdd。这意味着我将在本节中在分区 /dev/sdd1 上创建 OCFS2 文件系统!请注意,您计算机上的本地 SCSI 设备名很有可能不同。

如果 O2CB 集群处于脱机状态,则启动它。格式化操作要求集群处于联机状态,这是因为它需要确保在集群的某个节点上未挂载该卷。

在本文档的前面部分中,我们在为 OCFS2/集群件创建挂载点一节中创建了目录 /u02/oradata/orcl。本节包含用于创建和安装集群管理器 使用的文件系统 (/u02/oradata/orcl) 的命令。

注意,可以使用 GUI 工具 ocfs2console 或命令行工具 mkfs.ocfs2 创建和安装 OCFS2 文件系统。在 ocfs2console 实用程序中,使用菜单 [Tasks] - [Format]

参见下面有关如何使用命令行工具 mkfs.ocfs2 创建 OCFS2 文件系统的说明。

为创建文件系统,我们使用 Oracle 可执行文件 mkfs.ocfs2。考虑到本示例的目的,我使用映射到 crs 的 iSCSI 卷 /dev/sdd1 的本地 iSCSI 设备名,以 root 用户帐户仅从 linux1 运行以下命令。另请注意,我还指定了一个名为“oracrsfiles”的标签,可在挂载或取消挂载卷时引用:

$ su - # mkfs.ocfs2 -b 4K -C 32K -N 4 -L oracrsfiles /dev/sdd1 mkfs.ocfs2 1.2.4 Filesystem label=oracrsfiles Block size=4096 (bits=12) Cluster size=32768 (bits=15) Volume size=2145943552 (65489 clusters) (523912 blocks) 3 cluster groups (tail covers 977 clusters, rest cover 32256 clusters) Journal size=67108864 Initial number of node slots: 4 Creating bitmaps:done Initializing superblock:done Writing system files:done Writing superblock:done Writing backup superblock:1 block(s) Formatting Journals:done Writing lost+found:done mkfs.ocfs2 successful

挂载 OCFS2 文件系统

现在已经创建了此文件系统,接下来我们便可以载入它了。首先,使用命令行进行挂载,然后我将介绍如何将它包含在 /etc/fstab 中以在每次引导时挂载它。

注:需要使用 OCFS2 标签 oracrsfilesroot 用户帐户在 Oracle RAC 集群中的两个节点上执行文件系统挂载!

首先,此处介绍了如何从命令行手动挂载 OCFS2 文件。注意,需要以 root 用户帐户执行该操作:

$ su -
# mount -t ocfs2 -o datavolume,nointr -L "oracrsfiles" /u02/oradata/orcl

如果挂载成功,您将只是获得提示。但我们应运行以下检查来确保文件系统挂载正确。

首先,使用 mount 命令确保成功挂载了新文件系统。应在 RAC 集群的两个节点上执行该操作:

# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120) configfs on /config type configfs (rw) ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw) /dev/sdd1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local) 

注:请记下我挂载新文件系统所使用的 datavolume 选项。Oracle 数据库用户必须使用 datavolume 挂载选项安装任何将包含表决磁盘文件、集群注册表 (OCR)、数据文件、重做日志、归档日志以及控制文件的卷,以确保 Oracle 进程打开包含 O_DIRECT 标志的文件。nointr 选项确保 I/O 不会由于信号而中断。

不应使用该挂载选项挂载任何其他类型的卷,其中包括 Oracle 主目录(本指南未使用它)。

为什么挂载卷需要花费这么长的时间?挂载一个卷大约需要 5 秒钟。它这样做是为了使心跳线程保持稳定。在以后的版本中,Oracle 计划增加对全局心跳(这将使大多数挂载瞬间完成)的支持。

将 OCFS2 配置为在启动时自动挂载

让我们了解一下到目前为止已经执行的操作。您下载并安装了 OCFS2,它将用于存储集群管理器 文件所需的文件。安装后,您将 OCFS2 模块加载到内核中,然后对集群文件系统进行了格式化。最后,您使用 OCFS2 标签“oracrsfiles”挂载了新建的文件系统。本节将逐步完成在每次使用 OCFS2 标签引导计算机时负责挂载新 OCFS2 文件系统的步骤。

首先将以下行添加到集群中两个 Oracle RAC 节点上的 /etc/fstab 文件中:

LABEL=oracrsfiles /u02/oradata/orcl ocfs2 _netdev,datavolume,nointr 0 0 

注意用于挂载此文件系统的“_netdev”选项。OCFS2 卷必须使用 _netdev 挂载选项。该挂载选项指示将在网络启动后挂载该卷,在关闭网络前卸载该卷。

现在,让我们确保已经加载了 ocfs2.ko 内核模块,并确保将在引导过程中安装文件系统。

如果您遵循了本指南中的示例,则应已经启用了用于加载内核模块并安装 OCFS2 文件系统的操作。但您将仍以 root 用户帐户在集群的两个 Oracle RAC 节点上运行以下命令来检查这些选项:

$ su -
# chkconfig --list o2cb
o2cb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
应把我以粗体标记的标志设置为“ on”。

检查新 OCFS2 文件系统的权限

使用 ls 命令检查所有权。应把权限设置为 0775,并将所有者设置为“oracle”、将组设置为“dba”。

我们来先检查权限:

# ls -ld /u02/oradata/orcl drwxr-xr-x 3 root root 4096 Jun 27 17:44 /u02/oradata/orcl
正如在以上列表中所看到的, oracle 用户帐户(以及 dba 组)将无法写入此目录。我们来解决此问题:
# chown oracle.dba /u02/oradata/orcl # chmod 775 /u02/oradata/orcl 
我们回过头来再次检查集群中两个 Oracle RAC 节点的权限是否正确:
# ls -ld /u02/oradata/orcl drwxrwxr-x 3 oracle dba 4096 Jun 27 17:44 /u02/oradata/orcl

重新引导两个节点

开始介绍下一节之前,最好在此时重新引导 RAC 集群的两个节点。当计算机启动时,确保加载了集群堆栈服务并安装了新的 OCFS2 文件系统:

# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120) configfs on /config type configfs (rw) ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw) /dev/sdd1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local) 

如果修改了 O2CB 心跳阈值,则应验证其是否设置正确:

# cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
61

如何确定 OCFS2 版本

要确定正在运行的 OCFS2 版本,使用:

# cat /proc/fs/ocfs2/version OCFS2 1.2.5 WedMay  2 16:16:08 PDT 2007 (build 0f745576f5282c9408787369d99ba880)  

 


17. 安装和配置自动存储管理 (ASMLib 2.0)

应在集群中的两个 Oracle RAC 节点上执行大多数安装和配置过程!但创建 ASM 磁盘将只需在集群中的单个节点上执行。

在本节中,我们将配置自动存储管理 (ASM),以将其用作所有 Oracle 物理数据库文件(数据、联机重做日志、控制文件、归档重做日志)以及闪回恢复区的文件系统/卷管理器。

Oracle10g 第 1 版中引入了 ASM,用于使管理员不必再管理单个文件和驱动器。ASM 内置在 Oracle 内核中。通过它,DBA 可以全天候管理 Oracle 集群实例的单个实例以集群实例的数千个磁盘驱动器。将把所有要用于 Oracle 的文件和目录包含在磁盘组 中。ASM 跨所有可用磁盘驱动器并行执行负载平衡,以防止热点并最大限度地提高性能(甚至对于快速更改数据使用模式也是如此)。

有两个不同方法可在 Linux 上配置 ASM:


使用 ASMLib I/O 的 ASM:此方法使用 ASMLib 调用在由 ASM 管理的原始块设备 上创建所有 Oracle 数据库文件。由于 ASMLib 使用块设备,因此该方法不需要原始设备。
使用标准 Linux I/O 的 ASM:此方法使用标准 Linux I/O 系统调用在 ASM 管理的原始字符设备 上创建所有 Oracle 数据库文件。您将需要为 ASM 使用的所有磁盘分区创建原始设备。

在本文中,我将使用“使用 ASMLib I/O 的 ASM”方法。Oracle 指出(在Metalink 说明 275315.1 中)“提供的 ASMLib 支持 ASM I/O 用于 Linux 磁盘,无需考虑标准 UNIX I/O API 的限制”。我计划将来执行几个测试以确定使用 ASMLib 会获得的性能增益。这些性能度量和测试细节超出了本文的范围,因此将不予讨论。

如果要了解有关 Oracle ASMLib 2.0 的详细信息,请访问 http://www.oracle.com/technology/tech/linux/asmlib/

安装 ASMLib 2.0 程序包

在本文以前的版本中,此时您需要从 Oracle ASMLib Downloads for Red Hat Enterprise Linux 4 AS 下载 ASMLib 2.0 软件。 ASMLib 2.0 软件包括以下的程序包:


ASMLib 内核驱动程序
oracleasm-x.x.x-xx.EL-x.x.x-x.i686.rpm —(适用于单处理器)
oracleasm-x.x.x-xx.ELsmp-x.x.x-x.i686.rpm —(适用于多处理器)
oracleasm-x.x.x-xx.ELhugemem-x.x.x-x.i686.rpm —(适用于 hugemem)
用户空间库
oracleasmlib-x.x.x-x.i386.rpm
驱动程序支持文件
oracleasm-support-x.x.x-x.i386.rpm

然而,现在不需要下载 ASMLib 软件了,因为它已包括在 Enterprise Linux 中(用户空间库除外,因为它是一个单独的下载)。如果您遵循我所提供的 Enterprise Linux 安装指导,则已经安装了所有内容,这时您将拥有所有 ASMLib 必需的 RPM 程序包(同样,用户空间库除外)。但如果您执行了其他安装类型(即,高级服务器),则可能缺少 ASMLib 程序包并需要安装它们。ASMLib 所需的所有 RPM 都包括在 Enterprise Linux 的 Disk 3 上。为了确定系统上是否安装了 ASMLib,可以在 Oracle RAC 集群的两个节点运行以下命令:

# rpm -qa | grep oracleasm | sort oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELsmp-2.0.3-2 oracleasm-support-2.00.3-2

注意,上面的清单包括适用于三种架构类型(单处理器、hugemem 和多处理器)的 ASMLib 内核驱动程序。默认情况下,Enterprise Linux 与 hugemem 内核一起安装,这意味着只需要 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2。然而,安装了其他两个 ASMLib 内核驱动程序对配置也没有影响。

如果您缺少 ASMLib 程序包并需要安装它们,加载 Enterprise Linux 的 Disk 3 并以 root 用户账户运行以下命令。确保在集群的两个 Oracle RAC 节点上执行该操作。

$ su - # mount -r /media/cdrom # cd /media/cdrom/Enterprise/RPMS # rpm -Uvh oracleasm* warning:oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2.i686.rpm:V3 DSA signature:NOKEY, key ID b38a8516 Preparing... ########################################### [100%] 1:oracleasm-support ########################################### [ 25%] 2:oracleasm-2.6.9-55.0.0.########################################### [ 50%] 3:oracleasm-2.6.9-55.0.0.########################################### [ 75%] 4:oracleasm-2.6.9-55.0.0.########################################### [ 100%] # rpm -qa | grep oracleasm | sort oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELsmp-2.0.3-2 oracleasm-support-2.00.3-2

获取 Oracle ASMLib

正如前一节提到的那样,除了用户空间库(即 ASMLib 支持库)以外,,ASMLib 2.0 软件都包括在 Enterprise Linux 中。用户空间库是必需的,可以在下面的网站上免费下载:


oracleasmlib-2.0.2-1.i386.rpm

将用户空间库下载到集群的两个 Oracle RAC 节点上,然后使用以下命令进行安装:

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

有关通过坚不可摧的 Linux 网络(并非本文的必需)获取 ASMLib 支持库的信息,请访问通过 Unbreakable Linux 网络获得 Oracle ASMLib

配置和加载 ASMLib 2.0 程序包

既然您已经安装了用于 Linux 的 ASMLib 程序包,接下来您需要配置并加载 ASM 内核模块。需要在两个 Oracle RAC 节点上以 root 运行此任务:

$ su - # /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 ] Creating /dev/oracleasm mount point:[OK ] Loading module "oracleasm":[OK ] Mounting ASMlib driver filesystem:[OK ] Scanning system for ASM disks:[OK ]

为 Oracle 创建 ASM 磁盘

创建 ASM 磁盘只需要在 RAC 集群中的一个节点上以 root 用户帐户执行。我将在 linux1 上运行这些命令。在另一个 Oracle RAC 节点上,您将需要执行 scandisk 以识别新卷。该操作完成时,应在两个 Oracle RAC 节点上运行 oracleasm listdisks 命令以验证是否创建了所有 ASM 磁盘以及它们是否可用。

在“在 iSCSI 卷上创建分区”一节中,我们对 ASM 要使用的四个 iSCSI 卷进行了配置(分区)。ASM 将用于存储 Oracle 数据库文件,如联机重做日志、数据库文件、控制文件、归档重做日志以及闪回恢复区。

注意:需要格外重点注意的是,此时在本文中,在对 iSCSI 卷进行分区以用于 ASM(如 /dev/sda/dev/sdb/dev/sdc/dev/sde)后,您可能已经重新引导 linux1 若干次。这意味着从 Openfiler 发现的 iSCSI 目标名映射可能与 linux1 上的本地 SCSI 设备名不同。请重复“发现 iSCSI 目标”一节中所述的过程,以确定重新引导之后是否发现所有四个 ASM 卷的 iSCSI 目标名与 linux1 上的本地 SCSI 设备名不同。

例如,我在配置了 OCFS2 后(前一部分)重新引导了两个 Oracle RAC 节点。我适用于 linux1 的 ASM iSCSI 目标名映射发生了变化,如下所示:

iSCSI 目标名到本地 SCSI 设备名 — (ASM)
iSCSI 目标名称主机/SCSI IDSCSI 设备名称
iqn.2006-01.com.openfiler:rac1.asm40/dev/sda
iqn.2006-01.com.openfiler:rac1.asm31/dev/sde
iqn.2006-01.com.openfiler:rac1.asm22/dev/sdb
iqn.2006-01.com.openfiler:rac1.asm13/dev/sdc

使用上述 iSCSI 目标名映射创建 ASM 磁盘时要使用的本地 SCSI 设备名。


注:如果使用相同硬件(实际上是相同的共享逻辑驱动器)重复本文,则在尝试创建 ASM 磁盘时可能会出现故障。如果确实遇到故障,则尝试使用以下命令列出所有 ASM 磁盘:
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
您可以看到,结果表明我定义了四个 ASM 卷。如果您在之前的运行中已经定义了四个卷,那么使用以下命令将其删除。删除之前创建的卷后,使用“ oracleasm createdisk”命令(如下所示)创建新卷。
# /etc/init.d/oracleasm deletedisk VOL1 Removing ASM disk "VOL1" [ OK ] # /etc/init.d/oracleasm deletedisk VOL2 Removing ASM disk "VOL2" [ OK ] # /etc/init.d/oracleasm deletedisk VOL3 Removing ASM disk "VOL3" [ OK ] # /etc/init.d/oracleasm deletedisk VOL4 Removing ASM disk "VOL4" [ OK ]

要使用 iSCSI 目标名到 SCSI 本地设备名映射(如上所述)创建 ASM 磁盘,键入以下内容:

$ su - # /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1 Marking disk "/dev/sdc1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL2 /dev/sdb1 Marking disk "/dev/sdb1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL3 /dev/sde1 Marking disk "/dev/sde1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL4 /dev/sda1 Marking disk "/dev/sda1" as an ASM disk [ OK ]

在 RAC 集群中的所有其他节点上,您必须执行磁盘扫描程序 以识别新卷:

# /etc/init.d/oracleasm scandisks Scanning system for ASM disks [ OK ]

现在,我们可以使用以下命令在 RAC 集群中的两个节点上以 root 用户帐户的身份测试是否成功创建了 ASM 磁盘:

# /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 VOL4

 


18. 下载 Oracle RAC 10g 软件

只需要在集群中的一个节点上执行以下下载过程!

下一个逻辑步骤是安装 Oracle 集群件第 2 版 (10.2.0.1.0)、Oracle 数据库 10g 第 2 版 (10.2.0.1.0) 以及最终用于 Linux x86 软件的 Oracle 数据库 10g 随附 CD 第 2 版 (10.2.0.1.0)。但我们必须先从 Oracle 技术网 (OTN) 下载并提取所需的 Oracle 软件程序包。

您将从 Oracle 下载所需的软件并将其提取到集群的一个 Linux 节点(即 linux1)上。您将从此计算机执行所有安装。Oracle 安装程序将把所需的软件程序包复制到我们在第 14 节(为远程访问配置 RAC 节点)中用远程访问方法设置的 RAC 配置中的所有其他节点上。

登录到您将从其中以“oracle”用户帐户执行所有 Oracle 安装的节点 (linux1)。在该示例中,您将把所需的 Oracle 软件下载到 linux1 并将其保存到 /u01/app/oracle/orainstall

下载并提取软件

首先,下载 Oracle 集群件第 2 版 (10.2.0.1.0)、Oracle 数据库 10g 第 2 版 (10.2.0.1.0) 以及用于 Linux x86 的 Oracle 数据库 10g 随附 CD 第 2 版 (10.2.0.1.0) 软件。所有下载均在同一页面中提供。

oracle 用户帐户将下载的三个程序包提取到临时目录。在该示例中,我将使用 /u01/app/oracle/orainstall

按如下所示提取 Oracle 集群件程序包:

# su - oracle
$ cd ~oracle/orainstall
$ unzip 10201_clusterware_linux32.zip
然后提取 Oracle 数据库软件:
$ cd ~oracle/orainstall
$ unzip 10201_database_linux32.zip
最后,提取 Oracle 随附 CD 软件:
$ cd ~oracle/orainstall
$ unzip 10201_companion_linux32.zip
 
  

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9606200/viewspace-745645/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9606200/viewspace-745645/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值