暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库KingbaseES集群日志管理

原创 数据猿 2024-05-17
903


关键字:

KingbaseES、日志管理、人大金仓

1.日志信息一览表

日志

日志描述

${install_dir}/kingbase/log/hamgr.log

集群repmgrd日志存放路径, ${install_dir}表示集群部署目录。 日志文件将通过系统 logrotate进行定期清理。

${install_dir}/kingbase/log/kbha.log

集群kbha日志存放路径, ${install_dir}表示集群部署目录。 日志文件将通过系统 logrotate进行定期清理。

${KINGBASE_DATA}/sys_log

数据库日志存放路径, ${KINGBASE_DATA}表示数据库目录

/var/log/message

操作系统日志

2.集群日志自动清理机制

集群中的hamgr.log和kbha.log日志文件将通过系统 logrotate日志管理工具按照大小或周期进行日志清理,具体清理策略查看${install_dir}/kingbase/etc//logrotate_ha.conf参数文件配置。

0 0 * * * . /etc/profile;/usr/sbin/logrotate -s /opt/cluster//kingbase/bin/../etc/logrotate_status /opt/cluster//kingbase/bin/../etc/logrotate_ha.conf

[kingbase@node1 share]$ cat /opt/cluster//kingbase/bin/../etc/logrotate_ha.conf

# Generate by sys_monitor.sh at 2024年 05月 06日 星期一 10:17:30 CST

/opt/cluster//kingbase/log/kbha.log {

weekly

maxsize 100M

su kingbase kingbase

create 0600 kingbase kingbase

rotate 3

copytruncate

dateext

}

/opt/cluster//kingbase/log/hamgr.log {

weekly

maxsize 100M

su kingbase kingbase

create 0600 kingbase kingbase

rotate 3

copytruncate

dateext

}

参数说明:

weekly,日志轮换时间周期,可以按照每天(daily),每周(weekly),每月(monthly)进行日志轮换;

maxsize,限制了日志文件轮换前允许达到的最大容量,一旦日志文件超过这个阈值,将开始日志轮换;

su kingbase kingbase,表示使用什么用户进行日志轮换,默认是集群部署用户;

create 0600 kingbase kingbase,表示日志的用户属组和操作权限;

rotate,表示保留最近第几次轮换产生的日志文件,如rotate 3,表示第四次轮换时,第一个日志文件将被删除;

copytruncate,表示日志轮换之后,会将现有的日志文件情况,并将内容复制到新的日志文件中;

dateext,表示轮换的日志文件添加日志扩展名,以便区分不同轮换周期的日志文件。

3.日志分析工具

为了解决集群环境中跨节点日志关联分析困难的问题,产品推出了halog_analyse.sh日志收集分析工具。该工具可以通过配置halog_analyse.conf参数文件来自定义日志收集的节点信息,关键字,日志日期范围等,然后对收集到的各个节点日志文件进行过滤并将结果输出到文件。

工具组成

执行文件halog_analyse.sh、halog_analyse、halog_collect在 bin 目录下,halog_analyse.conf配置文件在share 目录下。

脚本名

功能说明

halog_collect

日志收集二进制执行文件,位置在bin目录下;

halog_analyse

日志分析二进制执行文件,位置在bin目录下;

halog_analyse.sh

日志收集分析执行脚本,位置在bin目录下,使用时与halog_analyse.conf参数文件配合使用,读取其中参数配置,进行自动日志收集分析

halog_analyse.conf

日志收集分析参数文件,位置在share目录下,与halog_analyse.sh配合使用

halog_analyse.conf参数文件说明

配置项

参考值

描述

loga_port

loga_port

日志收集通信端口,默认端口65432。

begin_time

2024/01/30 14:00

需要分析的日志开始时间点,会根据本
机和各节点的时间差计算出各节点各自
的真实时间范围。

end_time

2024/01/30 15:00

需要分析的日志结束时间点,会根据本机和各节点的时间差计算出各节点各自 的真实时间范围。

ip_path

/usr/sbin/

配置系统工具 ip 所在的目录。

ssh_path

/usr/bin

配置系统工具 ssh 所在的目录。

ssh_or_scmd_port

配 置 远 程 执 行 工 具 端 口 号, 默 认 为空,此时自动使用工具的默认端口。当 use_ssh=true 时,使用 ssh,其默认端口为 22;当 use_ssh=false 时,使用 sys_securecmdd,其默认端口为8890。

use_ssh

TRUE

为 true 时使用 ssh,否则使用
sys_securecmdd。

kb_bin_path

/home/kingbase/cluster/test/ test/kingbase/bin

目标节点 Kingbase bin 目录绝对路径。

network_speed_limit (暂不支持)

1024(单位 KB)

设置单个进程的最大网络传输速度,单
位 KB,0 不做限制。

memory_limit

(暂不支持)

10(单位 MB)

