返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

GBA-01BR-0027
错误码
错误标识
错误显示信息
GBA-01BR-0027

create dir %s error
错误出现原因
创建文件夹失败
分析与建议
检查文件系统权限,状态

高可用性集群中发生故障意味着其中一个服务器不再可用。由于高可用性集群的目的是要
保持可用性,因此必须计划在主服务器不可用时,集群中的某个辅助服务器成为主服务器。
控制故障转移的最佳方式是配置连接管理器来执行到指定服务器的故障转移。
设置 DRAUTO 配置参数以指定如何执行故障转移,然后在现有主服务器发生故障时使用
以下某种方法来创建新的主服务器:

连接管理器

ISV 集群管理软件

手动转换
利用 ISV 集群管理软件进行故障转移

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 473 -
可以使用独立软件供应商 (ISV) 集群管理软件,而不是连接管理器来管理高可用性集群环
境中的故障转移处理。
如果高可用性集群中的主服务器遇到问题,需要辅助服务器充当主服务器角色,那么在执
行实际的故障转移之前,在发生故障的主服务器上禁止磁盘 I/O,而在新的主服务器上允
许磁盘 I/O 非常重要。
另外,
必须阻止对发生故障的主服务器的网络访问。
特别是对 SD
辅助服务器,如果未正确完成这些步骤,有可能损坏磁盘。
从高可用性集群环境中的服务器启用磁盘 I/O 操作的机制称为 I/O 防护。
I/O 防护通过回
调脚本进行配置。 如果主服务器发生故障,在辅助服务器充当主服务器角色之前,故障转
移进程会在辅助服务器上执行回调脚本。 该脚本调用特定于 I/O 的任何命令,以便启用
或禁用磁盘存取。该脚本启用对要充当主服务器的服务器上共享磁盘的写访问权,并禁用
对发生故障的服务器上共享磁盘的写访问权。
可以通过 FAILOVER_CALLBACK 配置参数指定当数据库服务器从辅助服务器转换为主
服务器,或从辅助服务器转换为标准服务器时,要运行的脚本名称。 $GBASEDBTDIR/etc
目录中提供了一个临时脚本,名称为 ifx_failover_callback.sh (UNIX™) 。 配置后,在辅助
服务器转换为主服务器或标准服务器之前,将执行由 FAILOVER_CALLBACK 指定的脚
本。
可根据高可用性集群的类型执行以下操作之一来测试故障转移脚本:

将 SD 辅助服务器转换为主服务器。

如果 DRAUTO 配置参数设置为 0,
那么关闭主服务器并将 HDR 辅助服务器转换
为标准方式。

如果 DRAUTO 配置参数设置为 1,那么关闭 HDR 对中的主服务器。

关闭远程独立集群中的主服务器,并将 RS 辅助服务器转换为标准方式。
online.log 中包含 Invoking Failover Callback 消息,运行故障转移脚本后,其中会列出该故
障转移脚本的路径和文件名。
请参阅《GBase 8s 管理员参考》中有关 FAILOVER_CALLBACK 配置参数的信息。
如果 FAILOVER_CALLBACK 指定的脚本发生故障(即,如果它返回一个非零退出码),
那么从辅助服务器到主服务器
(或标准服务器)
的故障转移也会失败。
这样的话,
DBA 必
须手动执行故障转移。
共享文件系统的 I/O 防护
可以配置 I/O 防护以在高可用性集群环境中保护共享资源。
软件或硬件故障可能导致未完成的操作写入到共享存储设备中。使用 I/O 防护可以隔离服
务器,以防服务器访问共享存储。如果正在对高可用性集群中的服务器执行维护或测试,
那么必须使用 I/O 防护。如果在服务器上或应用程序内检测到问题,集群管理器可检测问
题,并阻止该服务器连接到共享数据。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 474 -
可以配置一个脚本,以在主服务器出现故障时运行。 防护命令通过设置
FAILOVER_CALLBACK 配置参数来调用,启动故障转移时,该参数将运行脚本。
尽管无需 I/O 防护即可使用 GBase 8s 数据库软件,
但仍然必须使用 I/O 防护来保护共享
磁盘系统,以免遭受意外损失。
I/O 防护的类型
可使用若干类型的 I/O 防护,包括:

电源®防护 - 检测到问题时关闭节点电源。

光纤通道开关防护(需要 SCSI-3 持久性组保留)- 通过除去问题节点的保留来阻
塞光纤通道设备上的端口。

