返回首页

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

更新日期:2024年09月11日

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

定期增加容量

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

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

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

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

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

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

增加的报告容量

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 355 -
多台辅助服务器使您能够在不影响主服务器的情况下卸载报告功能。

服务器故障备份
如果主服务器出现故障,
那么 SD 辅助服务器可快速并轻易地提升为主服务器。

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

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

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

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

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

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

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

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

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

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

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

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

可能存在冲突。

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

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

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

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

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


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

SERVERNUM 配置参数指定共享内存中的相对位置。
onconfig.std 值
SERVERNUM 0

0 - 255
生效
编辑 onconfig 文件并重启数据库服务器之后。
用法
在本地计算机上,您为每一数据库服务器选择的值必须是唯一的。在您的网络上,该值不
需要是唯一的。因为在 onconfig.std 文件中包括值 0,所以建议您选择一个非 0 的值来
避免无意中重复 SERVERNUM 配置参数。

可以插入不透明类型的原始类型或它的转换类型。以下示例显示如何插入使用原始类型的
不透明数据:
String s = "insert into charattr_tab (int_col, charattr_col)
values (?, ?)";
System.out.println(s);
pstmt = conn.prepareStatement(s);
...
charattrUDT charattr = new charattrUDT();
charattr.chr1 = "a";
charattr.bold = true;
charattr.fontsize = (short)1;

pstmt.setInt(1, 1);
System.out.println("setInt...ok");

pstmt.setObject(2, charattr);

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

System.out.println("setObject(charattrUDT)...ok");

pstmt.executeUpdate();
如果定义了强制转换函数,并且想要将数据作为转换类型而不是原始类型插入,则必须调
用与转换类型相对应的 setXXX() 方法。
例如,
如果已经将 CHAR 或 LVARCHAR 函数转
换为 charattrUDT 列,则可以使用 setString() 方法插入数据,如下所示:
// Insert into UDT column using setString(int,String) and Java
String object.
String s =
"insert into charattr_tab " +
"(decimal_col, date_col, charattr_col, float_col) " +
"values (?,?,?,?)";
writeOutputFile(s);
PreparedStatement pstmt = myConn.prepareStatement(s);

...
String strObj = "(A, f, 18)";
pstmt.setString(3, strObj);
...