0
点赞
收藏
分享

微信扫一扫

kingbase(人大金仓)数据库的常用知识点与简单巡检

seuleyang 2022-10-16 阅读 155




KES服务的启停



查看服务是否已设为开机自启



systemctl list-dependencies |grep kingbase




kingbase(人大金仓)数据库的常用知识点与简单巡检_sql


除了使用systemctl和service还可以使用sys_ctl管理KES服务



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_02


也可以到安装目录下的Server/bin/目录下执行sys_ctl命令


问题: 人大金仓数据库连接人数过多解决方法:


先执行:select  * from pg_stat_activity;


再执行:SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state='idle'


命令行工具--KSQL


kingbase命令行连接方式


一、使用SOCKET方式登录数据库


ksql -d test -U SYSTEM     (参数详解看一下help:ksql --help)


注意使用此方式连接无需用户密码



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_03


二、使用TCP/IP方式登录数据库



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_04


1.切换登录用户


2.切换连接的数据库


3.同时切换登录的用户和数据库



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_05


执行脚本


登录test库使用“\i”执行/tmp/test.sql脚本


非交互方式执行SQL(单条SQL)



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_06


非交互方式执行SQL(多条SQL)


把多条SQL语句写在一个脚本里然后执行



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_07



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_08


用户与角色


创建和修改用户



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_09


修改用户密码,(普通用户无密码不能登录)



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_10


修改用户的并发连接数



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_11


修改用户密码有效期为永久



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_12


修改属主,删除用户



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_13


创建角色



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_14


角色默认不能登录,需要授予登录权限: alter role角色名 login;


创建角色并允许登录:


create role user01 connection limit 2 password 'kingbase' valid until '2030-12-31' login;


利用角色对多个用户批量授权



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_15


加入到角色的用户 默认将自动继承 该角色拥有的所有权限


将用户加入到角色中



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_16


加入角色的第二种方法


create user 用户名 IN ROLE 角色名;


对象的访问权限入门


使用KSQL 元命令查看权限信息



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_17


查看用户对模式对象拥有的权限(\dp)



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_18


使用KSQL查权限的输出信息解读


授权与转授权



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_19


改变对象所有者



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_20


移除用户对表的权限



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_21



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_22


数据库、模式、表空间


数据库


查——>列出集簇中现有数据库的清单


\l



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_23


增——>创建数据库



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_24


test=# create user user05 password 'kingbase';
CREATE ROLE

test=# create database db03 owner user05 template template0
test-# encoding 'utf8' connection limit 10;
CREATE DATABASE
test=# \x
扩展显示已打开.

test=# \l+ db03
数据库列表
-[ RECORD 1 ]---------
名称 | db03
拥有者 | user05
字元编码 | UTF8
校对规则 | zh_CN.UTF-8
Ctype | zh_CN.UTF-8
存取权限 |
大小 | 12 MB
表空间 | sys_default
描述 |


改、查——>修改和查看修改后的数据库的属主和名称(\l+)”+“表示详细输出



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_25



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_26


删——>非属主/非超级用户或库正在使用不能删除



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_27



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_28


模式


查——>列出test库中的模式清单



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_29


增——>创建模式



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_30


改——>修改模式



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_31


查——>检查模式修改结果



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_32


删——>删除模式



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_33


表空间


查——>列出表空间的清单



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_34



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_35


增——>创建表空间


  • 规划表空间对应的文件系统目录


kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_36



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_37


新建表空间tbs01



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_38



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_39


改——>修改表空间



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_40


修改数据库默认表空间



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_41


移动表到新的表空间


  • 查看现有表空间是\db,数据库列表是\l


kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_42



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_43


查——>检查表空间修改结果



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_44


删——>删除表空间


  • 当提示非空,删除失败时:


kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_45



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_46



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_47



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_48



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_49


简单巡检


使用sys_ctl -V——查看版本


使用version函数查看版本


ksql test system -c 'select version()'


查看license有效期


ksql test system -c 'select get_license_validdays()'


查看KES实例启动时间和运行时常


select sys_postmaster_start_time();


查看KES无故障运行时长


select date_trunc('second',current_timestamp - sys_postmaster_start_time()) as uptime;


查看数据库列表


ksql test system -l


使用数据字典查看数据库列表


select datname from sys_database;


查看数据库占用的磁盘空间


  • 1. 统计当前数据库占用的磁盘空间

select sys_database_size(current_database())/1024/1024 || 'MB'  MB;


  • 2. 统计所有数据库占用的磁盘空间总量

select (sum(sys_database_size(datname))/1024/1024) || 'MB'  MB from sys_database;


查看表和索引的大小


统计表的空间占用


1.    select sys_relation_size('public.t02')/1024|| 'KB' KB;


2.    select sys_size_pretty(sys_relation_size('public.t02'));


统计表和与表关联的索引占用空间总量


1. select sys_total_relation_size('public.t02')/1024|| 'KB' KB;


2. select sys_size_pretty(sys_total_relation_size('public.t01'));


统计表的记录


select count(*) || ' rows' "rows" from public.t02;


查看时区时间


查看最近一次加载参数文件的时间


select sys_conf_load_time();


查看时区


show timezone;


查看当前日期或时间


#日期


select current_date;


#日期加时间

select now();

select current_timestamp;

select sysdate;


查看当前登录数据库的名称


select current_catalog;


select current_database();


查看当前会话信息


1.查看当前会话的客户端IP和端口(注意如果使用缺省方式登录则不会显示信息)


select inet_client_addr(),inet_client_port();



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_50


2.查看当前会话的服务器IP和端口(注意如果使用缺省方式登录则不会显示信息)


select inet_server_addr(),inet_server_port();


3.查看当前会话的后台进程ID


select sys_backend_pid();


#方法二


\! ps -ef|grep 30343|grep -v grep



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_51


查看数据库中的连接信息



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_52


查看所有会话执行的SQL信息


1.设置参数track_activities为on


show track_activities;


2.查看所有会话执行的SQL信息


select datname,usename,client_addr,client_port from sys_stat_activity;



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_53



3.只看正运行的SQL信息


select datname,usename,query,state^Jfrom sys_stat_activity ^Jwhere state not like 'idle%';



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_54



查看耗时较长的SQL


select current_timestamp - query_start as runtime,datname,usename,pid,query


from sys_stat_activity


where state != 'idle'


order by 1 desc;



kingbase(人大金仓)数据库的常用知识点与简单巡检_表空间_55



事务阻塞绘画的简单处理


一、关闭自动提交后删除记录


select sys_backend_pid();



kingbase(人大金仓)数据库的常用知识点与简单巡检_数据库_56


二、删除相同记录时发生锁等待事件



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_57


三、查询会话状态


select datname,usename,query,wait_event,pid from sys_stat_activity where datname='test';



kingbase(人大金仓)数据库的常用知识点与简单巡检_sql_58



后续更精彩......











举报

相关推荐

0 条评论