实施 I/O 防护最常用的方法可能是使用光纤通道防护。
光纤通道开关支持业界标准
SCSI-3 持久性组保留 (PR) 技术。 PR 技术允许一组系统临时注册到磁盘,并与
包含数据的磁盘协调写互斥保留。
在大多数情况下,必须安装集群管理器软件。集群管理器软件提供将命令发出到光纤通道
交换机所需的驱动程序和实用程序。例如,Linux™ Cluster Suite 提供名为 fence_scsi 的脚
本。Sun Cluster 提供名为 scdidadm 的命令。
也可根据所用集群管理器软件和不同硬件能力来使用其他防护方法。
实施 I/O 防护
可在若干平台上配置 I/O 防护,包括:

Linux

Solaris

AIX®
有关配置 I/O 防护的特定信息,请参阅设备制造商提供的文档。
集群故障
高可用性集群故障是指集群中数据库服务器之间的连接丢失,这可能是多种不同的情况造
成的。
以下任一情况均可能导致集群故障:

一个数据库服务器的站点上发生灾难性故障(如火灾或大地震)

连接数据库服务器的联网电缆被破坏

一个数据库服务器上的处理中延迟过长

辅助数据库服务器上发生无法由镜像块解决的磁盘故障
提示: 集群故障不一定表示某个数据库服务器发生了故障,而只是表示数据库服务器之间的连
接丢失。
数据库服务器会将以下任一情况解释为集群故障:

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 475 -

超过了指定的超时值。
在正常的集群运行期间,数据库服务器预期集群中的其他数据库服务器进行通信确
认。集群中的每个数据库服务器都有一个用于指定秒数的 ONCONFIG 参数
DRTIMEOUT。如果来自集群中另一数据库服务器的确认没有在 DRTIMEOUT 指
定的秒数内返回,那么数据库服务器会假定发生了集群故障。

集群中的数据库服务器未响应通过网络进行的定期消息传递 (ping) 尝试。
无论主数据库服务器是否向辅助数据库服务器发送任何记录,这两个数据库服务器
均会互相执行 ping 操作。如果一个数据库服务器没有响应四次连续 ping 尝试,
那么另一数据库服务器会假定发生了集群故障。
集群中每个数据库服务器会在该数据库服务器上 DRTIMEOUT 参数指定的秒数
过去之后,向集群中的其他数据库服务器发送 ping。
数据库服务器检测到集群故障后,
它会向其消息日志写入一条消息
(例如,
DR: receive error)
并关闭数据复制。如果发生了集群故障,那么两个数据库服务器之间的连接将断开,并且
辅助数据库服务器将保持只读方式。
如果辅助数据库服务器在集群故障后仍保持联机状态,并且 DRAUTO 配置参数设置为 1
(RETAIN_TYPE),那么该数据库服务器的类型将自动更改为标准。如果 DRAUTO 设置为
0 (off),那么辅助数据库服务器将顶事尝试重新建立与主数据库服务器的通信。如果
DRAUTO 设置为 2 (REVERSE_TYPE),那么一旦因原始主服务器发生故障(而非因原始
主服务器重新启动)导致连接结束,辅助数据库服务器将立即成为主数据库服务器。
如果连接管理器已启用,
那么将 DRAUTO 设置为 3 可防止高可用性集群中存在多个主服
务器的可能性。 如果尝试使服务器联机以作为主服务器并且 DRAUTO=3,那么连接管理
器将验证集群中没有其他活动的主服务器。如果另一台主服务器处于活动状态,那么连接
管理器将拒绝该请求。
如果主数据库服务器发生故障,辅助数据库服务器可按以下方法运行:

辅助数据库服务器可保持处于逻辑恢复方式。在这种情况下,不采取任何操作。如
果您期望 HDR 的连接很快复原,那么这种情况是可取的。

辅助数据库服务器可以自动成为标准数据库服务器。此操作称为自动转换。

如果您使用手动切换来将数据库服务器方式更改为标准,那么辅助数据库服务器可
以成为标准数据库服务器。
自动转换
自动转换意味着集群中的主服务器发生故障后,辅助数据库服务器将自动成为标准数据库
服务器(如果 DRAUTO 配置参数设置为 1)或主数据库服务器(如果 DRAUTO 配置参
数设置为 2)。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 476 -
自动转换首先回滚所有打开的事务,然后作为主数据库服务器进入联机方式。仅当辅助数
据库服务器的 onconfig 文件中的参数 DRAUTO 设置为 1 (RETAIN_TYPE) 或 2
(REVERSE_TYPE) 时,才会执行自动转换。
由于辅助数据库服务器成为标准或主数据库服务器,因此必须确保以下情况之一:

