返回首页

gbase数据、南大通用产品文档:GBase8aquery_cache_size

更新日期:2024年09月11日

功能
设置查询结果缓存大小,默认值是0M。

产生迁移工具假死常见原因以及避免方式:
1、内存过小,会导致内存溢出,工具会卡死。 判断依据查看系统日志中,会
有内存溢出异常。

建议:启动迁移工具将迁移工具的内存调大,修改安装目录下
->migration->Migration.ini 文件中
-vmargs
-Xms1024m
-Xmx2048m

2、
由于数据库设置导致。
例如目标库为GBase8t 时工具采取多线程插入,
会造
成死锁等现象,造成工具假死。判断依据工具中任务卡住,点击执行停止等操
作无任何反应,日志中无报错信息。

建议:首先数据库建议使用行级锁。其次在性能运行的前提下调大并发读写线
程数,降低死锁的概率。

在一些特殊的情况下,转义符将不起作用,换句话说,就是对导出的数据不进行转
义。
字符型数据不转义的特殊情况:
如果设定字段包围符(FIELDS ENCLOSED BY)为空,导出的字段中的字符与字

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 235
段分隔符首字符(FIELDS TERMINATED BY)相同,并且字段分隔符(FIELDS
TERMINATED BY)首字符是“n、t、r、b、0、Z、N”之一。这种情况下是不对
导出的字符进行转义的。
示例中用到的表及数据:
DROP TABLE IF EXISTS t;
CREATE TABLE t(n int, v1 varchar(5), v2 varchar(8));
INSERT INTO t VALUES(102, 'ab', 'xmny');
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/unescaped_1.txt' FIELDS TERMINATED B
Y 'n' ENCLOSED BY '';
查看导出文件:
$ cat unescaped_1.txt
102nabnxmny
可见字符串中“xmny”中的字符“n”没有转义。
非字符型数据不转义的特殊情况:
如果opt_enclosed 判定为真(判断条件请见说明部分),当导出数据中某字符与
FIELDS TERMINATED BY 设置的字段分隔符首字符相同,并且字段分隔符首字符
是“.、0、1、2、3、4、5、6、7、8、9、e、+、-”之一时,这种情况下是不对导
出的字符进行转义的。
说明
满足如下判断条件之一时,opt_enclosed 为真:
TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"';
ENCLOSED BY '';
OPTIONALLY ENCLOSED BY '';
不写ENCLOSED BY 子句;
示例中用到的表及数据:
DROP TABLE IF EXISTS t;
CREATE TABLE t(n int, v1 varchar(5), v2 varchar(8));
INSERT INTO t VALUES(102, 'ab', 'xmny');
示例1:使用“FIELDS TERMINATED BY '2' OPTIONALLY ENCLOSED BY '"'”,
非字符型数据“102”中的“2”没有转义。
gbase> SELECT * FROM t INTO OUTFILE '/home/gbase/temp/unescaped_2.txt' FIELDS
TERMINATED BY '2' OPTIONALLY ENCLOSED BY '"';
Query OK, 1 row affected
查看导出文件:

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 236
$ cat unescaped_2.txt
1022"ab"2"xmny"
示例2:
使用
“FIELDS TERMINATED BY '2' ENCLOSED BY ''”

非字符型数据
“102”
中的“2”没有转义。
gbase> SELECT * FROM t INTO OUTFILE '/home/gbase/temp/unescaped_3.txt' FIELDS TERM
INATED BY '2' ENCLOSED BY '';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_3.txt
1022ab2xmny
示例3:“FIELDS TERMINATED BY '2' OPTIONALLY ENCLOSED BY ''”,非字
符型数据“102”中的“2”没有转义。
gbase> SELECT * FROM t INTO OUTFILE '/home/gbase/temp/unescaped_4.txt' FIELDS
TERMINATED BY '2' OPTIONALLY ENCLOSED BY '';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_4.txt
1022ab2xmny
示例4:使用“FIELDS TERMINATED BY '2'”,非字符型数据“102”中的“2”
没有转义。
gbase> SELECT * FROM t INTO OUTFILE '/home/gbase/temp/unescaped_5.txt' FIELDS
TERMINATED BY '2';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_5.txt
1022ab2xmny