Kingbase---集群部署
目录
五、修改集群initstall.conf配置文件(主节点执行)
cd /opt/KingbaseES/V9/ClientTools/guitools/DeployTools/zip./trust_cluster.sh
主备集群部署
node1
主:192.168.40.26
node2
备:192.168.40.27
安装软件包
KingbaseES_V009R001C010B0004_Lin64_install.iso
系统:CentOS7.9
cpu:因特尔
一、安装kingbase
node1上创建kingbase用户并安装kingbase
[root@node1 ~]# groupadd kingbase
[root@node1 ~]# useradd -m -d /home/kingbase kingbase -g kingbase
[root@node1 ~]# mkdir -p /opt/KingbaseES/V9
[root@node1 ~]# chown -R kingbase:kingbase /opt/KingbaseES/V9
[root@node1 ~]# chmod -R u+rw /opt/KingbaseES/V9
[root@node1 ~]# mount -o loop KingbaseES_V009R001C010B0004_Lin64_install.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@node1 ~]# echo "1234%^&*" | passwd --stdin kingbase
更改用户 kingbase 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]# su - kingbase
[kingbase@node1 ~]$ cd /mnt/
[kingbase@node1 mnt]$ ls
setup setup.sh
[kingbase@node1 mnt]$ ./setup.sh -i console

初始化数据库

二、设置环境变量
在末尾添加
export KINGBASE_DATA=/opt/KingbaseES/V9/data
export PATH=$PATH:/opt/KingbaseES/V9/Server/bin

三、创建集群安装目录
主
[root@node1 ~]# mkdir -p /opt/kingbase/cluster/install
[root@node1 ~]# chown -R kingbase:kingbase /opt/kingbase/
[root@node1 ~]# chmod -R u+rw /opt/kingbase/
[root@node1 ~]# su - kingbase

备
[root@node2 ~]# mkdir -p /opt/kingbase/cluster/install
[root@node2 ~]# chown -R kingbase:kingbase /opt/kingbase/
[root@node2 ~]# chmod -R u+rw /opt/kingbase/
[root@node2 ~]# su - kingbase

四、在主node1上操作
复制zip包到集群安装目录下
[kingbase@node1 ~]$ cd /opt/KingbaseES/V9/ClientTools/guitools/DeployTools/zip/
[kingbase@node1 zip]$ cp db.zip /opt/kingbase/cluster/install/
复制zip包到备192.168.40.27的集群安装目录下
[kingbase@node1 install]$ scp db.zip kingbase@192.168.40.27:/opt/kingbase/cluster/install

解压zip包
主
[kingbase@node1 zip]$ cd /opt/kingbase/cluster/install/
[kingbase@node1 install]$ unzip db.zip
备
[kingbase@node2 ~]$ cd /opt/kingbase/cluster/install/
[kingbase@node2 install]$ ls
db.zip
[kingbase@node2 install]$ unzip db.zip

启用数据库
/opt/KingbaseES/V9/Server/bin/sys_ctl -D /opt/KingbaseES/V9/data/ start
在防火墙启用的情况做好允许端口开放(指定端口开放)
(root执行)
firewall-cmd --zone=public --add-port=54321/tcp --permanent
firewall-cmd --zone=public --add-port=54322/tcp --permanent
firewall-cmd --zone=public --add-port=8890/tcp --permanent
firewall-cmd --reload firewall-cmd --list-port
启用守护进程服务
(root执行)解压的db.zip路径下的bin目录
./sys_HAscmdd.sh init
./sys_HAscmdd.sh start
主
[root@node1 bin]# ./sys_HAscmdd.sh init
successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd
[root@node1 bin]# ./sys_HAscmdd.sh start
Created symlink from /etc/systemd/system/multi-user.target.wants/securecmdd.service to /etc/systemd/system/securecmdd.service.

备
[root@node2 bin]# ./sys_HAscmdd.sh init
successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd
[root@node2 bin]# ./sys_HAscmdd.sh start
Created symlink from /etc/systemd/system/multi-user.target.wants/securecmdd.service to /etc/systemd/system/securecmdd.service.

做通信测试 (root执行) ./sys_securecmd kingbase@192.168.40.27 ifconfig (注意:如果需要输入密码那就有问题)
在bin目录下执行

