KingbaseES日志文件监控
KingbaseES数据库在运行过程中会在数据库安装目录/opt/Kingbase/ES/V8/data下的sys_log文件夹下产生日志文件文件,日志中主要记录的是数据库的waring、ERROR等信息,一般主要涉及到的监控:
- 数据库启动、关闭(数据库启动时的参数在实例目录data文件夹下的kingbase.conf文件)
- 数据库的redo日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;
- 数据库进行的某些操作,如创建或删除表空间、增加数据文件数据库会自动做一次checkpoint;
- 数据库法产生错误,如表空间里面的数据文件不够、出现坏块、数据库内部错误
数据库连接数
一般情况下数据库的连接数会随着应用的增加或用户的增加而发生变化,DBA要定时对数据库的连接情况进行检查,查看数据库建立的会话数是否有正常,连接设置太多会消耗数据库的资源。因此需要对数据库的连接数进行合理的设置。
以下的SQL语句可列出:
select datname as "Database", usename as "Username",
client_addr as "Host", client_port as "Port",
procpid as "PID", waiting as "Waiting" from sys_stat_activity
order by datname;
输出结果:
列出连接
Database | Username | Host | Port | PID | Waiting
-----------+----------+------+-------+-----+---------
TEMPLATE2 | SYSTEM | | | 5 | f
TEST | SYSTEM | ::1 | 50412 | 6 | f
(2 行)
其中:
Database 数据库名
Username 登录数据库的用户名
Host 执行查询的客户端的地址。
Port 执行查询的库护短的端口号
PID 登录数据库的进程pid
Waiting 当前是否处于等待状态。
如果DBA要断开数据库的会话连接,则执行:
alter system kill session 'PID';
注意,上例中PID中5是KingbaseES数据库的的后台进程,不要对这些会话进行任何操作。
单纯查数据库连接数:
select connections();
锁表监控
SELECT
datname,database,relation,sc.relname,objname,transactionid,transaction,pid,mode,granted
FROM
sys_lockssl left join sys_databasesd on sl.database=sd.oid left join sys_classsc on sl.relation=sc.oid
WHERE
sys_backend_pid()<>sl.pid
数据库上的事务,I/O统计信息
表 2SYS_STAT_DATABASE定义
视图查询:
保持之前的连接:
select * from SYS_STAT_DATABASE;
数据量的页面信息
表3 SYS_BUFFERS 定义
SELECT free_dirty_page,free_clean_page,used_dirty_page,used_clean_page FROM sys_buffers;
如果USED_DIRTY_PAGE值较大需要进行统计分析;
analyze;
内存参数查询
show shared_buffers;
设置数据库服务器将使用的共享内存缓冲区大小,该缓冲区为所有连接共用。从磁盘读入的数据(主要包括表和索引)都缓存在这里,适当提高该值可以减少数据库的磁盘IO,注意32bit的windows该值不宜超过1.3GB,32bit的linux该值不宜超过1.8G,64bit的平台可以设置根据物理内存大小设置。
show work_mem;
注:内部排序和哈希操作可使用的工作内存大小。业务逻辑的SQL中含有order by,group by、distinct等关键字的操作将使用该内存,如涉及这些操作的表或中间结果较大,要酌情增加该值;
show wal_buffers;
注:日志缓冲区的大小,是共享缓冲区的一个部分。如果单位时间事务的数据修改数据量较大。