设置单个进程最大内存使用量,单位
MB,0 不做限制。

local_ip

10.10.10.10

本机 IP 地址(不能使用 127.0.0.1)。

anal_file_save_path

/home/kingbase/anal_files

日志收集后,保存到本地目录。

result_file

/home/kingbase/halog_analyse.result

日志分析结果文件。

log_file

/home/kingbase/halog_analyse.log

日志收集分析过程中的日志输出文件。

log_level

DEBUG,INFO,NOTICE,WARNING,ERROR, ALERT,CRITor EMERG

日志输出等级。

log_facility

STDERR,LOCAL0, LOCAL1,..., LOCAL7, USER

STDERR,LOCAL0, LOCAL1, ..., LOCAL7, USER 日志输出位置。

node_ips

192.168.28.128,

192.168.28.129

配置需要做日志分析的节点 IP 列表。

remote_user

root

登录远端节点的用户名。

file_name_*

/home/kingbase/cluster/test/test/kingbase/hamgr.log

需要做分析的日志文件列表,’*’ 为文件 编号,从 1 开始,需要修改为该文件正 确的路径。

fname_format_*

hamgr-%Y-%m-%d-%H%M%Skbha.log-%Y%m%d

文件名格式,编号需要跟 file_name 保 持一致, 默认格式已填好,不需要修改。

time_reg_*

[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}

[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}

日志文件中解析时间字符串的正则表达 式,’*’ 必须跟 file_name 保持一致默认 正则已填好,不需要修改。

time_format_*

%Y-%m-%d %H:%M:%S

日志文件中的时间格式,’*’ 必须跟 file_name 保持一致默认的时间格式已 填好,不需要修改。

file_keyword_*

ERROR,error,FAILED,failed

需要收集的日志关键字,’*’ 必须跟 file_name 保持一致默认已支持集群切 换、节点自动恢复场景的日志过滤持续 补全中。

其中,kb_bin_path、local_ip、node_ips、remote_user 必须配置后,才能使用此工具。

使用约束

1. 必须配置本机到各节点的免密登录;

2. remote_user 对需要收集的文件有读取权限;

3. 本地用户对 anal_file_save_path 和 result_file 有读写权限;

4. 所配置的端口号没有被占用。

收集和分析日志

收集并分析日志

参考命令: ${install_dir}/bin/halog_analyse.sh halog_analyse.conf

此命令会对日志进行收集和分析,收集后的日志会存放在anal_file_save_path参数配置的路径下,分析后的结果放在result_file参数配置的文件中。在日志文件收集过程中,会收集每个节点的系统时间,然后和本机系统时间计算一个时间差, 保存到anal_file_save_path目录下。

分析日志

如果日志文件已收集,可以执行以下命令来分析日志

参考命令: ${install_dir}/bin halog_analyse.sh halog_analyse.conf –a

分析后,所有符合条件的日志会根据时间线排序,全部输出到结果文件中。在分析过程中,会以本机的时区和系统时间自动对每个节点进行时间校准。结果文件中会自动加上已校准的时间。

  • 自治事务有如下重要的特性:
  1. 事务的独立性

主事务和自治事务相互独立,各自的 TCL 操作互不影响,即主、自治事务的 commit/

rollback 互不干涉。

如下示例:匿名块中的 rollback 不会回滚 proc1 中的 t2 语句,proc1 中的 commit 也不会提交主事务的 t1 语句:

begin

insert into test1 values (1); --t0

commit;

insert into test1 values (2); --t1

proc1('this is my error message');

rollback;

end;

/

2. 数据的可见性

a) 主事务或其他事务仅已提交的更改对自治事务可见

b) 自治事务中已提交的更改对主事务和其他事务可见

用 1 中的例子加以说明,主事务的 t1 语句未提交,对于 proc1 不可见,t0 语句已提交, 对 proc1 可见;同理,自治事务的 t2 语句被提交后对主事务可见。

3. 数据的关联性

a) 自治程序可接受主事务传递的参数

b) 自治程序可返回结果集

c) 自治事务异常可以被主事务捕获

d) 自治程序的打印等信息可直接被主事务接收,使用透明

e) 自治程序的 OUT 参数对主事务同样生效

  • 自治事务示例

包中存储过程、并传递参数

create table accounts(account_id int, balance float);

insert into accounts values (7715, 5000.5);

CREATE OR REPLACE PACKAGE pac1 AS

procedure f1(id int, n float);

END;

/

CREATE OR REPLACE PACKAGE body pac1 AS

procedure f1(id int, n float) as

pragma autonomous_transaction;

begin

insert into accounts values (id, n);

update accounts set balance = balance - 100 where account_id =id;

commit;

end;

END;

/

BEGIN

call pac1.f1(7720, 5680);

rollback;

END;

/

参考资料

《金仓数据守护集群和读写分离使用手册》

最后修改时间:2024-05-17 15:03:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论