返回首页

gbase数据、南大通用产品文档:GBase8s装入操作期间坏行限制

更新日期:2024年09月11日

dbload -e 选项使您可以指定在 dbload 终止前允许的坏行数。
如果将错误数设置为正整数,
那么当 dbload 读取
(错误数 + 1)
个坏行时
将终止。
如果将错误数设置为 0,
那么当 dbload 读取第一个坏行时就将终止。
如果 dbload 超过了坏行限制,并且指定了 -p 选项,dbload 在终止前将
提示您输入指令。提示将询问您是想回滚还是想落实自上一事务以后插入的所
有行。
如果 dbload 超过了坏行限制,但未指定 -p 选项,dbload 将落实自上一
事务以后插入的所有行。

GBA-02DR-0026
错误码
错误标识
错误信息
GBA-02DR-0026

Gcluster
metadata(hashmap)
and
actual node are not consistent
错误出现原因
nodedatamap 表和实际数据分布节点不一致
分析与建议
某些误操作导致,如直接通过gnode 进行insert 或load 操作

字段文本中包含“\n”或“\r”时的处理
示例
如果在导出的数据中某字段
(通常为字符串类型,
如varchar)
中包含
“\n”

“\r”

则只对“\n”进行转义。
如果在“\n”前加转义字符(默认为“\”),“\r”不变,仍为不可见字符“\r”

使用二进制方式查看为“0x0D”。
示例1:转义“\n”的原因是文本中的内容“\n”与默认的行分隔符(LINES
TERMINATED)相同,故将文本中的“\n”转义。
示例中所用的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT
NULL);
INSERT INTO gs values(1,'qw\ner'),(2,'as\rdf');
导出SQL 语句:
gbase> SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/n_1.txt';
Query OK, 2 rows affected
查看导出文件,cat 命令中的-b 参数表示对非空输出行进行编号:
$ cat -b n_1.txt
1
1
qw\
2
er
df
3
2
as
使用二进制方式查看导出文件:
$ hexdump -C n_1.txt
00000000
31 09 71 77 5c 0a 65 72
0a 32 09 61 73 0d 64 66
|1.qw\.er.2.as.df|
00000010
0a
|.|

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1256
00000011
示例2:如果显示的指定行分隔符为其他字符,则不发生转义。
示例中所用的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT
NULL);
INSERT INTO gs values(1,'qw\ner'),(2,'as\rdf');
导出SQL 语句:
gbase> SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/n_2.txt'
LINES TERMINATED BY ';';
查看导出文件,导出文件中的“^M”表示“\n”:
$ vi n_2.txt
1
qw
er;2
as^Mdf;
使用二进制方式查看导出文件:
$ hexdump -C n_2.txt
00000000
31 09 71 77 0a 65 72 3b
32 09 61 73 0d 64 66 3b
|1.qw.er;2.as.df;|
00000010