下列已知问题和错误会影响 Oracle Solaris Cluster 3.3 3/13 发行版的运行。请联系 Oracle 技术支持代表,以了解是否有可用的修复程序。这些错误和问题分为以下几个类别:
群集文件系统不支持扩展属性 (15790565)
问题摘要
: 群集文件系统当前不支持扩展属性。当用户使用
xattr
挂载选项挂载群集文件系统时,将看到以下行为:
对常规文件执行扩展属性操作将失败,并显示
ENOENT
错误。
对目录执行扩展属性操作将导致对目录本身执行常规操作。
因此,任何访问群集文件系统中文件的扩展属性的程序都可能无法获得预期结果。
解决方法
: 使用
noxattr
挂载选项挂载群集文件系统。
如果将 Failover_mode 设置为 SOFT,在公共接口发生故障时资源组不会进行故障转移 (15711034)
问题摘要
: 如果故障转移数据服务(例如,HA for Oracle)配置了
ScalMountpoint
资源来探测和检测 NAS 存储访问故障,发生网络接口丢失(例如,由于电缆连接断开)时,监视探测器将挂起。如果数据服务资源的
Failover_mode
属性设置为 SOFT,这将导致停止失败状态并且资源不会进行故障转移。关联的错误消息类似于以下内容:
SC[SUNW.ScalMountPoint:3,scalmnt-rg,scal-oradata-11g-rs,/usr/cluster/lib/rgm
/rt/scal_mountpoint/scal_mountpoint_probe]:
Probing thread for mountpoint /oradata/11g is hanging for timeout period
300 seconds
解决方法
: 将数据服务资源上的
Failover_mode
属性更改为 HARD。
# clresource set -p Failover_mode=HARD ora-server-rs
# clresource show -v ora-server-rs | grep Failover_mode
Failover_mode: HARD
如果任意一个群集节点不在群集中,
clzonecluster
boot
、
reboot
和
halt
子命令将失败 (15812235)
问题摘要
: 即使只有一个群集节点不在群集中,
clzonecluster boot
、
reboot
和
halt
子命令也会失败。将显示类似如下的错误:
root@pnode1:~# clzc reboot zoneclustername
clzc: (C827595) "pnode2" is not in cluster mode.
clzc: (C493113) No such object.
root@pnode1:~# clzc halt zoneclustername
clzc: (C827595) "pnode2" is not in cluster mode.
clzc: (C493113) No such object.
clzonecluster boot
、
reboot
和
halt
子命令应该可以跳过处于非群集模式下的节点,而非失败。
解决方法
: 对
clzonecluster boot
或
clzonecluster halt
命令使用以下选项以指定子命令的节点列表:
-n nodename[,…]
-n
选项允许对指定的节点子集运行子命令。例如,如果在包含节点
pnode1
、
pnode2
和
pnode3
的三节点群集中,节点
pnode2
已关闭,可以运行以下
clzonecluster
子命令以排除关闭的节点:
clzonecluster halt -n pnode1,pnode3 zoneclustername
clzonecluster boot -n pnode1,pnode3 zoneclustername
clzonecluster reboot -n pnode1,pnode3 zoneclustername
在 PxFS 辅助服务器上的非全局区域中使用
chmod
设置
setuid
权限会返回错误 (15697690)
问题摘要
:
chmod
命令可能无法更改群集文件系统中文件的
setuid
权限。如果在非全局区域中运行
chmod
命令,而且该非全局区域不在 PxFS 主服务器上,则
chmod
命令将无法更改
setuid
例如:
# chmod 4755 /global/oracle/test-file
chmod: WARNING: can't change /global/oracle/test-file
解决方法
: 执行下列操作之一:
在访问群集文件系统的任何全局群集节点上执行操作。
从具有群集文件系统的回送挂载的 PxFS 主节点上运行的任何非全局区域执行操作。
将 PxFS 主服务器切换到遇到错误的非全局区域正在其上运行的全局群集节点。
问题摘要
: 在具有混合 I/O 的逻辑域上进行群集配置过程中,自动搜索不会报告群集互连的任何路径。
解决方法
: 运行交互式
scinstall
实用程序时,选择分别配置发起节点和其他节点,而不是在单个操作中配置所有节点。实用程序提示 "Do you want to use autodiscovery?"(是否要使用自动搜索?)时,回答 "no"(否)。然后可以从
scinstall
实用程序提供的列表中选择传输适配器。
组合 DID 时,需要进行更多的验证检查 (15423531)
问题摘要
:
scdidadm
命令和
cldevice
命令无法检验组合为单个 DID 设备的复制 SRDF 设备实际上是否是彼此的副本,并且属于指定的复制组。
解决方法
: 组合 DID 设备以用于 SRDF 时请特别小心。确保指定的 DID 设备实例是彼此的副本,并且属于指定的复制组。
问题摘要
: 在非正常关闭群集节点期间(例如节点出现紧急情况),类型为
sun.storage_proxy.type
的 Oracle Clusterware
sun.
storage-proxy-resource
可能会在节点引导时处于脱机状态。这反过来会导致 Oracle Solaris Cluster RAC
服务器代理资源处于脱机状态。
解决方法
: 执行以下步骤:
手动启动 ACFS 存储代理资源。
# crsctl stop res sun.storage-proxy-resource -n nodename
# crsctl start res sun.storage-proxy-resource -n nodename
使 Oracle Solaris Cluster RAC 服务器代理资源联机。
# clresourcegroup online rac-server-proxy-resource-group
Oracle Solaris Cluster TimesTen 数据服务随附了一组资源类型。其中的大部分资源类型都设计成与 TimesTen“主动-备用”配置一起使用,但在 Oracle Solaris Cluster 上只能将
ORCL.TimesTen_server
资源类型用于高可用性
TimesTen 配置。
在
clzonecluster halt
zonecluster
命令后运行
clzonecluster boot
zonecluster
命令会导致区域群集中出现节点引导故障 (16398199)
问题摘要
: 如果运行
clzonecluster halt
zonecluster
命令后运行
clzonecluster boot
zonecluster
命令,则会有一个或多个节点无法引导并显示以下错误:
root@node1:/# clzonecluster boot zc1
Waiting for zone boot commands to complete on all the nodes of the
zone cluster "zc1"...
clzc: (C215301) Command execution failed on node node2.
zoneadm: zone 'zc1': These file-systems are mounted on subdirectories
of /gpool/zones/zone1/root:
zoneadm: zone 'zc1': /gpool/zones/zone1/root/u01
zoneadm: zone 'zc1': call to zoneadmd failed
区域群集节点不会引导并且
clzonecluster status
命令将节点显示为脱机。
解决方法
: 卸载脱机节点的全局区域中的文件系统:
/usr/sbin/umount/gpool/zones/zone1/root/u01
(如上述情况),然后在区域群集的任何节点的全局区域中运行以下命令:
/usr/cluster/bin/clzonecluster boot -n
offline-node zonecluster
。通过运行
/usr/cluster/bin/clzonecluster status
命令验证脱机节点现在是否联机。
如果使用 BUI 停止项目复制,则创建和验证 ZFS Storage Appliance 保护组将失败 (15797609)
问题摘要
: 如果使用浏览器用户界面 (Browser User Interface, BUI) 停止复制,则保护组验证将失败,并且保护组将转为配置错误状态。
解决方法
: 在 BUI 中,执行以下操作以停止复制:
在 "Shares"(共享)选项卡下,选择要复制的项目。
单击 "Replication"(复制)选项卡,然后选择 "Scheduled"(预定)选项。
等到状态更改为
manual
,单击 "Enable/Disable"(启用/禁用)按钮。
问题摘要
: 如果启用 DES 验证并将节点指定为全限定主机名,则使用集中安装时,
scinstall
实用程序无法配置群集。将显示类似如下的错误消息:
Updating file ("ntp.conf.cluster) on node <FQ-host-name) ... failed
scinstall: Failed to configure ("ntp.conf.cluster") on node <FQ-host-name>
scinstall: scinstall did NOT complete successfully!
解决方法
: 重新运行
scinstall
实用程序并且此次选择一次配置一个节点的选项。指定节点名称,不包含域名。如果正在配置双节点群集,法定配置将失败,导致不重置安装模式。这种情况下,在节点引导到群集模式后,手动重置安装模式。
运行
scinstall -u
命令会使 'installed' 区域处于 'mounted' 状态 (15817301)
问题摘要
: 运行
scinstall -u
命令会使 'installed' 区域处于 'mounted' 状态。此状态会导致重新引导系统时 Live Upgrade 出现问题,因为系统无法修复备用引导环境的区域路径。
解决方法
: 执行以下步骤:
运行
svcadm disable zones
命令。
所有运行区域现在都应该处于 'mounted' 状态。服务在 100 秒后可能进入维护状态,但这不是问题。
对所有区域运行
zoneadm —z
zonename
unmount
命令。
键入
init 6
。
问题摘要
: Oracle Enterprise Manager Ops Center Agent for Oracle Solaris 10 为其配置数据库使用
JavaDB 软件。使用
installer
实用程序安装 Oracle Solaris Cluster 软件时,将重新安装 JavaDB 软件包,导致删除现有代理配置数据库。
因为删除了该软件包,Ops Center Agent 会报告以下错误消息:
java.sql.SQLException: Database '/var/opt/sun/xvm/agentdb' not found.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
现在 Agent 已损坏,需要取消配置或者进行配置。
解决方法
: 在所有群集节点上额外安装以下 JavaDB 软件包(从 Oracle Solaris Cluster 介质手动安装):
SUNWjavadb-demo
SUNWjavadb-javadoc
SUNWjavadb-docs
SUNWjavadb-client
运行
installer
实用程序不会删除现有 JavaDB 数据库软件包。
问题摘要
: 在简体中文和繁体中文语言环境中使用
installer
实用程序来安装 Oracle Solaris Cluster 软件时,检查系统要求的软件错误地报告交换空间是 0 MB。
解决方法
: 忽略此报告信息。在这些语音环境中,可以运行以下命令来确定正确的交换空间大小:
# df -h | grep swap
问题摘要
: 发出
cancel
子命令时,
clzonecluster
交互式配置(由
clzonecluster configure
命令
zcname
打开)在某些情况下会崩溃。将显示
Error executing zone configure command
错误消息。
解决方法
: 您可以放心地忽略此问题。仅未保存的配置数据会由于该问题而丢失。要避免配置实用程序崩溃,请不要使用
cancel
命令。
使用
ifconfig unplumb
interface
禁用传输接口后无法重新启用 (15770198)
问题摘要
: 对专用传输接口意外使用
ifconfig unplumb
命令后,群集传输路径将脱机。
解决方法
: 将禁用的接口所连接到的电缆禁用并重新启用。
确定接口所连接到的电缆。
# /usr/cluster/bin/clinterconnect show | grep Cable
在此节点上禁用该接口的电缆。
# /usr/cluster/bin/clinterconnect disable cable
重新启用电缆,使路径联机。
# /usr/cluster/bin/clinterconnect enable cable
问题摘要
: 如果为
netmasks
名称服务启用了
nis/ldap
,则逻辑主机名故障转移要求从网络中获取网络掩码。对
getnetmaskbyaddr()
的此调用会因 CR 7051511 挂起一段时间,这段时间可能相当长,导致资源组管理器 (Resource Group
Manager, RGM) 将资源置于 FAILED 状态。即使
/etc/netmasks
本地文件中有正确的网络掩码条目,也会出现此问题。此问题只会影响多宿主群集,例如位于多个子网上的群集节点。
解决方法
: 将
/etc/nsswitch.conf
文件(由 SMF 服务进行处理)配置为仅使用
files
进行
netmasks
查找。
# /usr/sbin/svccfg -s svc:/system/name-service/switch setprop config/netmask = astring:\"files\"
# /usr/sbin/svcadm refresh svc:/system/name-service/switch