金仓数据库KingbaseES高可用最佳应用实践(单机)

目录

2.1. KingbaseES单机简介 ¶

2.2. 配置 ¶

2.2.1. 硬件配置 ¶

2.2.2. 操作系统配置 ¶

2.2.3. 单机数据库配置 ¶

2.3. 监控指标 ¶

2.4. 从计划外停机中恢复 ¶

2.5. 计划内停机操作 ¶

2.5.1. 补丁、升级 ¶

2.5.2. 配置变更 ¶


2.1. KingbaseES单机简介 ¶

本章节主要讲述在单数据库实例的场景下,如何通过配置、部署方式等手段达到KingbaseES MAA(最大可用性架构)的初级架构要求:能够自动处理简单的软件故障,能够在除了硬件故障外的其他故障场景下保证数据安全。

2.2. 配置 ¶

2.2.1. 硬件配置 ¶

2.2.1.1. 限制 ¶

2.2.1.2. 推荐配置 ¶

金仓数据库KingbaseES高可用最佳应用实践(单机)_第1张图片

图 2.2.10 推荐配置 ¶

2.2.2. 操作系统配置 ¶

表 2.2.13 操作系统配置  ¶

名称

检测方式

建议配置和操作

备注

系统 资源

防火墙

查询防火墙状态or 防火墙已开放端口

service firewalld status

service iptables status

service ufw status

firewall-cmd --zone=public --list-ports

关闭or添加端口白名单

service firewalld stop

service iptables stop

service ufw stop

firewall-cmd --permanent --zone=public --add-port=54321/tcp

建议关闭防火墙。

如果用户确认无法关闭防火墙, 那么在防火墙添加数据库白名单 不同系统命令不同 数据库端口默认54321, 根据实际配置调整。防火墙管理 因操作系统不同而有所区别: Centos7及以后对应firewalld; Centos6及以前对应iptables; ubuntu或者ufw系统对应ufw; 请根据实际系统进行操作。

SELINUX

getenforce

disabled

若为enable,修改 /etc/selinux/config文件, 修改SELINUX=disabled 重启OS

强制性要求

若在机器设备不方便reboot时, 可以执行setenforce 0操作 使得当前系统生效。 随后按建议配置修改, 在下次重启时配置生效。

limit 资源限制

1.ulimit -n

2.ulimit -u

1.65536

2.65536

若小于65535,修改/etc/sec urity/limits.conf文件,添加

  • soft nofile 65536

  • hard nofile 65536

  • soft nproc 65536

  • hard nproc 65536

  • soft core 65536

  • hard core 65536

重启会话

强制性要求

如果/etc/security/limit.d/ 目录下还有其他配置文件, 删除它,否则最终生效的是 /etc/security/limit.d/ 目录下的配置文件,而不是 /etc/security/limits.conf。

信号量 内核参数

sysctl kernel.sem

5010 641280 5010 256

若小于对应推荐值,修改 /etc/sysctl.conf,添加 kernel.sem=5010 641280 5010 256 sysctl -p

强制性要求

Remove

cat /etc/systemd/logind.conf |grep RemoveIPC

no

若为yes,修改 /etc/systemd/logind.con,修改 RemoveIPC=no

然后执行 systemctl daemon-reload

强制性要求

如果操作系统没有 /etc/systemd/logind.conf 文件则不需修改。 如果RemoveIPC参数被注释, 则取消注释并设置成no (防止默认为yes)。

数据 库 资源

端口

netstat -an | grep -w "$db_port" | grep LISTEN

如果查询结果不为空, 则说明数据库端口已被使用, 数据库无法启动。 根据实际情况停止占用数据 库端口的进程,或者修改集群部署 时使用的端口。

强制性要求

目录

ls -l $db_data_path

目录不存在

如果目录已存在,则说明数据库 使用的data目录已被占用, 数据库无法初始化。 根据实际情况删除data目录, 或者修改数据库使用的data路径。

强制性要求

2.2.3. 单机数据库配置 ¶

2.2.3.1. 数据库配置文件kingbase.conf配置 ¶

表 2.2.14 数据库配置文件kingbase.conf配置  ¶

参数名称

建议值

备注

listen_addresses

*

wal_keep_segments

512

max_connections

业务高峰期使用 的连接数×120%

根据用户业务的实际 情况调整

max_repared_transactions

业务高峰期使用 的连接数×120%

和max_connectioins 保持一致

port

54321

可根 据用户需要进行调整

shared_buffers

物理内存的1/3

实际使用过程中, 数据库会使用大于 此值的内存。

wal_log_hints

on

wal_level

replica

minimal < replica < logical,开启归档要 求最小为replica级别。

archive_mode

on

开启归档,物理备份 要求开启归档。 开启归档的情况下,可 在误操作或数据损坏的 情况下,通过物理备份 和归档进行数据恢复。

archive_command

'test ! -f archivedir/cparchivedir/cparchive_dir/%f'

$archive_dir 即归档日志存放路径。 归档路径最好设置为 其他磁盘的路径,可以 规避数据盘损坏导致 归档和数据同时丢失。

