当前GaussDB T支持一主多备部署和一主多备多级联备部署。其中备机和级联备机的个数之和最多支持9个。本文为一主一备环境。

GaussDB T中的Primary角色是主备关系中的主节点,即业务的直接处理节点。它负责与备机通信,向备机同步日志。Standby角色是主备关系中的备节点,为只读状态。它主要用于接收主机日志,对主机业务日志进行回放 ,在主机出现异常或者异常退出的情况下可切换成主机保证业务正常进行。

1、环境设置

若无特殊说明,以下操作在主备节点分别执行。

1.1 主机信息

GaussDB T HA模式部署

1.2 安装软件包

[root@hwd07 ~]# yum install -y zlib readline gcc python python-devel perl-ExtUtils-Embed readline-devel zlib-devel lsof expect mlocate

1.3 内核参数

编辑/etc/sysctl.conf,加入以下内容:

[root@hwd07 ~]# vi /etc/sysctl.conf kernel.sem = 50100 128256000 50100 2560 net.core.netdev_max_backlog = 1000 net.ipv4.tcp_max_syn_backlog = 2048 kernel.core_pattern = /tmp/core.%p.%e kernel.core_uses_pid = 1 kernel.shmmni = 4096 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 fs.file-max = 6815744 [root@hwd07 ~]# sysctl -p

编辑/etc/profile,加入以下内容:

[root@hwd07 ~]# vi /etc/profile ulimit -c unlimited [root@hwd07 ~]# source /etc/profile

1.4 禁用防火墙以及SElinux

[root@hwd07 ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@hwd07 ~]# sed -i -e 's,enforcing,disabled,' /etc/selinux/config 

1.5 创建用户

[root@hwd07 ~]# groupadd dbgrp [root@hwd07 ~]# useradd -g dbgrp -d /home/omm -m -s /bin/bash omm [root@hwd07 ~]# echo redhat|passwd --stdin omm Changing password for user omm. passwd: all authentication tokens updated successfully.

1.6 解压软件包

[root@hwd07 ~]# mkdir -p /opt/software/gaussdb [root@hwd07 ~]# cd /opt/software/gaussdb/ [root@hwd07 gaussdb]# tar -xzf /tmp/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit.tar.gz 

以上操作完成后,重启服务器。

2、安装配置

2.1 主节点安装配置

在主节点执行下面的命令,安装并创建数据库:

[root@hwd07 gaussdb]# cd GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/ [root@hwd07 GaussDB_T_1.0.2-DATABASE-REDHAT-64bit]# python install.py -U omm:dbgrp -R /opt/gaussdb/app -D /opt/gaussdb/data -C  LSNR_ADDR=127.0.0.1,192.168.120.28 -C LSNR_PORT=1888  -C REPL_PORT=1889 -C  "ARCHIVE_DEST_2=SERVICE=192.168.120.29:1889 SYNC" -C SESSIONS=1500 Checking runner. Checking parameters. End check parameters. Checking user. End check user. Checking old install. End check old install. Checking kernel parameters. Checking directory. Checking integrality of run file... Decompressing run file. Setting user env. Checking data dir and config file Initialize db instance. Creating database. [2020-03-13 09:23:43] Instance start log output:starting instance(nomount) instance started . [2020-03-13 09:23:43] start instance successfully, pid = 8981 [2020-03-13 09:23:43] create zenith database ... [2020-03-13 09:36:29] Execute sql file /opt/gaussdb/app/admin/scripts/create_database.sample.sql output:  connected.  SQL>  Succeed.  SQL>   [2020-03-13 09:36:29] Creating database succeed. [2020-03-13 09:36:29] Changing file permission due to security audit. [2020-03-13 09:36:29] Successfully install zenith instance. [2020-03-13 09:36:29] Install successfully, for more detail information see /home/omm/zengineinstall.log.

参数说明,如下图:
GaussDB T HA模式部署
安装时可以使用默认zengine.ini的优化配置,也可以通过-C修改参数替换初始配置,其中用户关注的通用参数如下图所示:
GaussDB T HA模式部署
主备机配置时需要关注参数如下图:
GaussDB T HA模式部署

