视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
GBASE培训QA
2025-09-29 03:02:17 责编:小OO
文档
1. 问:opt空间放多大?业务数据能指定位置吗?

答:opt在生产环境需要TB级容量,一般生产环境都能达到。

业务数据可以指定位置,即自己建立表空间。但是建议使用默认/opt空间,可以在初始做RAID后将最大的逻辑盘分配给/opt。

2. 问:gcware等服务启停在哪个节点上执行?

答:每个节点都需要单独去启停gcware等服务。可以使用C3工具在

某一个节点上统一启停所有节点的服务。需要注意:C3工具只能在

集群的一个节点上部署使用,生产环境慎用C3工具,因为曾发生过

因使用C3工具导致发出命令太多导致服务器cpu全占满的情况。

3. 问:Liunx的root密码在安装完操作系统后是否能修改?

答:能修改,但不建议修改,一旦修改需要在集群各节点重新手动

建立互信,因为集群内部很多服务和通信需要使用linux的root用户。

4. 问:监控工具的阈值是否能设置?

答:能设置,在采集中心安装目录GClusterMoniterCenter/conf下修改

alarmKeyItems.properties文件,修改后需要重新启动采集中心服务后

起效。

5. 问:gcadmin showlock能否看到这个sql的进程号?有什么方式能

看到进程号?

答:可以。新版集群的gcadmin showlock命令可以看到sql的进程

id,在content栏目中可查看id,举例如下:

[gbase@wdz150 ~]$ gcadmin showlock

+===============================================+

| GCLUSTER LOCK |

+===============================================+

+---------+-----+-------+-----------+------+----+

|Lock name|owner|content|create time|orphan|type|

+---------+-----+-------+-----------+------+----+

Total : 0

[gbase@wdz150 ~]$ gcadmin showlock

+=============================================================================================== | GCLUSTER

LOCK |

+=============================================================================================== +--------------------------------------------+--------------+----------------+-----

---------+------+----+| Lock name | owner | content | create time |orphan|type|

+--------------------------------------------+--------------+----------------+--------------+------+----+

|test |192.168.103.32|LOCK_DMLEX: 23 |20140312172619|FALSE |S |

+--------------------------------------------+--------------+----------------+--------------+------+----+

|test.tt580d5f90-b287-4199-b057-e6fbd44b5bfa |192.168.103.32|LOCK_DMLEX: 23 |20140312172619|FALSE |E |

+--------------------------------------------+--------------+----------------+--------------+------+----+

|test.tt |192.168.103.32|LOCK_DDL_DML: 23|20140312172619|FALSE |S |

+--------------------------------------------+--------------+----------------+--------------+------+----+

|test.tt.09b5beec-1ef7-4fa6-9850-c4217a781e0f|192.168.103.32|LOCK_DMLEX: 23 |20140312172619|FALSE |E |

+--------------------------------------------+--------------+----------------+--------------+------+----+

Total : 4

然后在锁的节点上,另外启动一个session,连接数据库后,检查id是content中的数字的为执行的sql。

gbase> show processlist;

+----+-------+----------------------+------------+---------+------+-------+---------------------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+-------+----------------------+------------+---------+------+-------+---------------------------------+

| 23 | root | localhost | test | Query | 3 | init | insert into tt select * from tt |

| 24 | root | 192.168.103.32:30294 | test | Sleep | 95 | | NULL |

| 25 | gbase | 192.168.103.32:30297 | NULL | Sleep | 95 | | NULL |

| 26 | gbase | 192.168.103.32:30298 | NULL | Sleep | 2245 | | NULL |

| 27 | gbase | 192.168.103.32:30302 | gclusterdb | Sleep | 2245 | | NULL |

| 28 | gbase | 192.168.103.32:30305 | NULL | Sleep | 2245 | | NULL |

| 30 | root | localhost | test | Query | 0 | NULL | show processlist |

| 31 | root | 192.168.103.32:30357 | NULL | Sleep | 2 | | NULL |

+----+-------+----------------------+------------+---------+------+-------+---------------------------------+

8 rows in set (Elapsed: 00:00:00.00)

6. 问:中文字符是占3个字节吗?

答:utf8下是一个中文字符占3个字节,gbk下是一个中文字符占2个字节

7. 问:oracle中date可包含时间,8a中date可以吗?还是必须

datetime才可以?

答:8a的date中只保存日期,insert时如果有时间语法可以过去,但实际不存储时间,要存储时间必须使用datetime类型。

日期和时间的组合类型支持的范围是‚0001-01-01 00:00:00.000000‛到‚9999-12-31 23:59:59.999999‛,精确到微秒;time类型也是精确到微妙;timestamp只精确到秒。

8. 问:Timestamp范围太小了,合同之类的期限超过2038年很正

常,是否能扩大?