logging_collector

on

开启日志收集功能, 数据库运行日志会记录 在数据目录/sys_log的 目录中。

log_destination

csvlog

stderr或csvlog或 syslog或eventlog。 stderr和csvlog会将数 据库运行日志记录在数 据目录下的文件中,区 分是记录的格式不同, csvlog格式方便被其他 软件读取。而另外两个 配置则依赖操作系统, 会记录到操作系统的系 统日志中。

timezone

PRC

根 据用户使用的时区调整

lc_messages

en_US.UTF-8

根 据用户需要,可配置成 zh_CN.UTF-8(中文)

lc_monetary

en_US.UTF-8

根 据用户需要,可配置成 zh_CN.UTF-8(中文)。

lc_numeric

en_US.UTF-8

根 据用户需要,可配置成 zh_CN.UTF-8(中文)。

lc_time

en_US.UTF-8

根 据用户需要,可配置成 zh_CN.UTF-8(中文)。

full_page_writes

on

2.2.3.2. 数据库配置文件sys_hba.conf配置 ¶

表 2.2.15 数据库配置文件sys_hba.conf配置  ¶

配置行

备注

local all all scram-sha-256

本机认证规则

host all all 0.0.0.0/0 scram-sha-256

其他OS连接数据库认证规则

2.2.3.3. 数据库自动启动服务配置 ¶

开启数据库自动启动服务:

使用root用户在数据库安装目录下执行rootDeployClusterware.sh脚本。

$install_dir/install/script/rootDeployClusterware.sh

注意

以上install_dir为所指定的安装目录,例如:"/opt/Kingbase/ES/V8",同时需事先将此路径指定给环境变量install_dir;否则也可以使用绝对路径执行。

/opt/Kingbase/ES/V8/install/script/rootDeployClusterware.sh

执行后会将安装时初始化的数据库实例注册为系统服务并为其设置开机自动启动,服务开启自动启动只在服务器级别的重启生效,数据库实例故障后不会自动启动。

服务名称:kingbase8d

关闭数据库自动启动服务:

停止服务:

service kingbase8d stop

关闭服务开机自动启动:

Redhat

chkconfig --del kingbase8d

Debian

update-rc.d -f kingbase8d remove

2.3. 监控指标 ¶

表 2.3.3 监控指标  ¶

参数指标

取值范围

异常范围

获取方式

db进程状态

stopped/runing

stopped

bin/sysctl−Dbin/sysctl−Ddata_path status

2.4. 从计划外停机中恢复 ¶

表 2.4.2 从计划外停机中恢复  ¶

故障类型

恢复方式

实例故障

bin/sysctl−Dbin/sysctl−Ddata_path restart

主机/网络故障(存储可用)

网络故障时, 数据库实例正常,等待网络恢复即可。

存储故障

1,数据库备份文件所在存储未故障

恢复方法见章节 备份和还原-配置(单机)

2.数据库备份文件所在存储故障

数据将丢失

数据损坏

恢复方法见章节 备份和还原-配置(单机)

人为错误

根据人为操作 造成的影响判断能否成功恢复,如果备份文件 和日志文件完整则可以恢复,恢复方法见章节 备份和还原-配置(单机)。

站点故障

恢复方法见章节 备份和还原-配置(单机)

响应慢或挂起

通过性能 指标监控发现,取决于后续排查和处理速度。

2.5. 计划内停机操作 ¶

2.5.1. 补丁、升级 ¶

2.5.1.1. kingbase补丁、升级 ¶

kingbase升级方式

1 升级后兼容原有数据

备份原kingbase可执行程序,替换kingbase可执行程序和相关组件,重启数据库。

$bin/sys_ctl -D $data_path restart

2 升级后不兼容原有数据

停止使用数据库的应用,备份数据库和原可执行程序

进行实例级逻辑备份,并记录数据库初始化时指定的参数,无法在初始化后修改的内容包括:wal_segment_size,database_mode,data_checksums

$bin/sys_dumpall -h host -U  -p port -f 

停止数据库

$bin/sys_ctl -D $data_path stop

清理data,使用初始化工具按之前的初始化参数重新initdb data,拷贝配置文件,启动数据库,进行逻辑还原。

$bin/initdb -U username -D $data_path
$bin/sys_ctl -D $data_path start
$bin/ksql -h host -U  -W password -d dbname -f 

2.5.1.2. 系统或硬件补丁、升级 ¶

如果变更不需要重启主机或是停止网络等影响数据库运行的操作,选择在线升级,否则选择停机升级。操作方法见kingbase补丁、升级一节。

2.5.2. 配置变更 ¶

2.5.2.1. 配置文件修改 ¶

KingbaseES数据库的配置修改是否需要重启数据库取决于参数

需要重启生效的配置修改需要重启数据库:

$bin/sys_ctl -D $data_path restart

不需要重启的配置修改可以通过reload生效:

$bin/sys_ctl -D $data_path reload

 

你可能感兴趣的:(KingbaseES产品手册,ubuntu,服务器,linux,kingbase,金仓数据库)