辅助数据库服务器有足够的逻辑日志磁盘空间来使处理什么继续进行而无需备份
逻辑日志文件。

备份逻辑日志文件。
自动转换只会更改数据库服务器的类型。它不会将客户机应用程序重定向到辅助数
据库服务器。
自动转换与手动转换相比有以下优势:

从主数据库服务器重定向到辅助数据库服务器的客户机可以继续写入数据和更新
数据。

转换不会根据监视消息日志的操作程序来查看何时会发生高可用性数据复制故障,
然后手动将辅助数据库服务器转换为标准数据库服务器。
自动转换需要非常稳定的网络才能正常运行。
在您成功使原始主数据库服务器恢复为联机状态时,将自动建立集群连接。

如果 DRAUTO 设置为 RETAIN_TYPE,
那么辅助转为标准的数据库服务器将进行
平稳关闭(以确保所有可能写入数据库服务器的客户机没有连接),然后切换回辅
助数据库服务器。

如果 DRAUTO 设置为 REVERSE_TYPE,
那么辅助转为主数据库服务器将直接切
换为主类型。不会发生关闭。所有与此数据库服务器连接的应用程序可以保持连接
状态。 原始主数据库服务器切换为辅助数据库服务器。
没有可靠网络时的自动转换
尽管自动转换可能是最佳解决方案,但是它不适合所有的环境。
如果主数据库服务器实际上并未发生故障,
但是辅助数据库服务器向该主服务器注册失败,
请考虑可能发生的情况。例如,如果当辅助数据库服务器由于网速慢或网络不稳定而向主
数据库服务器发送信号时,辅助数据库服务器没有收到响应,那么辅助数据库服务器将假
设主数据库服务器发生的故障并且自动切换为标准类型。如果当主数据库服务器向辅助数
据库服务器发送信号时,主数据库服务器也没有收到响应,那么它将假设辅助数据库服务
器发生故障并将关闭数据复制但是仍将保持联机方式。现在主数据库服务器和辅助数据库
服务器(已切换为标准类型)都处于联机方式。
如果客户机可以独立地在两个数据库服务器上更新数据,那么对中的数据库服务器将处于
以下状态:
即每个数据库服务器具有另一数据库服务器所需的逻辑日志记录。
在此情况下,
您必须重新启动并通过一整个数据库服务器的 0 级备份来执行初始数据复制,
如首次启动

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 477 -
HDR 所述。 因此,如果网络不是十分稳定的话,那么您可能不会希望使用自动转换。无
法在以前的辅助服务器上恢复 HDR,而不带任何丢失事务的风险。
手动转换
手动转换意味着辅助数据库服务器的管理员将辅助数据库服务器的类型更改为标准类型。
辅助数据库服务器回滚任何打开的事务,
然后进入联机方式
(如同标准数据库服务器一样)

这样它就可以接受来自客户机应用程序的更新。
将脱机服务器连接到新的主服务器
故障转移之后,必须将所有脱机的辅助服务器重新连接到新的主服务器。
如果高可用性集群中的主服务器发生故障,
系统将通知所有联机辅助服务器发生了该故障。
辅助服务器将连接到新主服务器,并继续运行。
但是,故障转移时未联机的 RS 辅助服务
器和 HDR 辅助服务器不会收到故障转移通知,因此这些服务器恢复联机时会尝试连接到
原始(发生故障的)主服务器。在这种情况下,必须在这些辅助服务器上手动重置主服务
器。
发生故障转移时在脱机的辅助服务器上运行以下命令。

对于 HDR 辅助服务器:
oninit -PHY
onmode -d secondary new_primary
new_primary 指示当前主服务器的名称。

对于 RS 辅助服务器:
oninit -PHY
onmode -d RSS new_primary
new_primary 指示当前主服务器的名称。

SQLParamOptions 允许应用程序为由 SQLBindParameter 分配的一组参数指定多个值。
为一组参数指定多个值的函数对用于批量插入和其它需要数据源多次使用各种参数值处理
相同 SQL 语句的工作很有用。例如,应用程序可以为与 INSERT 语句关联的参数集指定
三个值,然后再次执行 INSERT 语句来执行三次插入操作。
下表列出了 SQLParamOptions 返回的 SQLSTATE 值,并解释了该函数内容中的每个值;
在驱动程序管理器返回的每个 SQLSTATE 的描述之前都包含注释 (DM)。除非另有说明,
否则与每个 SQLSTATE 值关联的返回码都是 SQL_ERROR。
SQLSTATE
错误值
错误消息
01000

General warning
S1000

General error
S1001

Memory-allocation failure
S1010

Function-sequence error
S1107

Row value out of range