GBase 8a MPP使用时 数据库基础问题之三

2.2.9HeapUsed(,,) SystemUsed(,,) 代表什么
问题现象
HeapUsed(40316342048,97627136,8491566256) SystemUsed(212425116840,0,0)
表什么?
处理方法
HeapUsed(40316342048,97627136,8491566256) 表示各堆内使用了的内存大小,
相当于 show status 里的 heap used size
SystemUsed(212425116840,0,0) 指各堆在系统里 malloc 的大小;
顺序就是 cell( 或者 dc) large temp
gbase> show status like '%heap%';
+----------------------------------+-----------+
| Variable_name | Value |
+----------------------------------+-----------+
| Meminfo_dc_heap_availble_size | 536870912 |
| Meminfo_dc_heap_malloc_size | 0 |
| Meminfo_dc_heap_total_size | 536870912 |
| Meminfo_dc_heap_used_size | 0 |
| Meminfo_large_heap_availble_size | 268435456 |
| Meminfo_large_heap_malloc_size | 0 |
| Meminfo_large_heap_total_size | 268435456 |
| Meminfo_large_heap_used_size | 0 |
| Meminfo_temp_heap_availble_size | 268430464 |
| Meminfo_temp_heap_malloc_size | 0 |
| Meminfo_temp_heap_total_size | 268435456 |
| Meminfo_temp_heap_used_size | 4992 |
+----------------------------------+-----------+
12 rows in set (Elapsed: 00:00:00.01)
说明
HeapUsed 对应 show status used_size SystemUsed 对应 malloc_size ,而 total_size 受到
下面参数的控制。
#gbase_heap_data=512M
#gbase_heap_temp=256M
#gbase_heap_large=256M
2.2.10 设置 group_concat_max_len 参数后报错
问题现象
设置 group_concat_max_len 参数后,直接执行 SQL 导致执行报错:”source table
and destination table are not same”
drop table if exists td_calling_type_code_crm2qyzx2yzhy;
create table td_calling_type_code_crm2qyzx2yzhy(yn_vertical_type
varchar(20),crm_calling_type_name varchar(3000));
insert into td_calling_type_code_crm2qyzx2yzhy values('1',repeat('abcde',500));
set global group_concat_max_len=655360;
SELECT c.crm_calling_type_name_all
FROM td_calling_type_code_crm2qyzx2yzhy b
LEFT JOIN (
SELECT group_concat(crm_calling_type_name) crm_calling_type_name_all
,yn_vertical_type
FROM td_calling_type_code_crm2qyzx2yzhy
GROUP BY yn_vertical_type
,crm_calling_type_name
) c ON b.yn_vertical_type = c.yn_vertical_type;
解决方法:
set global group_concat_max_len 之后不退出直接执行 sql,不同 gn 层取到的值
不一样,导致创建临时表表结构不一致。修改全局配置项后需要退出当前会话,重
连生效。
2.3 权限
2.3.1 是否具备单独的 CREATE DATABASE 权限
问题现象
是否具备单独的 CREATE DATABASE 权限。
处理方法
没有单独的 CREATE DATABASE 权限,用户想要建库,需要被授予 db 级别权限
create on *.* 权限,在此权限下也可以建表。
2.3.2 unmask 权限使用说明
问题现象
脱敏功能下执行 sql 或存储过程报错,甚至 gcluster 宕机,需要检查 unmask 权限。
解决方法:
Unmask 是面向脱敏控制的权限,对于脱敏数据,拥有 unmask 权限的普通用户可以
看到原始数据,没有 unmask 权限的普通用户只能看到脱敏后的数据。权限是针对
普通用户的全局权限,不属于某一个 VC 或库表,在 gbase.user 表中 Unmask_priv
列可以查看用户的 unmask 权限。
Alter table tb alter col masked 修改脱敏属性,需要拥有 alter 和 unmask 权
限才可以执行。
新创建的数据库用户,赋予的 all 权限不包括 unmask 权限,unmask 权限需要单独
赋予。如:
gbase> create user unmaskuser;
Query OK, 0 rows affected (Elapsed: 00:00:00.88)
gbase> grant all on *.* to unmaskuser;
Query OK, 0 rows affected (Elapsed: 00:00:00.14)
gbase> select Unmask_priv,user from gbase.user where user='unmaskuser';
+-------------+--------------------------------------------------------
| Unmask_priv | user
+-------------+--------------------------------------------------------
| N
| unmaskuser
+-------------+--------------------------------------------------------
1 row in set (Elapsed: 00:00:00.12)
gbase> grant unmask on *.*.* to unmaskuser;
Query OK, 0 rows affected (Elapsed: 00:00:00.05)
gbase> select Unmask_priv,user from gbase.user where user='unmaskuser';
+-------------+--------------------------------------------------------
| Unmask_priv | user
+-------------+--------------------------------------------------------
| Y
| unmaskuser
+-------------+--------------------------------------------------------
1 row in set (Elapsed: 00:00:00.00)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值