关闭守护进程服务(root执行)
./sys_HAscmdd.sh stop
主
[root@node1 bin]# ./sys_HAscmdd.sh stop
Removed symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service.
备
[root@node2 bin]# ./sys_HAscmdd.sh stop
Removed symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service.
关闭数据库(kingbase用户执行)

修改集群initstall.conf配置文件(主节点执行)
下面这个是模板
修改集群initstall.conf配置文件(主节点执行)
cd /home/kingbase/KingbaseES/V8/ClientTools/guitools/DeployTools/zip
vim install.conf
all_ip=(192.168.158.24 192.168.158.25)
install_dir="/home/kingbase/cluster/install"
zip_package="/home/kingbase/KingbaseES/V9/ClientTools/guitools/DeployTools/zip/db.zip"
db_password="1234%^&*Ab" (在这个位置下面有一个设置大小写敏感的,一定不要忘了)
trusted_servers="192.168.158.2" (多个网关请用“,”分隔,不允许有空格。)
virtual_ip="10.12.11.200" (如果有vip,需要填网卡名称和vip)
net_device=(ens192 ens192) (填了网关必须填网卡名称)(空格隔开)
net_device_ip=(10.12.11.192 10.12.11.193) (填主备节点物理ip)(空格隔开)
#all_ip参数为必须配置,所有集群节点的IPv4、IPv6或hostname,用但所有节点必须配置为相同的类型。
all_ip=(10.185.230.217 10.185.230.218 10.185.230.219)
#install_dir参数为必须配置,集群部署的路径。
install_dir="/data/kingbase/cluster/install"
#zip_package参数为必须配置,压缩包的路径。
zip_package="/home/kingbase/KingbaseES/V8/ClientTools/guitools/DeployTools/zip/db.zip"
#db_password="1234%^&*Ab"
db_password="1234%^&*Ab"
#trusted_servers参数为必须配置,指定当前部署集群的信任网关,多个网关请用“,”分隔,不允许有空格。
trusted_servers="10.185.230.1"
#virtual_ip参数为可选配置,部署集群所需VIP。只能配置IPv4,当all_ip配置为IPv6或hostname时, 不能配置此参数。
virtual_ip="10.185.230.15/23"
#net_device参数为可选配置,若配置了[virtual_ip],则此参数必须配置,值为VIP所在网卡的网卡名称。
net_device=(enp4s3 enp4s3 enp4s3)
#net_device_ip参数为可选配置,若配置了[virtual_ip],则此参数必须配置,值为VIP所在网卡的集群节点物理IP地址。
net_device_ip=(10.185.230.217 10.185.230.218 10.185.230.219)
五、修改集群initstall.conf配置文件(主节点执行)


db_case_sensitive="yes":表示大小写敏感(默认值),表名、列名等会区分大小写。db_case_sensitive="no":表示大小写不敏感,表名、列名等不区分大小写(兼容 Oracle/MySQL 风格)。


六、root执行 节点互信配置主节点执行
互信配置
cd /opt/KingbaseES/V9/ClientTools/guitools/DeployTools/zip
./trust_cluster.sh


kingbase用户执行
七、集群部署主节点执行 集群部署
[kingbase@node1 ~]$ cd /opt/KingbaseES/V9/ClientTools/guitools/DeployTools/zip/
[kingbase@node1 zip]$ sh cluster_install.sh

显示这样就证明主备集群安装成功

修改集群部署好后的路径下kingbase.conf文件参数(主备都要修改)
vim /opt/kingbase/cluster/install/kingbase/data/kingbase.conf
在 shared_preload_libraries 行后添加 passwordcheck, identity_pwdexp, sysaudit
shared_buffers = 2GB
effective_cache_size = 4GB
min_wal_size = 2GB
max_wal_size = 8GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
checkpoint_timeout = 30min
max_connections=1000
logging_collector = 'on'
log_destination = 'stderr'
log_directory = '../sys_log'
log_filename = 'kingbase-%d.log'
log_truncate_on_rotation = 'on'
log_rotation_age = 1440
log_rotation_size = 500MB
passwordcheck.enable = on
passwordcheck.password_condition_digit = 2
passwordcheck.password_condition_letter = 2
passwordcheck.password_condition_punct = 1
passwordcheck.password_length = 8
sys_audlog.error_user_connect_times = 5
sys_audlog.error_user_connect_interval = 10
wal_level='replica'
archive_mode = on
archive_command = ''
环境变量
vi ~/.bashrc
export KINGBASE_DATA=/opt/kingbase/cluster/install/kingbase/data
export PATH=$PATH:/opt/kingbase/cluster/install/kingbase/bin
source ~/.bashrc

