返回首页

gbase数据、南大通用产品文档:GBase8s集中管理

更新日期:2024年09月11日

许多人使用的数据库都很有价值,必须将它们作为重要的企业资源来保护。当编译由价值
数据的存储并同时允许许多职员访问这些数据时,会产生严重问题。通过在维护性能时保
护数据来解决此问题,数据库服务器允许您将这些任务集中。
必须保护数据库,以免数据库丢失或遭到破坏。很多情况都可以对数据库构成威胁:软件
和硬件故障以及火灾、水灾和其它自然灾害。丢失重要的数据库可能会带来巨大的破坏。
破坏可能不仅包括重新创建丢失数据的支出和困难,而且包括数据库用户的生产时间损失
以及用户不能工作时失去的业务和信誉。定期备份的计划可能帮助避免或减轻这些可能的
灾难。
必须维护和调整许多人使用的大型数据库。必须有人监视系统资源的使用状况、列出其增
长图表、预计瓶颈并计划数据库的扩展。用户将报告应用程序中的问题;必须有人诊断这
些问题并更正它们。如果快速响应很重要,那么必须有人分析系统的性能并找出响应慢的
原因。

当启用 OPTMSG 功能时,GBase 8s ODBC 不会对任何连接的语句执行错误处理。
如果您不确定某个特定语句是否会产生错误,则在代码中包含错误处理语句,并不要为此
语句启用消息链接。
当链接语句中发生错误后,
数据库服务器停止后续语句的执行。
例如,
在以下代码片段中,
它试图链接五条 INSERT 语句:
SQLExecDirect(hstmt, "create table tab1 (col1 INTEGER)", SQL_NTS);
/* enable message chaining */
SQLSetStmtOption(hstmt, SQL_INFX_ATTR_OPTMSG, 1);
/* these two INSERT statements execute successfully */
SQLExecDirect(hstmt, "insert into tab1 values (1)", SQL_NTS);
SQLExecDirect(hstmt, "insert into tab1 values (2)", SQL_NTS);
/* this INSERT statement generates an error because the data
* in the VALUES clause is not compatible with the column type */
SQLExecDirect(hstmt, "insert into tab1 values ('a')", SQL_NTS);
/* these two INSERT statements never execute */

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

SQLExecDirect(hstmt, "insert into tab1 values (3)", SQL_NTS);
SQLExecDirect(hstmt, "insert into tab1 values (4)", SQL_NTS);
/* disable message chaining */
SQLSetStmtOption(hstmt, SQL_INFX_ATTR_OPTMSG, 0);
/* commit work */
rc = SQLEndTran (SQL_HANDLE_DBC, hdbc, SQL_COMMIT);
if (rc != SQL_SUCCESS)
在此示例中,会发生以下操作:
l
驱动程序将这五个 INSERT 语句和 COMMIT WORK 语句发送到数据库服务器执
行。
l
数据库将 1 和 2 的 col1 值插入到 tab1 表中。
l
第三条 INSERT 语句产生错误,因此数据服务器不会执行后续的 INSERT 语句或
COMMIT WORK 语句。
l
当队列到达 SQLEndTran 函数,驱动程序刷新消息队列。
l
SQLEndTran 函数,它是链接语句中的最后一条语句,返回失败的 INSERT 语句的
错误。
如果需要保存数据库服务器插入到 col1 的值,必须自己提交它们。
















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

9 错误消息
本主题描述 GBase 8s ODBC Driver 错误消息。
本主题提供以下信息:
l 诊断 SQLSTATE 值
l 映射到 GBase 8s 错误消息的 SQLSTATE 值
l GBase 8s ODBC Driver 错误消息映射到特定的 SQLSTATE 值
有关错误消息的描述,请使用 finderr 实用程序。

checkpoint_timeout
参数说明:设置自动WAL 检查点之间的最长时间。
该参数属于SIGHUP 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:整型,30~3600(秒)
在提升checkpoint_segments 以加快大数据导入的场景也需将此参数调大,同时这两个
参数提升会加大shared_buffers 的负担,需要综合考虑。
默认值:15min