KingbaseES启动数据库失败后如何分析
关键字:
KingbaseES、sys_ctl、启动日志
一、KingbaseES数据库服务启动
1.1 数据库启动机制
1) 数据库通过sys_ctl工具手工启动数据库服务kingbase。
2) 对于sys_ctl工具需要通过-D参数指定数据库数据存储路径。
3) 数据库启动需要读取kingbase.conf文件,获取数据库实例初始化的参数配置。
4) 数据库启动时产生的日志信息可以写入到指定的日志文件或显示在标准输出上。
5) 可以通过数据库启动日志来判断、分析数据库启动的故障原因。
1.2 数据库服务启动工具sys_ctl

图1-1 sys_ctl工具帮助信息
二、数据库服务启动故障分析
2.1 数据库启动端口被占用案例
案例说明:
数据库在启动时,日志信息提示“could not bind IPv4 address "0.0.0.0": Address already in use“,查看数据库服务端口(default:54321),此端口在系统下处于”Listen“状态,已经被其他数据库服务占用。如果在主机上启动多个数据库实例,需要修改port,避免实例之间的数据库服务端口冲突。
故障现象:
[kingbase@node1 data]$ /opt/Kingbase/ES/V8R6_021/Server/bin/sys_ctl start -D /data/kingbase/v8r6_021/data
waiting for server to start....2021-03-01 12:52:31.989 CST [15825] LOG: sepapower extension initialized
2021-03-01 12:52:31.991 CST [15825] LOG: starting KingbaseES V008R006C004B0021 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
2021-03-01 12:52:31.991 CST [15825] LOG: could not bind IPv4 address "0.0.0.0": Address already in use
2021-03-01 12:52:31.991 CST [15825] HINT: Is another kingbase already running on port 54321? If not, wait a few seconds and retry.
2021-03-01 12:52:31.991 CST [15825] LOG: could not bind IPv6 address "::": Address already in use
2021-03-01 12:52:31.991 CST [15825] HINT: Is another kingbase already running on port 54321? If not, wait a few seconds and retry.
2021-03-01 12:52:31.991 CST [15825] WARNING: could not create listen socket for "*"
2021-03-01 12:52:31.991 CST [15825] FATAL: could not create any TCP/IP sockets
2021-03-01 12:52:31.991 CST [15825] LOG: database system is shut down
stopped waiting
sys_ctl: could not start server
Examine the log output.
故障分析:
查看端口(54321)使用情况,可以获知54321端口已经被占用:
[kingbase@node1 data]$ netstat -antlp|grep -i listen|grep :54321
tcp 0 0 0.0.0.0:54321 0.0.0.0:* LISTEN 14665/kingbase
tcp6 0 0 :::54321 :::* LISTEN 14665/kingbase
查看数据库服务相关进程:
[kingbase@node1 data]$ ps -ef |grep 14665
kingbase 14665 1 0 12:51 ? 00:00:00 /home/kingbase/cluster/R6HA/KHA/kingbase/bin/kingbase -D /home/kingbase/cluster/R6HA/KHA/kingbase/data
kingbase 14669 14665 0 12:51 ? 00:00:00 kingbase: logger
kingbase 14671 14665 0 12:51 ? 00:00:00 kingbase: startup recovering 000000070000000200000086
kingbase 14672 14665 0 12:51 ? 00:00:00 kingbase: checkpointer
kingbase 14673 14665 0 12:51 ? 00:00:00 kingbase: background writer
kingbase 14674 14665 0 12:51 ? 00:00:00 kingbase: stats collector
kingbase 14676 14665 0 12:51 ? 00:00:02 kingbase: walreceiver streaming 2/860023B0
kingbase 15088 14665 0 12:52 ? 00:00:01 kingbase: esrep esrep 192.168.7.248(26056) idle
kingbase 15769 14665 0 12:52 ? 00:00:00 kingbase: system test ::1(26355) idle
故障解决:
修改数据库服务端口号:
[kingbase@node1 data]$ cat kingbase.conf |grep port
port = 54322 # (change requires restart)
2.2 数据库启动内存分配错误案例
案例说明:
数据库实例在启动时,日志信息提示“could not map anonymous shared memory: Cannot allocate memory“。数据库服务无法获取buffer分配,导致实例启动失败。通过重新配置内核,增加共享内存的尺寸或者缩小数据库共享buffer大小(shared_buffer)来解决问题。
故障现象:
[kingbase@node1 data]$ /opt/Kingbase/ES/V8R6_021/Server/bin/sys_ctl start -D /data/kingbase/v8r6_021/data
waiting for server to start....2021-03-01 13:01:46.176 CST [20183] LOG: sepapower extension initialized
2021-03-01 13:01:46.179 CST [20183] LOG: starting KingbaseES V008R006C004B0021 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
2021-03-01 13:01:46.179 CST [20183] LOG: listening on IPv4 address "0.0.0.0", port 54322
2021-03-01 13:01:46.179 CST [20183] LOG: listening on IPv6 address "::", port 54322
2021-03-01 13:01:46.316 CST [20183] LOG: listening on Unix socket "/tmp/.s.KINGBASE.54322"
2021-03-01 13:01:46.383 CST [20183] FATAL: could not map anonymous shared memory: Cannot allocate memory
2021-03-01 13:01:46.383 CST [20183] HINT: This error usually means that Kingbase's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 8850808832 bytes), reduce Kingbase's shared memory usage, perhaps by reducing shared_buffers or max_connections.
2021-03-01 13:01:46.383 CST [20183] LOG: database system is shut down
stopped waiting
sys_ctl: could not start server
Examine the log output.
故障分析:
查看kingbase.conf文件中buffer的配置参数:
[kingbase@node1 data]$ cat kingbase.conf |grep buffer
shared_buffers = 8192MB # min 128kB
查看系统内存使用情况:
[kingbase@node1 data]$ free -m
total used free shared buff/cache available
Mem: 3381 435 2060 70 885 1833
Swap: 2815 0 2815
===从kingbase.conf文件中查看buffer配置(8192M),已经超出了系统物理内存和swap分区的总和(3381+2815 M),导致数据库实例无法获取到指定的buffer,从而导致实例启动失败。===
故障解决:
修改kingbase.conf文件调整buffer的大小:
[kingbase@node1 data]$ cat kingbase.conf |grep -i shared_buffer
shared_buffers = 1024MB # min 128kBM
三、总结
对于数据库服务启动的故障,可以根据启动的日志信息进行分析、判断所产生的故障原因;一般数据库服务启动的故障,大部分和数据库的配置(kingbase.conf)参数有关,所以在分析、解决问题时,可以结合配置文件参数的配置和系统环境配置进行处理。
参考文档:
[安装与升级]基于Linux系统的数据库软件安装指南(单机版)]
KingbaseES启动数据库失败后如何分析的更多相关文章
- mongodb 启动数据库失败原因及解决办法
刚开始接触mongodb 每次启动完数据库 用好之后退出时直接 command+q强制退出了 导致了下一次数据库启动失败 错误原因: 上一次退出数据库端口号并没有杀死 解决办法 lsof -i tc ...
- Oracle 数据库 JOB 失败后解密法重试
因为官方文档上没有找到相关的说明,所以这里进行了例如以下測试,为了找到oracle数据库中 job 失败后重试时间的规律. 数据库版本号:11.2.0.3 測试说明:这里创建了一个日志表以及一个执行时 ...
- 【BUG】插入或者更新超过限制后写入数据库失败
Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your ...
- 用户关注微信公众号后,获取该用户的openID存数据库失败
关注微信公众号后将关注人的openID存入数据库失败,而openID换成字符串写死却可以存入数据库: $wxid=$postObj->FromUserName; $data['wx_openid ...
- oracle数据库默认是10次尝试失败后锁住用户
一般数据库默认是10次尝试失败后锁住用户 1.查看FAILED_LOGIN_ATTEMPTS的值select * from dba_profiles: 2.修改为无限次(为安全起见,不建议使用)alt ...
- ipsec][strongswan] ipsec SA创建失败后的错误处理分析
〇 ike协商的过程最终是为了SA的建立, SA的建立后, 在底层中管理过程,也是相对比较复杂的. 这里边也经常会出现失败的情况. 我们以strongswan为例, 在strongswan的底层SA管 ...
- 安装Jenkins后 启动时失败的问题解决
命令行执行,java -jar jenkins.war,报错 ------------------------------- SEVERE: Container startup failed java ...
- (转)Db2 数据库常见堵塞问题分析和处理
原文:https://www.ibm.com/developerworks/cn/analytics/library/ba-lo-db2-common-blocking-problem-analyze ...
- Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
应用场景 前两天我们已经介绍了两种Spring Cloud Stream对消息失败的处理策略: 自动重试:对于一些因环境原因(如:网络抖动等不稳定因素)引发的问题可以起到比较好的作用,提高消息处理的成 ...
随机推荐
- XAMPP Apache安装时问题总结
昨天遇到的一个问题,安装XAMPP后无法启动Apache服务,本以为可能是一些系统服务文件被占用的原因,安装软件后需重启一遍.可是重启计算机后依然无法启动Apache服务,状态栏里总是显示" ...
- NC24083 [USACO 2017 Dec P]Greedy Gift Takers
NC24083 [USACO 2017 Dec P]Greedy Gift Takers 题目 题目描述 Farmer John's nemesis, Farmer Nhoj, has N cows ...
- Lepton 无损压缩原理及性能分析
作者:vivo 互联网数据库团队- Li Shihai 本文主要介绍无损压缩图片的概要流程和原理,以及Lepton无损压缩在前期调研中发现的问题和解决方案. 一.从一个游戏开始 1.1 游戏找茬 请拿 ...
- CSS进阶内容—盒子和阴影详解
CSS进阶内容 在学习了CSS基本知识之后,我们需要进一步了解CSS,因此写下了这篇文章 当然如果没有学习之前的知识,可以到我的主页中查看之前的文章:秋落雨微凉 - 博客园 CSS三大特性 首先我们先 ...
- DNS 系列(三):如何免受 DNS 欺骗的侵害
互联网上每一台设备都会有一个 IP 地址,我们在访问网站或发送信息时,其实都是通过 IP 地址达成准确请求的.但是这个 IP 地址由很长一串数字组成,记忆起来相当困难,所以我们创造了更实用的域名来代替 ...
- Docker安装NextCloud使用MySQL
安装 1.拉取并启动MySQL,最好把数据可目录挂载到宿主机,以便容器被误删后恢复: docker run --name=nextcloud_db \ -e MYSQL_ROOT_PASSWORD=X ...
- 电子表格分两级:Excel和WPS是一级,未来5年,75%的人将用二级
你印象中的电子表格软件是哪些? 估计绝大多数人,都认为电子表格软件不就是Excel和WPS吗?顶多再加上永中office么,难道还有其他的电子表格软件不成? 没有错,excel和WPS,还有永中,确实 ...
- js 设置滚动条位置为底部
if (document.getElementById("")) { document.getElementById("").scro ...
- mysql主从复制学习笔记
一.musql主从复制原理 MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以&q ...
- Splash (渲染JS服务)介绍安装
一. splash介绍 1.Splash 是一个带有 HTTP API 的 javascript 渲染服务.它是一个带有 HTTP API 的轻量级浏览器,使用 Twisted 和 QT5 在 Pyt ...