返回首页

gbase数据、南大通用产品文档:GBase8s透明缩放与工作负载平衡策略

更新日期:2024年09月11日

GBase 8s 服务器可轻松伸缩,也可动态执行工作负载均衡,以确保对资源进行最优使用。
GBase 8s 可实现以下目标:

定期增加容量

增加报告容量实现的地理分散处理

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

均衡工作负载以优化资源的使用
定期增加容量
如果业务环境遇到了高峰期,可能需要定期增加容量。可以通过添加远程独立辅助服务器
来增加容量。这种类型的辅助服务器维护数据的完整副本,并通过安全网络连接从主服务
器异步传输更新。如果数据量极大,难以为其创建多个副本,那么可使用共享磁盘服务
器,而不是远程独立辅助服务器。如果只需为报告(只读)工作负载增加容量,可使用高
可用性数据复制 (HDR) 辅助服务器。
表 1. 共享磁盘辅助服务器提供的可伸缩性
优点
潜在缺点

可用性极高。这种辅助服务
器与主服务器共享磁盘。

无故障转移。这种辅助服务器可能会配置为
与主服务器在同一计算机硬件上运行。

无数据冗余。此辅助服务器不维护数据副
本。(使用 SAN 设备进行磁盘存储。)

主辅助服务器和辅助服务器需要相同的硬
件、操作系统和数据库服务器产品版本。
由于以下原因而使用 SD 辅助服务器:

增加的报告容量
多台辅助服务器使您能够在不影响主服务器的情况下卸载报告功能。

服务器故障备份
如果主服务器出现故障,那么 SD 辅助服务器可快速并轻易地提升为主服务器。
例如,如果您正在使用提供足够和可靠磁盘存储器的 SAN(存储区域网络)设
备,但是却担心服务器故障,那么 SD 辅助服务器可提供可靠的备份。
表 2. 远程独立辅助服务器提供的可伸缩性
优点
潜在缺点

数据冗余。这种辅助服务器维护数据的
副本。

故障转移。辅助服务器可在地理上远离
主服务器,如位于另一建筑物,另一个
城市或另一个国家/地区。

无需更改应用程序。服务器出现故障
时,可自动切换客户机与主服务器或辅
助服务器的连接。

主辅助服务器和辅助服务器需要
相同的硬件、操作系统和数据库
服务器产品版本。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 347 -
增加报告容量实现的地理分散处理
如果公司在多处具有办事处,那么可能希望使用本地服务器来处理本地请求,而不是依赖
于单个集中服务器。在这种情况下,可设置 Enterprise Replication 服务器网络。这样将容
许目标数据库服务器中断。如果数据库服务器或网络出现故障,本地数据库服务器将继续
为本地用户提供服务。在远程服务器可用之前,本地数据库服务器将已复制的事务存储在
持久存储中。源服务器上的 Enterprise Replication 通过以下方法捕获要复制的事务:读取
逻辑日志,存储事务,然后以可靠方式将每个事务作为复制数据传输到目标服务器。
表 3. Enterprise Replication 提供的可伸缩性
优点
潜在缺点

服务器可位于另一建筑物,另一个城市或另一
个国家/地区。

服务器可安装在不同硬件上。

服务器可在不同操作系统上运行。

服务器可运行不同版本的数据库服务器产品。

可复制少量数据(基于日志的异步复制)。

使用多个连接管理器执行客户机自动重定向,
从而通过添加共享磁盘辅助服务器来协助复制
服务器。

可能存在冲突。

事务可能失败。在这种情
况下,必须修复不一致的
数据。
由于以下原因而在您的环境中使用 RS 辅助服务器:

增加的服务器可用性
一个或多个 RS 辅助服务器通过维护多个可用于增加可用性的服务器来提供进一
步的保证。

地理位置上的远程备份支持
通常需要将辅助服务器安装在距离站点一段距离的位置,以备在最坏情况下灾难
恢复场景所用。RS 辅助服务器是理想的远程备份解决方案。 如果辅助服务器位
于 WAN(广域网)上,那么主 HDR 和辅助 HDR 之间的高级别调整可引起性
能问题。使主服务器与辅助服务器保持相对密切的关系可以简化维护并将对性能
的影响降到最低。