答:目前只支持这个范围,超过范围建议使用datetime类型

9. 问:用什么能获得系统当前时间?

答:now()函数

10. 问:公司建议的字符集是gbk还是utf-8?

答:建议使用utf-8

11. 问:修改列建议放开字段varchar的长度。

答:经过研发确定,字段类型不能使用alter命令修改。只能新增一列,然后用update语句更新。

12. 问:修改列的顺序,只能first吗?

答:列的顺序可以修改first和after两种,这两种可以满足列的所有顺序更改。语法:

alter table [database_name.]table_name

MODIFY [COLUMN] col_name column_definition FIRST | AFTER

13. 问:truncate table 会记录日志吗?它对比drop table的性能如何?

truncate实现原理?答:不会记录日志。Truncate table是清空表的数据,数据清空后,表依然存在,drop table是删除表,是把对象也删除了,在GBase8a集群中,理论上,drop table比truncate table多做了一些工作。

14. 问:nocopies表是否能被加载?

答:经验证,nocopies表8.5.1.2版本支持加载

15. 问:datetime:“YYYY-MM-DD HH:MI:SS ”格式显示批量加

载时,能否处理空格?rtrim、ltrim

答:加载工具本身不具备数据清洗功能,空格等都不会做处理。数据清洗可以放在入库前或入库后,建议入库前做清理,这样不会影响数据库性能。数据库每时每刻都在承载着查询,在查询量小点时需要抓紧时间做加载来保证查询和入库的性能,如果同时再承载数据的库内清洗,性能肯定会受影响,所以建议在库外做清洗,保证数据库性能。

16. 问:230种文件,上千多个文件清洗,临时存储想用存储过程清

洗,咱这边不建议用,有什么好的处理方案吗?

答:具体的处理方案依赖于文件类型和清洗的要求,存储过程是在数据库内部进行数据操作的对象,在针对数据的处理上有明显优势,但如果是针对文本内容的约束性检查和处理,专用的清洗工具或者定制的清洗程序的处理效果会更好。

17. 问:多表关联时,where条件写法顺序有什么要求吗?

答:经研发确认8.5.1.2版本后的多表关联,既有join又有where条件时,优化器会根据字段类型和条数进行评估,故跟写法顺序无关。

18. 问:单表有多个where条件时,写法从右往左还是从左往右?规

则是什么?

答:经研发确认优化器会根据字段类型和条数进行评估,故跟写法顺序无关。

19. 问:初始建立了一个表并且指定了压缩模式,在后期能不能更

改该表的压缩模式

答:不能,除非删除该表,重新建立。一个表的压缩模式指定后不能后续再进行更改20. 问:audit_log与oracle的审计日志有什么区别,是否很耗性能?答:比较耗性能。在目标和作用上,autit_log与oracle的审计日志没有区别,但由于是不同的数据库产品,在内部实现上和记录的内容上会有所不同。由于审计日志会对所有审计对象的所有审计动作实时记录日志,所以会额外地大量增加数据库的工作量,会在一定程序上消耗性能,审计对象越多、审计动作越多,则性能消耗越大。

21. 问:是否有最耗时的sql排名

答:监控网站上可查看最耗时的sql排名,但是比较耗性能。

22. 问:将autocommit设置为false,执行一个sql文件,文件末尾有

commit,如果中间有语句执行失败,那之前的是sql是执行成功还是失败

答:错误SQL语句之前的sql没有执行成功。

gccli -uroot -p111111 -D test -vvv -- 会在错误语句停止,不往后执行。

[gbase@gcluster2 bin]$ cat testcommit.sql

set autocommit=0;

insert into t values(1,'1');

select * from t;

select count(*) from t;

insert into t values(1,1,'aa'); -- error

select count(*) from t;

commit;

select count(*) from t;

如果按下面命令执行

gccli -uroot -p111111 -D test -vvv -f -- 加上-f操作,会忽略错误继续执行后面的语句,故错误SQL之后的正确SQL会被commit,建议不要加-f操作。

23. 问:加载文件是否支持16进制分隔符?

答:format=3时支持16进制不可见的分隔符。16进制分隔符书写格式为:

delimiter='\\x01'

24. 问:源文件中分隔符之间什么都没有代表空,控制文件中如何

写?答:null_value=''或者不写null_value参数,''加载后都为空。

25. 问:是否能在启用加载服务时直接设置并行度,用于所有加载

任务。

答:不能,集群必须在控制文件中设置参数。

26. 问:table_fields是否可以不用写全所有字段

答:必须要写全所有字段,否则会一条也导不进去。

27. 问:ump导出的数据是全量的还是某个节点分片的?

答:不能导出数据,只能导出表结构。现有版本已不支持-d参数(导出数据/不导出数据参数)。下载本文

显示全文
专题