返回首页

gbase数据、南大通用产品文档:GBase8sDBACCNOIGN 环境变量

更新日期:2024年09月11日

使用 DBACCNOIGN 环境变量,
可以指定在发生指定的错误时 DB-Access 实用程序的行
为。
如果在以下某种情况下发生错误,
那么 DBACCNOIGN 环境变量会影响 DB-Access 实用
程序的行为:

以非菜单方式运行 DB-Access。

仅在 GBase 8s 中,以菜单方式通过 DB-Access 执行 LOAD 命令。
如果在上述任一情况下运行 DB-Access 实用程序时发生错误,
请将 DBACCNOIGN 环境
变量设置为 1,以回滚未完成的事务。

例如,假定 DB-Access 运行以下 SQL 命令:
DATABASE mystore
BEGIN WORK

INSERT INTO receipts VALUES (cust1, 10)
INSERT INTO receipt VALUES (cust1, 20)
INSERT INTO receipts VALUES (cust1, 30)

UPDATE customer
SET balance =
(SELECT (balance-60)
FROM customer WHERE custid = 'cust1')
WHERE custid = 'cust1
COMMIT WORK
此处有一条语句的表名拼写错误:receipt 表不存在。如果未在环境中设置
DBACCNOIGN,那么 DB-Access 会将两条记录插入到 receipts 表中,并更新 customer
表。现在 customer balance 的减少量超过了插入的 receipts 的总和。
但如果将 DBACCNOIGN 设置为 1,那么会打开消息,指示 DB-Access 回滚了所有
INSERT 和 UPDATE 语句。这些消息还会标识错误原因,以便您能够解决问题。
设置 DBACCNOIGN 时的 LOAD 语句示例
可在执行 LOAD 语句期间设置 DBACCNOIGN 环境变量来保护数据完整性,即使
DB-Access 以菜单方式运行 LOAD 语句也是如此。
假定您从 DB-Access SQL 菜单执行 LOAD 语句。正确装入了 49 行数据,但第 50
行数据包含无效值,
因而导致错误。
如果将 DBACCNOIGN 设置为 1,
那么数据库服务器

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 146 -

不会将先前的 49 行插入到数据库中。如果未设置 DBACCNOIGN,那么数据库服务器会
插入前 49 行。

REPLICATION_SLOTS 视图用于查看复制节点的信息。
名称
类型
描述
slot_name
text
复制节点的名称。
plugin
text
插件名称。
slot_type
text
复制节点的类型。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1058
名称
类型
描述
datoid
oid
复制节点的数据库OID。
database
name
复制节点的数据库名称。
active
boolean
复制节点是否为激活状态。
xmin
xid
复制节点事务标识。
catalog_xmin
xid
逻辑复制槽对应的最早解码事务标识。
restart_lsn
text
复制节点的Xlog 文件信息。
dummy_standb
y
boolean
复制节点是否为假备。


缩容VC 内data 节点:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
266
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
包括步骤:
创建新的distribution
(排除了将要删除的节点)
根
据新的distribution 创建新nodedatamap
(initnodedatamap)
重分布数据到新的
nodedatamap 上删除旧的nodedatamap 和distribution。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点。
3.
卸载该节点上的集群软件。步骤包括:停止被删除节点上的gnode 服务修改
demo.options 使用uninstall 脚本卸载软件。
注:
gnode 节点服务包含有gbase 服务和syncserver 服务,
如果该gnode 节点服
务器上还有gcluster 节点存在,
且需要保留该gcluster 节点,
停止服务不需直接
使用gcluster_services all stop 停止所有服务,
只需使用如下命令单独停止gnode
各项服务:
gcmonit.sh stop
gcluster_services gbase_ip stop 如:gcluster_services gbase_192.168.146.40 stop
gcluster_services syncserver_ip stop 如:gcluster_services
syncserver_192.168.146.40 stop

缩容集群的gcluster 节点:
停止整个集群所有节点的服务修改demo.options 使用uninstall 脚本卸载该节点上
集群软件。

缩容复合节点(gcluster 和gnode 同在一个服务器上):
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点
3.
停止整个集群所有节点的服务
4.
修改demo.options 使用uninstall 脚本卸载该服务器上集群软件(包括gcluster
节点和gnode 节点)

缩容整个VC 步骤:
将需要缩容的VC 中所有库表都删除删除该VC
可参考4.3.1.3.2 删除虚拟集群

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
267
注意

V9.5.3 不支持gcware 节点缩容;

缩容操作必须在已有Coordinator 节点上使用DBA 用户(gbase)执行;

卸载data 节点只需在被卸载节点执行停止集群节点服务的操作;

缩容集群可以卸载掉节点,
也可不必须卸载节点,
而是保留节点在freenode
状态,可转到其它VC 使用

使用卸载命令移除节点时不要使用force 参数,
以免卸载时不检查要卸载的
节点是否正在被集群使用,导致数据损坏。