数据库日志相关参数:默认设置

log_destination = 'stderr'      # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on. logging_collector = on # Enable capturing of stderr and csvlog
log_directory = 'sys_log' # directory where log files are written,
#log_filename = 'kingbase-%Y-%m-%d_%H%M%S.log' # log file name pattern,
#log_file_mode = 0600 # creation mode for log files,
#log_rotation_age = 1d # Automatic rotation of logfiles will(按时间自动轮换分割日志)
#log_rotation_size = 10MB # Automatic rotation of logfiles will(按大小自动轮换分割日志)

其中log_destination包括stderr、csvlog和syslog,默认值是stderr格式,csvlog记录内容会比stderr更详细

—stderr时

[kingbase2@localhost sys_log]$ tail -1 kingbase-2023-01-04_000000.log
2023-01-04 14:12:56.979 CST [3037] STATEMENT: select userid::regrole, dbid, query from sys_stat_statements order by mean_time desc limit 5;

—csvlog 时,会记录数据库、用户信息等

TEST=# alter system set log_destination ='csvlog';
ALTER SYSTEM
TEST=#
TEST=# select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row) TEST=# show log_destination ;
log_destination
-----------------
csvlog
(1 row) [kingbase2@localhost sys_log]$ tail -4 kingbase-2023-01-05_153654.csv
2023-01-05 15:39:13.368 CST,"system","test",4934,"[local]",63b67e91.1346,1,"idle",2023-01-05 15:38:57 CST,4/4681,0,ERROR,42601,"syntax error at or near ""switch""",,,,,,"alter system switch logfile;",14,,"kingbase_*&+_"

KingbaseES数据库日志查看方式只能到默认的sys_log目录下打开数据库日志查看,这种查看方式类似于oracle中的alert log

[kingbase2@localhost sys_log]$ cat  kingbase-2023-01-05_153654.csv |egrep error
2023-01-05 15:39:13.368 CST,"system","test",4934,"[local]",63b67e91.1346,1,"idle",2023-01-05 15:38:57 CST,4/4681,0,ERROR,42601,"syntax error at or near ""switch""",,,,,,"alter system switch logfile;",14,,"kingbase_*&+_"

但是有的时候我们会被这种显示格式困扰,不容易直观的查看。

下面介绍一种日志查看方式:

