人大金仓的简单巡查
查询人大金仓的版本
sys_ctl -V
sys_ctl --version
# 在ksql命令行工具中查询数据库版本
select version();
查询lincense的有效期
select get_license_validdays();
查看KES实例的启动时间和运行时间
select sys_postmaster_start_time();
# 当前无故障运行时间 (当前时间减去启动时间)
select date_trunc('second',current_timestamp-sys_postmaster_start_time()) as uptime;
查看数据库列表
# 在ksql中使用可以使用元命令
l
# 语句查询
select datname from sys_database;
查看数据库所占用的内存
# 查看当前数据所占内存大小
select sys_database_size(current_database())/1024/1024 || 'MB' MB;
# 查看所有数据所占内存的大小
select (sum(sys_database_size(datname))/1024/1024) || 'MB' MB from sys_database;
查看表和索引大小
# 查看表的大小
select sys_relation_size('public.t01')/1024 || 'KB' KB;
# 让系统决定查询结果的单位
select sys_size_pretty(sys_relation_size('public.t01'));
# 表和索引的大小
select sys_size_pretty(sys_total_relation_size('public.t01'));
# 索引的大小
select sys_size_pretty(sys_total_relation_size('public.t01')-sys_relation_size('public.t01'));
查看时区和时间
# 查看最近一次加载参数的时间
select sys_conf_load_time;
# 手动加载数据文件
sys_ctl reload
# 查看时区
show timezone;
# 查看当前时间
select now();
# 查看当前日期
select current_date();
# 查看时间(精确到秒)
select sysdate;
# 查看时间(timestamp)
select current_timestamp;
查看当前数据库名称
# 查看数据库名称
select current_catalog;
select current_database;
查看当前会话信息
# 查看当前会话的客户端ip和端口(如果服务器是本地登录则会显示为空)
select inet_client_port();
select inet_client_addr();
# 查看当前会话的进程ID
select sys_backend_pid;
查看数据库中的连接信息
# 查看数据中链接信息
select datname ,usename,client_addr,client_port from sys_stat_activity;
# 查看数据库
select datname,usename,client_addr,client_port from sys_stat_activity where datname is not null;
查看会话执行的sql信息
# 设置track_activities参数
show track_activities;
# 查看所有会话的sql信息
select datname,usename,client_addr,client_port from sys_stat_activity;
# 查看当前存在会话的sql信息
select datname,usename,client_addr,client_port from sys_stat_activity where datname is not null;
# 查看执行的sql语句
select datname,usename,query,state from sys_stat_activity where datname is not null;
# 查看当前正在执行状态的语句
select datname,usename,query,state from sys_stat_activity where state like 'active';
# 查询语句运行时间
select current_timestamp - query_start as runtime,datname,usename,pid,query ^Jfrom sys_stat_activity where state != 'idle';
处理事务阻塞会话
# 开启事务
begin
# 查询当前事务的di
sys_backend_pid
# 查看会话的事务状态
select datname,usename,query,wait_event,pid from sys_stat_activity where datname='test';
# 关闭会话的事务清理阻塞 # pid为事务ID
select sys_terminate_backend(pid);
# 取消运行时间比较长的sql语句但是不关闭会话
select sys_cancel_backend(p)
在金仓数据库中不允许使用kill杀死会话,比较危险