GBase 8a常用运维SQL
Tags: DBA脚本GBaseGBase 8a日常运维运维SQL
简介
gbase8a MPP数据库主要常用的是information_schema、performance_schema.、gbase系统库。
使用方法和MySQL非常类似,甚至可以使用MySQL 5.7客户端连接GBase 8a数据库。
常用SQL
使用超级管理员登录集群数据库(或使用企业管理器连接)
1 | gccli -u用户名 -p密码 -D连接的数据库 |
使用系统函数,查看当前系统信息
1 2 3 | select version(); select vc(); select user(); |
查看当前实例数据库信息
1 | show databases; |
切换当前连接数据库
1 | use information_schema; |
查看数据库中的tables表的总条数信息
1 | select count(*) from information_schema.tables ; |
查看当前集群中mydb数据库中所有表信息
1 | select TABLE_name from information_schema.tables where TABLE_SCHEMA='mydb'; |
查看当前集群中所有的视图信息
1 | select TABLE_name from information_schema.tables where TABLE_TYPE like 'VIEW'; |
查询当前节点gcluster层磁盘空间使用信息
1 2 | use performance_schema; select * from performance_schema.DISK_USAGE_INFO; |
查询集群某节点的gcluster层和gnode层磁盘空间使用信息
1 | select * from performance_schema.CLUSTER_DISK_USAGE_INFO where host='vm1'; |
如何查看哪些表是复制表,哪些是hash分布表,分布键是哪列?
1 | select dbName,tbName,isReplicate,hash_column from gbase.table_distribution where dbname= 'mydb' ; |
查询数据库中的用户和用户组信息
1 | select user from gbase.user; |
查询数据库中的用户与用户组role的关联关系
1 | select * from gbase.role_edges; |
使用show语句查看自己的语法执行错误、当前节点信息和系统参数
查询当前节点正在运行的线程信息:
1 | SHOW FULL PROCESSLIST; |
查询最后一条执行错误信息:
1 2 3 | use test; drop table a; -- a为不存在的表 show errors; |
查看系统参数(压缩)相关值
1 | show variables like '%compress%'; |
查看节点信息
1 2 | SHOW NODES; --如果有SUPER 权限,可以看到所有节点信息。 SHOW LOCAL NODE; --显示集群中客户端正在访问节点的信息。 |
其它命令
1、查看集群是否正常
1.1 查看集群状态
gcadmin
1.2 查看集群数据不一致情况,后面可选的数字,是显示event数量,默认16个
gcadmin showdmlevent [number]
gcadmin showddlevent [number]
gcadmin showdmlstorageevent [number]
指定表分片和IP
gcadmin showXXXevent dbname.tablename nX IP
比如
gcadmin showdmlevent testdb.t1 n1 192.168.0.11
1.3 重启集群服务
V8 在操作系统root下: service gcware start/stop/restart
V9 在dba用户下,一般是gbase: gcluster_services all start/stop/restart
2、集群命令行,用于执行SQL命令
su - gbase
交互模式 gccli -uUsername -pPassword -hIP
简单执行 gccli -uUsername -pPassword -hIP -e"show processlist"
批量文件 gccli -uUsername -pPassword -hIP < allSQL.txt
3、查看集群运行的SQL
3.1 指定节点
简单 show processlist
完整 show full processlist
详细 show detail processlist
3.2 所有调度节点
select COORDINATOR_NAME, ID, user, host, command, start_time, time, state, substring(info,0,100) info from information_schema.COORDINATORS_TASK_INFORMATION where command='query' and time >=0 order by time desc limit 10;
3.3 所有数据节点
select NODE_NAME, ID, user, host, command, start_time, time, state, substring(info,0,100) info from information_schema.GNODES_TASK_INFORMATION where command='query' and info is not null and info not like '%information_schema.processlist%' order by time desc limit 10;
4、导出数据
rmt:select * from ac08 where btime between '2020-01-01' and '2020-02-01' into outfile '/opt/ac08.txt' fields terminated by ',' ENCLOSED BY '"' null_value '\N'
5、加载数据
load data infile 'ftp://gbase:gbase@192.168.0.100//opt/ac08.txt' into table ac08 NULL_VALUE '\N' fields terminated by ',' ENCLOSED BY '"' DATETIME FORMAT ‘%Y-%m-%d %H:%i:%s’
带毫秒的日期
load data infile 'ftp://gbase:gbase@192.168.0.100//opt/ac08.txt' into table ac08 NULL_VALUE '\N' fields terminated by ',' ENCLOSED BY '"' DATETIME FORMAT ‘%Y-%m-%d %H:%i:%s.%f’
6、查看当前加载进度
select db_name,tb_name,IP,state,start_time,progress,total_size,loaded_size,loaded_records,skipped_records from information_schema.load_status order by db_name,tb_name;
7、查看历史加载结果
select task_id,db_name,tb_name,user,HOST_IP,start_time,end_time,elapsed_time,total_size,loaded_records,skipped_records from information_schema.load_result where start_time>'2020-07-26' order by start_time;
8、查看表、存储过程、函数
show tables;
show tables like '%XXX%' ;
show function status;
show procedure status;
9、查看表、函数、存储过程结构
show create table mytablename;
show create procedure myProc;
show create function myFunc;
10、查看变量
show variables like '%XXXX%';
查看状态
show status like '%meminfo%';
12、查看某个表占用的空间
select from information_schema.cluster_tables a where table_schema='testdb' and table_name='t1';
查看每个分片的空间
select from information_schema.CLUSTER_TABLE_SEGMENTS a where table_schema='testdb' and table_name='t1';
13、各种日志位置
服务 进程名字 默认日志位置
gcware corosync
服务启停日志,只有启动和停止信息
V8版本 安装目录/gcluster/log/gcluster/corosync_system.log
V9版本 安装目录/gcluster/log/gcluster/gcware_system.log
服务详细日志,详细的启动停止信息
V8版本 /var/log/corosync.log
V9版本 安装目录/gcware/log/gcware.log
gcadmin命令执行日志
V8版本 /var/log/gcware/gcware_XXXX.log
V9版本 安装目录/gcware/liblog/gcware.log
gcluster gclusterd
安装目录/gcluster/log/gcluster/system.log 启停日志
安装目录/gcluster/log/gcluster/express.log 引擎日志
安装目录/gcluster/log/gcluster/gclusterd.log 通用日志,记录可执行的SQL命令
安装目录/gcluster/log/gcluster/gclusterd-audit.log 审计日志,记录所有命令执行结果
gnode gbased 安装目录/gnode/log/gbase/system.log启停日志
安装目录/gnode/log/gbase/express.log引擎日志
syncserver gc_sync_server
安装目录/gnode/log/gbase/syncserver.log 服务日志
安装目录/gnode/log/gbase/ syncclient_XXXX.log 客户端日志
gcrecover
安装目录/gclusger/log/gcluster/ gc_recover.log 调度日志
安装目录/gclusger/log/gcluster/gcrecover_taskrecord.log 同步记录
安装目录/gclusger/log/gcluster/gcrecover_system.log 启停日志
gcmonit 安装目录/gclusger/log/gcluster/gcmonit.log 进程监控
gcmmonit 安装目录/gclusger/log/gcluster/gcmmonit.log 进程监控的监控