TEST=# CREATE   TABLE public.sys_log (
TEST(# logtime timestamp with time zone,
TEST(# loguser text,
TEST(# logdatabase text,
TEST(# logpid text,
TEST(# loghost text,
TEST(# logsessionid text,
TEST(# logcmdcount text,
TEST(# logcmdtag text,
TEST(# logsessiontime timestamp with time zone,
TEST(# logtransaction text,
TEST(# log_level text,
TEST(# logseverity text,
TEST(# logstate text,
TEST(# logmessage text,
TEST(# logdetail text,
TEST(# loghint text,
TEST(# loginternalquery text,
TEST(# loginternalquerypos text,
TEST(# logcontext text,
TEST(# logquery text,
TEST(# logquerypos text,
TEST(# loglocation text,
TEST(# logapplicationname text);
CREATE TABLE
test=# copy public.sys_log from '/opt/Kingbase/ES/V8/data/sys_log/kingbase-2023-01-05_153654.csv' with csv;
COPY 1
test=# select * from public.sys_log limit 1;
TEST=# \x
Expanded display is on.
TEST=# select * from public.sys_log limit 1;
-[ RECORD 1 ]-------+---------------------------------
logtime | 2023-01-06 05:39:13.368000+08
loguser | system
logdatabase | test
logpid | 4934
loghost | [local]
logsessionid | 63b67e91.1346
logcmdcount | 1
logcmdtag | idle
logsessiontime | 2023-01-06 05:38:57+08
logtransaction | 4/4681
log_level | 0
logseverity | ERROR
logstate | 42601
logmessage | syntax error at or near "switch"
logdetail |
loghint |
loginternalquery |
loginternalquerypos |
logcontext |
logquery | alter system switch logfile;
logquerypos | 14
loglocation |
logapplicationname | kingbase_*&+_

注:

logtransaction 记录事务的一个位置

log_level 日志的级别

logseverity 对应FATAL, ERROR, WARN, INFO, ALL,等等,根据设置的level去记录对应的日志。

这样可以过滤出想要的内容,查看更加直观简洁,但只能每一个日志文件copy进去一张表中。

还有一种方法,可以使用file_fdw插件去直接读取数据库以外的日志文件,如下所示:

test=# create extension file_fdw;
CREATE EXTENSION
test=# \dx file_fdw;
List of installed extensions
Name | Version | Schema | Description
----------+---------+--------+-------------------------------------------
file_fdw | 1.0 | public | foreign-data wrapper for flat file access
(1 row) 创建外部表接口
test=# create server ser_file_fdw foreign data wrapper file_fdw;
CREATE SERVER 查看外部服务接口
test=# \des
List of foreign servers
Name | Owner | Foreign-data wrapper
--------------+--------+----------------------
ser_file_fdw | system | file_fdw
sysaudit_svr | system | sysaudit_fdw
(2 rows) 创建外部表查看日志
test=# CREATE foreign TABLE public.sys_log_svt (
test(# logtime timestamp with time zone,
test(# loguser text,
test(# logdatabase text,
test(# logpid text,
test(# loghost text,
test(# logsessionid text,
test(# logcmdcount text,
test(# logcmdtag text,
test(# logsessiontime timestamp with time zone,
test(# logtransaction text,
test(# log_level text,
test(# logseverity text,
test(# logstate text,
test(# logmessage text,
test(# logdetail text,
test(# loghint text,
test(# loginternalquery text,
test(# loginternalquerypos text,
test(# logcontext text,
test(# logquery text,
test(# logquerypos text,
test(# loglocation text,
test(# logapplicationname text
<kingbase-2023-01-05_153654.csv',format 'csv',header 'true',delimiter ',',null ' ');
CREATE FOREIGN TABLE test=# select * from sys_log_svt limit 1;
logtime | loguser | logdatabase | logpid | loghost | logsessionid | logcmdcount | logcmdtag |
logsessiontime | logtransaction | log_level | logseverity | logstate | logmessa
ge | logdetail | loghint
| loginternalquery | loginternalquerypos | logcontext | logquery
| logquerypos | loglocation | logapplicationname
-------------------------------+---------+-------------+--------+---------+---------------+-------------+-----------+---
---------------------+----------------+-----------+-------------+----------+--------------------------------------------
--------------------------------------+-----------+---------------------------------------------------------------------
------------------------------+------------------+---------------------+------------+-----------------------------------
--+-------------+-------------+--------------------
2023-01-06 08:42:16.201000+08 | system | test | 15396 | [local] | 63b6a982.3c24 | 1 | SELECT | 20
23-01-06 08:42:10+08 | 4/4954 | 0 | ERROR | 42883 | function to_datetime(integer, integer, inte
ger, integer, integer) does not exist | | No function matches the given name and argument types. You might nee
d to add explicit type casts. | | | | select to_datetime(2022,1,1,01,01)
; | 8 | | kingbase_*&+_
(1 row)

以上两种方法可以将数据库日志以数据库表的方式进行查看,可以过滤出想要的内容,查看更加简洁。

怎样更直观的查看KingbaseES数据库日志的更多相关文章

  1. 查看oracle数据库日志存放位置

    1,默认情况下,oracle的日志文件记录在$ORACLE/rdbms/log目录下 [oracle@oracle log]$ pwd /home/oracle/oracle/product/11.2 ...

  2. 查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。

    作为一名合格的 Linux 运维工程师,一定要有一套清晰.明确的解决故障思路,当问题出现时,才能迅速定位.解决问题,这里给出一个处理问题的一般思路: 重视报错提示信息:每个错误的出现,都是给出错误提示 ...

  3. SOME:收缩数据库日志文件,查看表数据量和空间占用,查看表结构索引修改时间

    ---收缩数据库日志文件 USE [master]ALTER DATABASE yourdatabasename SET RECOVERY SIMPLE WITH NO_WAITALTER DATAB ...

  4. SQL Server中怎么查看每个数据库的日志大小,以及怎么确定数据库的日志文件,怎么用语句收缩日志文件

    一,找到每个数据库的日志文件大小 SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文 ...

  5. 一件关于数据库日志log的无聊事情

    为何说是无聊的记录呢? 因为事先把问题想复杂了,事后发现的时候觉得更是无聊的行为.还是写下来,毕竟很少弄这么无聊的事情. 事情起因是需要给服务器做性能基数(baseline),用sqldiag 提取了 ...

  6. 【MySQL】锁——查看当前数据库锁请求的三种方法 20

    MySQL提供了查看当前数据库锁请求的三种方法:1. show  full  processlist命令  观察state和info列 2. show engine  innodb status\G ...

  7. KingbaseES 数据库软件卸载

    关键字: KingbaseES.卸载   一.安装后检查 在安装完成后,可以通过以下几种方式进行安装正确性验证: 1. 查看安装日志,确认没有错误记录; 2. 查看开始菜单: 查看应用程序菜单中是否安 ...

  8. KingbaseES 数据库删除功能组件

      关键字: KingbaseES.卸载.删除功能   一.安装后检查 在安装完成后,可以通过以下几种方式进行安装正确性验证: 1. 查看安装日志,确认没有错误记录; 2. 查看开始菜单: 查看应用程 ...

  9. KingbaseES数据库目录结构

    KingbaseES数据库目录结构 [kingbase@postgres V8]$ tree -LP 2 data/ . ├── data │ ├── base # 存储用户创建的数据库文件及隶属于用 ...

  10. sql server 2008中清除数据库日志的sql语句

    第一步: Use  数据库名 Select NAME,size From sys.database_files 将“数据库名”改为需要清除日志的数据库名字,点击“执行”查询出需要清除的日志名称:**_ ...

随机推荐

  1. 程序员应具备的PS基本技能(二):程序员切图最常使用的工具组-选择工具组

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. 【Docker】使用 Docker 部署 .Net Core 项目 (四)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  3. EXE程序缺DLL怎么办

    起因 工程师发给用户一个VS编译的windows应用程序,客户反应打不开,报缺少dll.可是dll明明就在当前目录啊,为什么还会报错呢? 那应该是该DLL依赖的其它DLL不存在导致的,用depends ...

  4. 【Azure App Service】如何来停止 App Service 的高级工具站点 Kudu ?

    问题描述 如何来停止 App Service 的高级工具站点 Kudu ? kudu 介绍 Kudu 提供了一组面向开发人员的工具和扩展点,用于您的应用服务应用程序. Kudu (Advanced T ...

  5. 【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因

    问题描述 在App Server的部署中心配置好本地Git 仓库 并推送 git push azure master 分支代码到服务器时,并未发生错误 ,但是服务异常,无法访问到正确的项目文件,始终打 ...

  6. [C++] epoll编写的echo服务端

    直接贴代码,代码是运行在Linux上面的,通过 g++ epoll.cpp编译 #include <sys/socket.h> #include <sys/epoll.h> # ...

  7. [linux 爬坑] 几个linux发行版尝试和令人崩溃的ssr安装体验

    最近电脑上的manjaro好像出了问题,长时间不用就会死机.也懒得追究原因了,正好决定尝试几个发行版.首先尝试安装银河麒麟    这个发行版实际上就是ubuntu,甚至源什么的都是ubuntu的,也不 ...

  8. Rust 登上了开源头条「GitHub 热点速览」

    抱歉!上周因为出月刊工作量比较大,所以「GitHub 热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例. 说回本周的热门开源项目,Rust 语言可谓是出 ...

  9. Java 在三个数字中找出最大值

    1 int aa1 = 11000000; 2 int aa2 = 20000; 3 int aa3 = 6000; 4 5 //第一种 6 int max = (aa1 > aa2)? aa1 ...

  10. Java多线程转账

    Java多线程转账 关键词:多线程,Java 以前的一道面试题,要求是使用Java多线程,实现一个转账业务.不考虑数据库,不考虑其他第三方系统.只考虑当前Java程序内各个账户进行转账,保证转账金额正 ...