改善的报告性能
多台辅助服务器使您能够在不影响主服务器的情况下卸载报告功能。此外,RS 辅
助服务器配置使得分开报告需求和 HA 需求变得更容易,从而产生更适合于这两
种环境的解决方案。

不稳定网络上的可用性

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 348 -
如果检查点同步到达,那么较慢或不稳定的网络环境可导致主服务器和辅助服务
器都延迟。RS 辅助服务器配置使用全双工联网,而且不需要这种调整。 如果在
主服务器和 RS 辅助服务器之间的网络性能未达到最佳状态,那么 RS 辅助服务
器将是一种极具吸引力的解决方案。
均衡工作负载以优化资源的使用
创建或修改服务级别协议 (SLA) 时,可配置工作负载均衡。GBase 8s 从集群中的每个服
务器收集信息,并将客户机应用程序自动连接到活动量最少的服务器。
可在集群内创建特定于某些应用程序类型的组,如用于联机事务处理 (OLTP) 或仓库的应
用程序。 应用程序可选择连接到特定组,以为每种类型的查询实现最佳性能。

com.gbasedbt.lang.IntervalYM 类允许您操纵年-月间隔。
IntervalYM 构造函数
缺省的构造函数定义如下:
public IntervalYM() throws SQLException
如果抛出异常,则请使用该构造函数的第二个版本来显示本地化的错误消息:
public IntervalYM(Connection conn) throws SQLException
请使用下列构造函数来从特定的输入值创建年-月间隔:

两个时间戳,返回等于 Timestamp1 - Timestamp2 的 IntervalYM 值:
public IntervalYM(Timestamp t1, Timestamp t2) throws
SQLException
public IntervalYM (Timestamp t1, Timestamp t2, Connectionconn) throws
SQLException
第二个版本允许您支持本地化的错误消息。

年和月值(将大型月份值转换为年):
public IntervalYM(int years, int months) throws
SQLException
public IntervalYM(int years, int months,
Connection conn) throws SQLException
第二个版本允许您支持本地化的错误消息。

月份值和编码的限定符:
public IntervalYM(int months, short qualifier, Connection conn) throws
SQLException
要指定限定符,可使用 Interval 方法 中描述的 getQualifier() 方法。此构造函数支持
本地化的错误消息。

字符串:
public IntervalYM(String string) throws SQLException
public IntervalYM(String string, Connection conn) throws

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 113 -

SQLException
第二个版本允许您支持本地化的错误消息。

字符串和限定符:
public IntervalYM(String string, short qualifier, Connection conn) throws
SQLException
要指定限定符,可使用 Interval 方法 中描述的 getQualifier() 方法。此构造函数支持
本地化的错误消息。

字符和限定符信息:
public IntervalYM(String string, int length, byte startCode, byte endCode)
throws SQLException

public IntervalYM(String string, int length, byte startCode, byte endCode,
Connection conn) throws SQLException
第二个版本允许您支持本地化的错误消息。

IntervalYM 方法
下列方法允许您操纵年-月间隔。(您还可使用前面描述的 Interval 方法。)您可
以 IntervalYM 方法执行的某些任务包括下列:

比较两个间隔:
boolean equals(Object other)
boolean greaterThan(IntervalYM other)
boolean lessThan(IntervalYM other)

从其设置间隔的值:

字符串:
void fromString(String other)
void set(String string)

年和月值(将大型月值转换为年):
void set(int years, int months)

两个时间戳:
void set(Timestamp t1, Timestamp t2)

设置间隔的限定符:

从长度、开始代码和结束代码:
void setQualifier(int length, byte startcode, byte endcode)

使用现有的限定符:

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 114 -

void setQualifier(short qualifier)

取得间隔中的月数:
long getMonths()

以 yyyy-mm 格式来创建间隔的字符串表示:
String toString()
字段的显示依赖于限定符。以空格替代开头的零。

注册表及注销表.........................................错误!未定义书签。