2.2 备节点安装

在备机上执行下面的命令,只安装、不建库、不启动。

[root@hwd08 gaussdb]# cd GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/ [root@hwd08 GaussDB_T_1.0.2-DATABASE-REDHAT-64bit]# python install.py -U omm:dbgrp -R /opt/gaussdb/app -D /opt/gaussdb/data -C  LSNR_ADDR=127.0.0.1,192.168.120.29 -C LSNR_PORT=1888  -C REPL_PORT=1889 -C  "ARCHIVE_DEST_2=SERVICE=192.168.120.28:1889 SYNC" -O Checking runner. Checking parameters. End check parameters. Checking user. End check user. Checking old install. End check old install. Checking kernel parameters. Checking directory. Checking integrality of run file... Decompressing run file. Setting user env. Checking data dir and config file Initialize db instance. Changing file permission due to security audit. Install successfully, for more detail information see /home/omm/zengineinstall.log.

安装完成后,以omm用户执行下面的命令,重建备机数据库:

[root@hwd08 GaussDB_T_1.0.2-DATABASE-REDHAT-64bit]# su - omm Last login: Fri Mar 13 09:40:07 CST 2020 [omm@hwd08 ~]$ cd /opt/gaussdb/app/bin/ [omm@hwd08 bin]$ python zctl.py -t build Check if incremental build is available ... Begin to shutdown database ... Done  Begin to clear data and log ... Done  Begin to startup instance nomount ... Done  Is incremental build: False Begin to build database ... Done  Successfully build database

2.3 更改sys密码

在主节点执行即可,备节点会自动同步的。

SQL> ALTER USER SYS IDENTIFIED BY abcABC12 REPLACE Changeme_123;

2.4 查询验证

在主备节点分别执行下面的命令,验证是否创建成功:
GaussDB T HA模式部署

2.5 配置白名单

这里通过执行SQL语句添加hba条目并在线刷新配置文件:

SQL> ALTER SYSTEM ADD HBA ENTRY 'host * 192.168.120.0/24'; SQL> ALTER SYSTEM RELOAD HBA CONFIG;

使用下面的SQL语句验证:

set linesize 100 col type for a10 col user_name for a10 col address for a30 SELECT * FROM SYS.DV_HBA;

GaussDB T HA模式部署

3、主备切换

主备切换包含正常切换(switchover)和故障切换(failover)。

3.1 状态验证

在备节点上查询状态,是否允许切换:

SQL> SELECT DATABASE_ROLE, DATABASE_CONDITION, SWITCHOVER_STATUS FROM DV_DATABASE;

GaussDB T HA模式部署
如果查询结果是备机,而且状态是normal,则可以在该节点上执行switchover。

3.2 正常切换

在备机上执行switchover操作:

SQL> ALTER DATABASE SWITCHOVER;

主备节点上验证是否切换成功:
GaussDB T HA模式部署
GaussDB T HA模式部署

3.3 故障切换

failover适用于主机发生故障,而且短时间内无法及时恢复。在有级联备的情况下,如果主机和所有备机均已发生故障,则可以在级联备上执行failover升主。
现在将hwd08的数据库关闭,模拟主节点故障,然后在hwd07上执行failover操作。
关闭hwd08上的主数据库:
GaussDB T HA模式部署
hwd07上的数据库状态如下:
GaussDB T HA模式部署
状态为disconnected,表示可以直接failover,如下:
GaussDB T HA模式部署
现在hwd07已经成为主节点了。模拟hwd08主机恢复,重建备库。

[omm@hwd08 bin]$ python zctl.py -t build -D /opt/gaussdb/data Check if incremental build is available ... Begin to shutdown database ... Done  Begin to clear data and log ... Done  Begin to startup instance nomount ... Done  Is incremental build: False Begin to build database ... Done  Successfully build database

GaussDB T HA模式部署

  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论