| var $tag=''; var $tag_code='22a8742bc15e058aea8012441658f69a'; var $r_quote_bligid='4cbd76e501000b34'; var $worldcup='0'; var $worldcupball='0'; | 分类: oracle_rac |
关于虚拟 IP
10g 中为什么使用虚拟 IP (VIP)?为什么当它的主节点发生故障时它只是返回一个无效的连接?
这全是出于对应用程序可用性的考虑。当一个节点发生故障时,与其关联的 VIP 将被自动故障切换到另外某个节点上。当出现这种情况时,会发生两件事。
这意味着,当客户端向故障节点发出 SQL 时,或者在连接状态下遍历地址列表时,客户端会接收到一个 TCP 重置信息,而不是等待很长的 TCP/IP 超时(大约 10 分钟)。发送 SQL 时,该信息为 ORA-3113。而连接时,使用 tnsname 中的下一个地址。
更进一步的操作是使用透明的应用程序故障切换 (TAF)。成功配置 TAF 后,就可以完全避免 ORA-3113 错误!第 29 节(“透明的应用程序故障切换 - (TAF)”)将更详细地介绍 TAF。
如果不使用 VIP,连接停用节点的客户端经常要等待 10 分钟的 TCP 超时,然后才收到错误信息。因此,如果没有 VIP,用户将不能真正拥有一流的高可用性解决方案(来源 — Metalink 说明 220970.1)。
确保 RAC 节点名没有出现在环回地址中
确保在 /etc/hosts 文件的环回地址中不包含节点名(linux1 或 linux2)。如果机器名出现在环回地址条目中,如下所示:
127.0.0.1 linux1 localhost.localdomain localhost需要按如下所示将其删除:
127.0.0.1 localhost.localdomain localhost
如果 RAC 节点名出现在环回地址中,您在 RAC 安装期间将接收到以下错误信息:
ORA-00603:ORACLE server session terminated by fatal error或者
ORA-29702:error occurred in Cluster Group Service operation
确保在 /etc/hosts 文件中为环回地址定义了本地主机
确保环回地址的 localhost.localdomain 和 localhost 条目包括在每个 Oracle RAC 节点的 /etc/hosts 文件中:
127.0.0.1 localhost.localdomain localhost如果 /etc/hosts 文件中不存在 localhost 条目,Oracle 集群件将不能启动应用程序资源,尤其是 ONS 进程。系统将显示错误信息“Failed to get IP for localhost”,并将其写入到 ONS 日志文件中。例如:
CRS-0215 could not start resource 'ora.linux1.ons'.Check log file "/u01/app/oracle/product/crs/log/linux1/racg/ora.linux1.ons.log" for more details.ONS 日志文件将包括以下类似内容:
Oracle Database 10g CRS Release 10.2.0.1.0 Production Copyright 1996, 2005 Oracle.All rights reserved.
2007-04-14 13:10:02.729: [ RACG][3086871296][13316][3086871296][ora.linux1.ons]:Failed to get IP for localhost (1)
Failed to get IP for localhost (1)
Failed to get IP for localhost (1)
onsctl:ons failed to start
...
调整网络设置
在 Oracle 9.2.0.1 以及更高版本中,Oracle 在 Linux 上使用 UDP 作为进行过程间通信 (IPC) 的默认协议,如在 RAC 集群中实例之间的高速缓存融合和集群管理器缓冲区传输。
Oracle 强烈建议将默认的和最大的发送缓冲区大小(SO_SNDBUF 套接字选项)调整为 256KB,并将默认的和最大的接收缓冲区大小(SO_RCVBUF 套接字选项)调整为 256KB。
接收缓冲区由 TCP 和 UDP 用于保留所接收的数据,直到应用程序读出这些数据为止。由于不允许对端设备发送超过缓冲区大小窗口的数据,因此接收缓冲区不会溢出。这意味着,不适合套接字接收缓冲区的数据报将会被丢弃,从而可能导致发送设备发送的信息淹没接收设备。
您无需重新引导即可在 /proc 文件系统中更改默认的和最大的窗口大小:
# su - root
# sysctl -w net.core.rmem_default=262144
net.core.rmem_default = 262144
# sysctl -w net.core.wmem_default=262144
net.core.wmem_default = 262144
# sysctl -w net.core.rmem_max=262144
net.core.rmem_max = 262144
# sysctl -w net.core.wmem_max=262144
net.core.wmem_max = 262144
以上命令更改正在运行的操作系统。现在,将以下各行程序添加到 RAC 集群中两个节点的 /etc/sysctl.conf 文件中,使以上更改永久生效(针对每次重新引导而言):
# Default setting in bytes of the socket receive buffer net.core.rmem_default=262144 # Default setting in bytes of the socket send buffer net.core.wmem_default=262144 # Maximum socket receive buffer size which may be set by using # the SO_RCVBUF socket option net.core.rmem_max=262144 # Maximum socket send buffer size which may be set by using # the SO_SNDBUF socket option net.core.wmem_max=262144
检查并关闭 UDP ICMP 拒绝
在 Linux 安装期间,我指出不配置防火墙选项。默认情况下,配置防火墙的选项由安装程序选择。这使我吃了好几次苦头,因此我要仔细检查防火墙选项是否未配置,并确保 udp ICMP 过滤已关闭。
如果 UDP ICMP 被防火墙阻塞或拒绝,Oracle 集群件软件将在运行几分钟之后崩溃。如果 Oracle 集群件进程出现故障,您的
_evmocr.log
文件中将出现以下类似内容:
08/29/2005 22:17:19
oac_init:2:Could not connect to server, clsc retcode = 9
08/29/2005 22:17:19
a_init:12!:Client init unsuccessful :[32]
ibctx:1:ERROR:INVALID FORMAT
proprinit:problem reading the bootblock or superbloc 22
如果遇到此类错误,解决方法是删除 udp ICMP (iptables) 拒绝规则,或者只需关闭防火墙选项。之后,Oracle 集群件软件将开始正常工作,而不会崩溃。以下命令应该以
root
用户帐户的身份执行:
# /etc/rc.d/init.d/iptables status
Firewall is stopped.
# /etc/rc.d/init.d/iptables stop
Flushing firewall rules:[ OK ]
Setting chains to policy ACCEPT:filter [ OK ]
Unloading iptables modules:[ OK ]
# chkconfig iptables off
在网络存储服务器 (openfiler1) 上执行以下安装!
在两个 Oracle RAC 节点上进行网络配置之后,下一步是将 Openfiler 软件安装到网络存储服务器 (openfiler1)。在本文的后面部分,会将网络存储服务器配置为 iSCSI 存储设备,以满足所有 Oracle10g RAC 共享存储要求。
Openfiler 由 rPath Linux 驱动,它是一个基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。整个软件包与开放源代码应用程序(例如 Apache、Samba、LVM2、ext3、Linux NFS 和 iSCSI Enterprise Target)连接。Openfiler 将这些随处可见的技术组合到一个易于使用的小型管理解决方案中,该解决方案通过一个基于 Web 且功能强大的管理界面实现。
Openfiler 支持 CIFS、NFS、HTTP/DAV 和 FTP,但是,我仅使用它的 iSCSI 功能为 Oracle10g RAC 需要的共享存储组件实现低成本的 SAN。我们将通过 USB 2.0 接口将一个 500GB 的外置硬盘驱动器连接到 Openfiler 服务器。Openfiler 服务器将配置为使用该磁盘进行基于 iSCSI 的存储,并且将在 Oracle10g RAC 配置中用于存储 Oracle 集群件所需的共享文件以及所有 Oracle ASM 卷。
要了解有关 Openfiler 的更多信息,请访问其网站 http://www.openfiler.com/
下载 Openfiler
请使用下面的链接下载 Openfiler 2.2 x86(respin 2)。下载 Openfiler 之后,需要将 ISO 镜像刻录到 CD。
如果您将以上 ISO 文件下载到 MS Windows 计算机,可以使用多种方法将这些镜像(ISO 文件)刻录到 CD。您可能很熟悉这个过程,甚至已经拥有合适的软件,可以将镜像刻录到 CD。如果您不熟悉这个过程,并且没有将镜像刻录到 CD 所需的软件,这里提供了两个软件程序包(实际上有许多个):
安装 Openfiler
本部分概述了用于安装 Openfiler 软件的各个屏幕。在本文中,我选择了使用所有默认选项安装 Openfiler。所需的唯一手动更改是为了配置本地网络设置。
安装完成之后,服务器将重新引导以确保启动并识别所需的所有组件、服务和驱动程序。重新引导之后,Openfiler 服务器应该将外置硬盘驱动器识别为设备 /dev/sda。
有关更详细的安装说明,请访问 http://www.openfiler.com/docs/。但是,我建议使用下面提供的说明对该 Oracle10g RAC 进行配置。
将 Openfiler 软件安装到网络存储服务器之前,应该先安装两个 NIC 接口(卡),并连接和打开所有外置硬盘驱动器。
在下载并将 Openfiler ISO 镜像(ISO 文件)刻录到 CD 之后,将该 CD 插入网络存储服务器(在本例中是 openfiler1),启动,并按照以下说明来回应安装屏幕的提示。
引导屏幕
第一个屏幕是 Openfiler 引导屏幕。在 boot: 提示符处按 [Enter] 键启动安装过程。
介质测试
当要求测试 CD 介质时,用 Tab 键切换到 [Skip] 并按 [Enter] 键。如果有错误,则介质刻录软件会向我们发出警告。在几秒钟后,安装程序将会检测视频卡、显示器和鼠标。然后安装程序进入 GUI 模式。
Openfiler NAS/SAN Appliance 欢迎屏幕
在欢迎屏幕上,单击 [Next] 继续。
键盘配置
下一个屏幕将提示您进行键盘设置。为您的配置作出合适的选择。
磁盘分区设置
下一个屏幕将询问使用“Automatic Partitioning”还是“Manual Partitioning with Disk Druid”执行磁盘分区。这里,您选择哪种方法都可以,尽管官方 Openfiler 文档建议使用手动分区。由于用于此安装的内置硬盘驱动器很小,并且该驱动器将仅用于存储 Openfiler 软件(我不会将内置 40GB 硬盘驱动器上的任何空间用于 iSCSI 存储),因此我选择使用“Automatic Partitioning”。
选择 [Automatically partition] 并单击 [Next] 继续。
如果以前在本机上安装了 Linux,则下一屏幕将询问您是要“删除”还是“保留”旧分区。选择 [Remove all partitions on this system] 选项。还要确保“仅”为本安装选择了 [hda] 驱动器。我还选中了 [Review (and modify if needed) the partitions created] 复选框。单击 [Next] 继续。
然后显示一个对话窗口,询问您是否真的要删除所有分区。单击 [Yes] 回复这一警告。
分区
随后安装程序将允许您查看(如果需要还可以更改)它自动为 /dev/hda 选择的磁盘分区。几乎所有情况下,安装程序将为 /boot 分配 100MB,为 swap 分配双倍数量的 RAM,而将剩余空间分配给根 (/) 分区。我倾向于至少为 swap 分配 1 GB 的空间。就本安装而言,我将接受所有自动选用的大小。(包括 2GB 的 swap,因为我安装了 1GB 的 RAM。)
网络配置
在启动 Openfiler 安装之前,我已确认在网络存储服务器上安装了两个 NIC 接口(卡)。本屏幕应该已经成功地检测到每个网络设备。
首先,确保将每个网络设备设置为 [Active on boot]。默认情况下,安装程序可能选择不激活 eth1。
第二步,按照以下方法对 eth0 和 eth1 进行 [Edit] 操作。您可能要为 eth0 和 eth1 使用不同的 IP 地址,没问题。但是,您必须将 eth1(存储网络)配置为与 linux1 和 linux2 上的 eth1 位于同一子网中:
eth0:
— 取消选中 [Configure using DHCP] 复选项
— 选中 [Activate on boot]
— IP 地址:192.168.1.195
— 网络掩码: 255.255.255.0
eth1:
— 取消选中 [Configure using DHCP] 复选项
— 选中 [Activate on boot]
— IP 地址:192.168.2.195
— 网络掩码: 255.255.255.0
接着,手动设置您的主机名。我使用的主机名是“openfiler1”。然后提供您的网关和 DNS 服务器,最后关闭该对话框。
时区
下一个屏幕将允许您配置时区信息。为您的位置作出合适的选择。
设置根口令
选择一个根口令,然后单击 [Next] 继续。
关于安装
本屏幕主要是一个确认屏幕。单击 [Next] 开始安装。
恭喜
大功告成。您已经成功地在网络存储服务器上安装了 Openfiler。安装程序将从 CD-ROM 驱动器中弹出 CD。取出 CD,单击 [Reboot] 重新引导系统。
如果在重新引导后一切都已成功,您现在应该看到文本登录屏幕和用于管理 Openfiler 服务器的 URL。
在 Openfiler 服务器上修改 /etc/hosts 文件
虽然并非必要,但我通常会将 /etc/hosts 文件的内容从一个 Oracle RAC 节点复制到新的 Openfiler 服务器。当测试集群网络时可以实现方便的名称解析。
在网络存储服务器 (openfiler1) 上执行以下配置任务!
可以使用 Openfiler Storage Control Center(一个基于浏览器的工具,通过端口 446 上的 https 连接实现)执行 Openfiler 管理。例如:
https://openfiler1:446/
从 Openfiler Storage Control Center 主页,以管理员身份登录。Openfiler 的默认管理员登录凭证为:
管理员看到的第一个页面是 [Accounts] / [Authentication] 屏幕。配置用户帐户和组对本文不是十分重要,因此对此不进行讨论。
要将 Openfiler 用作 iSCSI 存储服务器,我们需要执行三个主要任务:设置 iSCSI 服务、配置网络访问以及创建物理存储。
服务
要控制服务,我们使用 Openfiler Storage Control Center 并导航到 [Services] / [Enable/Disable]:
图 6 启用 iSCSI Openfiler 服务
要启用 iSCSI 服务,单击“iSCSI target”服务名称下面的“Enable”。之后,“iSCSI target”状态应更改为“Enabled”。
ietd 程序将实现 iSCSI Enterprise Target 软件的用户级部分,以便在 Linux 上构建 iSCSI 存储系统。启用 iSCSI 目标之后,我们应该能够通过 SSH 进入 Openfiler 服务器,并看到 iscsi-target 服务正在运行:
[root@openfiler1 ~]# service iscsi-target status ietd (pid 3784) is running...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9606200/viewspace-745639/ ,如需转载,请注明出处,否则将追究法律责任。