HAC集群修改管理员用户密码
1、检查集群状态,使用A、B两种方法进行判断
方法A:使用集群命令,确保TL时间线一致,Lag in MB数据同步延迟不能过高,最好延迟为0。
[root@localhost ~]# hghactl list Cluster: ha (7072256965608815760) -------+---------+----+-----------+ | Member | Host | Role | State | TL | Lag in MB | +----------+---------------------+---------+---------+----+-----------+ | hghac228 | 192.168.80.228:5866 | Leader | running | 6 | | | hghac230 | 192.168.80.230:5866 | Replica | running | 6 | 0 | +----------+---------------------+---------+---------+----+-----------+
|
方法B:各个节点查询进程,有sender节点的是主库,有receiver节点的是备库
ps -ef | grep sender root 26418 3233 0 6月11 ? 00:00:22 postgres: c: walsender sysdba 192.168.80.228(45186) streaming 0/16000000 ps -ef | grep receiver root 3372 3348 0 6月11 ? 00:13:54 postgres: c: walreceiver streaming 0/16000000
|
2、暂停集群
(任意节点执行即可,暂停集群只是停止集群主备切换,不影响数据库使用)
3、修改密码(只能在主库执行)
highgo=# alter user sysdba with password 'bx@H45cw!';
|
4、主备库修改密码文件
vim ~/.pgpass #hostname:port:database:username:password localhost:5866:highgo:sysdba:Highgo@12345 localhost:5866:highgo:syssso:Highgo@12345
|
冒号为分隔符,倒数第二位用户名,最后一位数据库密码,将密码修改为修改之后的密码即可,保存退出。
5、主备库修改集群配置文件
vim /opt/HighGo/tools/hghac/hghac.yaml authentication: replication: password: Hello@123 username: sysdba rewind: password: Hello@123 username: sysdba sysdba: password: Hello@123 syssso: password: Hello@123 syssao: password: Hello@123
|
根据对应的用户名修改密码即可,保存退出。
6、备库修改data目录下的postgresql.auto.conf文件
vim $PGDATA/postgresql.auto.conf
primary_conninfo = 'user=sysdba password=''Highgo@123456'' host=192.168.80.228 port=5866 sslmode=prefer sslcompression=0 gssencmode=disable krbsrvname=postgres target_session_attrs=any'
|
注意:password前边的user为sysdba,即修改用户sysdba的密码
7、恢复集群(任意节点执行即可)
8、重启集群生效(任意节点执行即可)
hghactl restart c 注意: 最后一个参数c是集群的名字,查看方法 ps -ef | grep -v grep |grep post |awk '{print $9}'|tail -1|awk '{sub(/.$/,"")}1'
|
9、查看集群状态
10、重新初始化所有节点的hgproxy
(如果没有使用hgproxy请跳过该步骤)
systemctl stop hgproxy-4.0.2.service --停掉hgproxy服务,hgproxy后边具体内容请使用tab健补齐(proxy版本迭代service不一样) proxy_ctl init -h 192.168.1.54 -U sysdba -d highgo -p 5866 --初始化 systemctl start hgproxy-4.0.2.service --启动hgproxy服务
|
11、其他
执行hghactl等集群命令提示“未找到命令”,请配置环境变量,参考如下:
vim ~/.bash_profile
export PGPORT=5866 export PGUSER=sysdba export PGDATABASE=highgo export PGHOME=/opt/HighGo4.5.7-see export PGDATA=/opt/HighGo4.5.7-see/data export PATH=$PGHOME/bin:$PATH:$HOME/bin:/opt/HighGo/tools/hgproxy/bin:/opt/HighGo/tools/hghac:/opt/HighGo/tools/hghac/etcd export LD_LIBRARY_PATH=$PGHOME/lib:/usr/lib64:$LD_LIBRARY_PATH export ETCDCTL_ENDPOINTS=http://10.1.194.182:2379,http://10.1.194.191:2379,http://10.1.194.192:2379 export PATRONICTL_CONFIG_FILE=/opt/HighGo/tools/hghac/hghac-see.yaml
source ~/.bash_profile
|
注意:
1、需要根据实际情况修改环境变量实际路径,可以使用find命令查找文件路径
例:查找hghac find / -iname hghac -print
|
2、ETCDCTL_ENDPOINTS三个ip需要修改为配置etcd三节点的ip,可以参考/opt/HighGo/tools/hghac/hghac-see.yaml文件中的etcd:hosts