返回首页

gbase数据、南大通用产品文档:GBase8c冲突处理

更新日期:2024年09月11日

逻辑复制的行为类似于正常的DML 操作,即便数据在订阅者节点本地被修改,逻辑复
制也会根据收到的更改来更新数据。如果流入的数据违背了任何约束,复制将停止。这种情
况被称为一个冲突。在复制UPDATE 或DELETE 操作时,缺失的数据将不会产生冲突并且
这类操作将被简单地跳过。
冲突将会产生错误并且停止复制,
它必须由用户手工解决。
在订阅者的服务器日志中可
以找到有关冲突的详细情况。
通过更改订阅者上的数据
(这样它就不会与到来的数据发生冲突)
或者跳过与已有数据
冲突的事务可以解决这种冲突。通过调用pg_replication_origin_advance()函数可以跳过该事
务,函数的参数是对应于该订阅名称的node_name 以及一个位置。复制源头的当前位置可
以在pg_replication_origin_status 系统视图中看到。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1131

您可以在恢复期间通过重命名块来更换磁盘。 在使用 ON-Bar 进行冷恢复期间,通过指
定新块路径和偏移量来重命名块。如果需要将存储空间恢复到与完成备份的磁盘不同的磁
盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。
旧块必须包含在上一个 0 级备份中。
以下准则适用于新块:

新块不需要存在。可以以后安装新块并对包含它的存储空间执行热恢复。如果指定
不存在的块,ON-Bar 将重命名信息记录在块保留页中,但不恢复数据。已重命名
(但未恢复)的块处于脱机状态,在 onstat -d 命令的输出中由 N 标志指示。

新块必须有正确的许可权。

新块必须包含在上一个 0 级备份中。

新块路径名不能与现有块相同,且偏移量不能重叠。
提示: 如果使用块名称的符号链接,可能不需要重命名块;而只需编辑符号名称定义即可。
要在恢复期间重命名块:
1. 关闭数据库服务器。
2. 使用 -rename 选项和块信息选项来运行 onbar -r 命令。
如果要对主根块或镜像根块进行重命名,那么 ON-Bar 将更新 ROOTPATH 和
ROOTOFFSET 或者 MIRRORPATH 和 MIRROROFFSET 配置参数的值。旧版本
的 onconfig 文件将另存为 $ONCONFIG.localtime。
3. 执行 0 级归档,以便您可以恢复重命名的块。
示例
下表列出在本部分的示例中使用的两个块的示例值。
元素
第一个块的值
第二个块的值
旧路径
/chunk1
/chunk2
旧偏移量 0
10000
新路径
/chunk1N
/chunk2N
新偏移量 20000
0
示例 1:通过在命令中提供块信息来重命名块

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 71 -
以下命令将块 chunk1 重命名为 chunk1N,将块 chunk2 重命名为 chunk2N:
onbar -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000
-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
示例 2:通过在文件中提供块信息来重命名块
假设您有一个名为 listfile 的文件,其中包含以下内容:
/chunk1 0 /chunk1N 20000
/chunk2 10000 /chunk2N 0
以下命令将块 chunk1 重命名为 chunk1N,将块 chunk2 重命名为 chunk2N:
onbar -r -rename -f listfile
将块重命名到不存在的设备上
要将块重命名到不存在的设备,请指定新的路径名,但在安装该物理设备之后再恢复存储
空间。该选项在您需要重命名块时很有用,便于您在安装新设备前执行冷恢复。当新块设
备就绪后,您可以在它上面执行存储空间的热恢复。
可以在同一个重命名操作中将重命名块与现有设备结合在一起,以及将重命名块与不存在
的设备结合在一起。本示例显示如何将单个块重命名到不存在的设备名上。
下表列出本示例中使用的块的示例值。
存储空间
旧块的路径
旧偏移

新块的路径 新偏移量
sbspace1
/chunk3
0
/chunk3N
0
要将块重命名到不存在的设备上:
1. 使用以下命令重命名块:onbar -r -rename -p /chunk3 -o 0 -n /chunk3N -o 0
2. 当您看到以下提示时,请输入 y 以继续:
块 /chunk3N 不存在。如果继续,那么对包含该块
的数据库空间的恢复操作稍后可能会失败。
在不创建该块的情况下,是否继续?(y/n)
块 /chunk3 被重命名为 /chunk3N,但数据还未恢复到 /chunk3N。
3. 执行 0 级归档。
4. 为 /chunk3N 添加物理设备。
5. 使用 onbar -r sbspace1 命令来执行 sbspace1 的热恢复。
6. 执行 0 级归档。

在导入表数据功能中,默认打开“导入CSV 文件” 功能。本功能支持导入
符合基本CSV 格式的数据文件。
您可以点击“打开文件”按钮,载入您要导入的数据文件,本功能会截取
前100 行数据。原始数据显示在“文件数据”中。您可以在“配置”中对文件
选项进行定义。
“预览”会以表格的形式显示将要导入的数据。
当您选择某一列时,
预览表格中的对应列的数据的第一行会进行高亮显示。

打开文件后的界面如下图所示:

GBase 8a MPP Cluster 管理工具手册

- 44 -

南大通用数据技术股份有限公司

图 7-15 配置CSV 文件界面
当您打开新的文件时,该文件会以当前配置的选项进行预览。如果当前配
置不正确,您可以修改配置项。配置项说明如下:

一般——字段数
每行文本的字段数量。

一般——行数
导入到数据库中的文件的行数。



GBase 8a MPP Cluster 管理工具手册
南大通用数据技术股份有限公司

- 45 -

一般——标题名
指出第一行文本是不是字段名。

一般——字符集
指出文件的字符集是UTF8 还是GBK。
当配置文件完成后,
您需要选择
“到数据库的数据”
标签页进行导入数据,
如下图所示:

GBase 8a MPP Cluster 管理工具手册

- 46 -

南大通用数据技术股份有限公司

图 7-16 配置数据导入选项界面
在“一般”选项中,您可以选择要导入的数据库和表,选择“清空表”导入
时是否清空原表,选择“自动匹配”文件字段与数据库字段会自动建立映射关
系。您可以在“字段”部分中对文件字段与数据库表字段之间建立映射关系。
配置项说明如下:

一般——数据库



GBase 8a MPP Cluster 管理工具手册
南大通用数据技术股份有限公司

- 47 -
选择表所在的数据库。

一般——表
选择要导入数据的表。

一般——清空表
表中原有的所有数据都将在导入数据前被删除

字段——字段
选择文件字段后,选择下拉列表中的表的字段进行映射。如果您不想
导入该字段的数据,可以保留这个字段为空。
在配置完成后,您可以选择“导入”按钮或者“导入到脚本”按钮进行导
入。
“导入”按钮将把数据导入到数据库中;
“导入到脚本”将把数据拼成SQL
脚本并保存到您指定的文件中。
导入操作中出现的错误数据将被记录到日志文件中,
日志文件将会以[数据
问题名].log 的形式保存到数据文件所在的文件目录中。