kingbase用户主节点重启集群
sys_monitor.sh stop
sys_monitor.sh start
逻辑备份
(主备都做,可以将主的文件拷贝到备机上,让备机也能逻辑备份)
cd /opt/KingbaseES/V9/SupTools/kb_backup
vim backup8.conf
kdb_home="/opt/KingbaseES/V8"
kdb_bin="/opt/kingbase/cluster/install/kingbase/bin"
kdbback_dest="/opt/kingbase/backup/logical"
kdb_user="system"
password="1234%^&*Ab"
kdb_port="54321"
kdb_host="127.0.0.1"
kdb_list=`${kdb_bin}/ksql -p ${kdb_port} -U ${kdb_user} -c "SELECT datname FROM pg_database where datname not in ('template1','template0');" template1 |head -n -2|tail -n +3`
keep_time="31"
LD_LIBRARY_PATH="/opt/kingbase/cluster/install/kingbase/lib"
更新密码
sys_encpwd -H \* -P \* -D \* -W '1234%^&*Ab' -U system
./fast_deploy_backup8.sh

crontab -l
crontab -e
物理备份
cd /opt/kingbase/cluster/install/kingbase/share (集群好之后下的路径)
vi sys_backup.conf (集群部署好的路径下的data和bin)


cd ../bin/
./sys_backup.sh init (主格式化一次就行,备节点只需要执行start就可以物理备份)
./sys_backup.sh start
(在备执行./sys_backup.sh start就可以开启物理备份)
备注
整个集群只需执行一次init动作;
初始化:只需要在一个DB节点修改sys_backup.conf、执行init动作;
定时备份任务:需要修改各节点的sys_backup.conf、分别执行start/stop动作;
single-pro支持各DB节点同时执行备份动作。
注意:
如果一直卡在这个位置不动,请检查 data下的 sys_hba.conf 文件的 local 那一行改为 trust没有
create stanza and check on 172.34.12.32 ...(maybe 60+ seconds)
--赋予kingbase用户crontab权限
vi /etc/cron.allow
kingbase
数据库信息填写
--查看ip和mac地址
ip a
--查看数据数据目录和备份目录的磁盘大小
df -h
--查看cpu
lscpu
--查看操作系统
cat /etc/*release
--查看CPU(s)
lscpu | grep "CPU(s):"
--查看内存
free -h
--sql查看数据库大小写敏感
SHOW case_sensitive;
on 表示大小写敏感,
off 表示大小写不敏感。
(注意:此参数可能在部分版本中不存在或名称不同,具体取决于金仓版本)
--sql查看大小写敏感配置
show enable_ci;
on 开启大小写不敏感(默认) 表名 user_info、User_Info、USER_INFO 视为同一个表
off 关闭(是大小写敏感) 表名 user_info 和 USER_INFO 是两个不同的表
--sql查看兼容什么模式
show database_mode;
--sql查看数据库版本号
select version();
--sql查看数据库构建版本信息
select build_version;
--sql查看授权文件剩余有效天数
select get_license_validdays();
1. select sys_is_in_recovery();
作用:检查数据库是否处于恢复模式(备用服务器状态)
返回 t(true):当前是备用服务器,处于只读模式
返回 f(false):当前是主服务器,可读写
在流复制架构中,用于判断当前节点的角色
2. select * from sys_stat_replication;
作用:查看流复制的状态信息
显示的内容包括:
复制连接的进程信息
客户端地址和端口
复制状态(同步/异步)
延迟情况(flush_lag, replay_lag)
已发送的WAL位置
是否启用级联复制
用途:监控主库到备库的复制是否正常,是否有延迟
3. select * from sys_replication_slots;
作用:查看复制槽信息
显示的内容包括:
复制槽名称
插件类型(physical/logical)
槽的当前状态
确认的LSN位置
保留的WAL日志量
用途:管理逻辑复制或物理复制的槽位,防止主库过早删除备库还需要WAL日志
如果是pg的,需要把sys改为pg
例如:select pg_is_in_recovery();
更多推荐




所有评论(0)