opengauss数据库的日常运维操作
主从切换
1.1 在从节点执行如下命令
gs_ctl switchover -D /opt/huawei/install/data/dn
cm_ctl switchover -n 1 -D /opt/huawei/install/data/dn
1.2 查看集群状态
gs_om -t status –detail
1.3 如果主节点宕机,可以使用如下命令进行failover
gs_ctl failover -D /opt/huawei/install/data/dn
1.4 switchover或failover成功后,需要保存当前主备机器信息
gs_om -t refreshconf
1.5 当某个节点故障后,需要在故障的节点重建备库,进行修复
如果data直接删除了的话,需要先拷贝postgresql.conf到对应的dn目录下,并修改primary_conninfo的信息后build
gs_ctl build -b auto -D /opt/huawei/install/data/dn
远程操作
opengauss不支持管理员远程登陆,需要创建应用用户进行登陆:
gs_guc reload -N all -I all -c "listen_addresses = '*'"
gs_guc reload -N all -I all -h "host all all 0.0.0.0/0 sha256"
CREATE USER postgres WITH PASSWORD '123qqq...A';
开启归档
mkdir -p /opt/huawei/install/wal_archive
gs_guc reload -N all -I all -c "archive_mode=on"
gs_guc reload -N all -I all -c "archive_command='cp %p /opt/huawei/install/wal_archive/%f'"
异步修改为同步
4.1 可以直接使用集群管理命令进行修改
gs_guc reload -N all -I all -c "synchronous_commit = on"
gs_guc reload -N all -I all -c "synchronous_standby_names = 'FIRST 2(dn_6002,dn_6003)'"
有些参数必须重启集群才能生效:
gs_om -t stop && gs_om -t start
4.2 也可以直接修改配置文件
vi postgresql.conf
synchronous_standby_names = 'FIRST 2(dn_6002,dn_6003)'
gs_ctl -D /opt/huawei/install/data/dn reload
增加及删除节点
5.1 删除节点
查看当前备节点日志接收状态:
select * from pg_stat_get_wal_receiver();
移除备节点,在主节点执行:
gs_dropnode -U omm -G dbgrp -h 10.0.0.12
删除从节点数据,在从节点执行
参数表示将数据也一并删除卸载
gs_uninstall --delete-data -L
5.2 添加节点
注意:在添加节点之前,要添加节点的目录,用户,软件包路径,以及环境变量要与主节点一致,具体操作略。
1)在主节点添加对所有节点的互信
# 添加整个集群的IP地址:
cd /opt/software/openGauss/script
vi hostfile
10.0.0.10
10.0.0.11
10.0.0.12
# 创建root用户互信:
./gs_sshexkey -f hostfile
# 创建omm用户互信:
su - omm
cd /opt/software/openGauss/script
./gs_sshexkey -f hostfile
)在主节点修改XML配置文件,添加如下信息
vi /opt/software/openGauss/cluster_config.xml
<!-- 节点2上的部署信息 -->
<DEVICE sn="gsdb02">
<!-- 节点2的主机名称 -->
<PARAM name="name" value="gsdb02"/>
<!-- 节点2所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="10.0.0.11"/>
<PARAM name="sshIp1" value="10.0.0.11"/>
</DEVICE>
<!-- 节点3上的部署信息 -->
<DEVICE sn="gsdb03">
<!-- 节点3的主机名称 -->
<PARAM name="name" value="gsdb03"/>
<!-- 节点3所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点3的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="10.0.0.12"/>
<PARAM name="sshIp1" value="10.0.0.12"/>
</DEVICE>
3)在主节点添加环境变量
vi /etc/profile
export PGDATA=/opt/huawei/install/data/dn
export GPHOME=/opt/huawei/install/om
export GAUSSHOME=/opt/huawei/install/app
export PGHOST=/opt/huawei/install/om/omm_mppdb
export PATH=/root/gauss_om/omm/script:$GAUSSHOME/bin:$PATH
升 级
6.1 创建新包目录,并上传软件包
mkdir -p /opt/software/gaussdb_upgrade
tar xf openGauss-3.0.0-CentOS-64bit-all.tar.gz
tar xf openGauss-3.0.0-CentOS-64bit-om.tar.g
chown -R omm:dbgrp /opt/software/
6.2 在就地升级或灰度升级前执行前置脚本gs_preinstall
cd /opt/software/gaussdb_upgrade/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
6.3 进行升级
使用gs_upgradectl脚本执行就地升级:
cd /opt/software/gaussdb_upgrade/script
./gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/cluster_config.xml
也可以进行灰度升级:
gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/cluster_config.xml --grey
6.4 升级版本查询
gs_ssh -c "gsql -V"
6.5 完成升级提交
gs_upgradectl -t commit-upgrade -X /opt/software/openGauss/cluster_config.xml
6.6 也可以升级回滚
gs_upgradectl -t auto-rollback -X /opt/software/openGauss/cluster_config.xml
说明:如果数据异常,可以进行强制回滚:
gs_upgradectl -t auto-rollback -X /opt/software/openGauss/cluster_config.xml --force
设置备机可读
vi postgresql.conf
wal_level=hot_standby;
hot_standby = on
卸载opengauss
7.1 使用gs_uninstall卸载openGauss,在omm用户下执行
gs_uninstall --delete-data
7.2 openGauss环境清理是对环 境准备脚本gs_preinstall所做设置的清理,在root下执行
cd /opt/software/openGauss/script
./gs_postuninstall -U omm -X /opt/software/openGauss/cluster_config.xml --delete-user --delete-group
7.3 删除残留软件目录
rm -rf /opt/*
启停opengauss
gs_ctl -t start
gs_ctl -t stop
状态查询
gs_om -t status –detail
查看某主机上的实例状态:
gs_om -t status –h db01
cm基础命令
cm_ctl query -Civdp
cm_ctl stop
cm_ctl start
cm_ctl switchover -n 2 -D dn1
cm_ctl build -n 2 -D dn1
–cm_ctl start/stop数据库
–一主多备数据库部署模式下启动/停止所有数据库服务:
cm_ctl stop
cm_ctl start
–启动/停止单个主机上的所有实例(含CM):
cm_ctl stop -n nodeid
cm_ctl start -n nodeid
–单独启动/停止某个实例进程(数据库进程):
cm_ctl stop -n nodeid -D datadir
cm_ctl start -n nodeid -D datadir
–启动/停止整个AZ:
cm_ctl stop -z ALL
cm_ctl start -z ALL
–重复停止所有/某个实例:
cm_ctl stop -n nodeid
cm_ctl stop -n nodeid
–重复启动所有/某个实例:
cm_ctl start -n nodeid
cm_ctl start -n nodeid
–&&连接使用:
cm_ctl stop && cm_ctl start
cm_ctl stop -n nodeid && cm_ctl start -n nodeid
批量操作多个服务器(修改权限,查看数据库的一些信息,上传文件等)
og语法
for i in $(cat ip.txt); do echo root@$i;ssh root@$i "su - omm -c \"source ~/.bashrc;gsql -d postgres -p 15800 -U u1 -c \\\"\du\\\"\""
pg语法
for i in $(cat ip.txt); do echo root@$i;ssh root@$i "su - postgres -c \"source ~/.bashrc;psql -d postgres -U u1 -p 5432 -c \\\"\du\\\"\""
集群命令gs_ssh的使用,查看集群每个节点的信息
gs_ssh -c "gsql -d postgres -p 15800 -c \"\du+\""
查询主备库的复制延迟
备库延迟
select slot_name,pg_size_pretty(pg_xlog_location_diff((select pg_last_xlog_receive_location()),restart_lsn)) from pg_replication_slots;
主库延迟
select slot_name,pg_size_pretty(pg_xlog_location_diff((select pg_current_xlog_location()),restart_lsn)) from pg_replication_slots;
连续往数据库中插入数据的脚本
插入的条数自己控制,中间间隔时间自己修改
#!/bin/bash
for i in {1..4};
do
gsql -d postgres -p $1 -U omm -c "insert into a1 values($i);select pg_sleep(5);";
done
处理表膨胀问题
vacuum full 会锁表
vacuum full 表名;
清理表之后,空间不释放
truncate table 表名;
checkpoint;
opengauss 集群配置vip使用
目前测试的是5版本可以用3.1.1版本不支持,是否支持取决于–inst_attr这个参数,cm_ctl 的res中支持–inst_attr则可以配置vip使用。
具体操作步骤如下,需要在每个节点都执行
会创建cm_resource.json这个配置文件,
默认存放到cm安装目录的cm_agent目录下
cm_ctl res --add --res_name="VIP" --res_attr="resources_type=VIP,float_ip=172.20.10.11"
cm_ctl res --edit --res_name="VIP" --add_inst="node_id=1,res_instance_id=6001" --inst_attr=base_ip=172.20.10.128
cm_ctl res --edit --res_name="VIP" --add_inst="node_id=2,res_instance_id=6002" --inst_attr=base_ip=172.20.10.129
cm_ctl res --edit --res_name="VIP" --add_inst="node_id=3,res_instance_id=6003" --inst_attr=base_ip=172.20.10.130
配置完后需要重启集群
cm_ctl stop
cm_ctl start
现在通过ip a就能看到主节点的服务器的vip了
后续有遇到问题在更新,看到这里了,点赞关注支持一下吧~~~~~
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)