试过了,纠正一下博主的整个过程,如果按照博主的方法来操作,中间会有3个报错,无法进行下去:
1. cd /opt/gitlab/embedded/postgresql/9.6/bin
./pg_basebackup -h 192.168.1.9 -p 5432 -U gitlab_replicator -F p -P -D /var/opt/gitlab/postgresql/data/
这里报错,提示版本不匹配,经查我这边是10以上版本,要改为
cd /opt/gitlab/embedded/postgresql/10/bin
./pg_basebackup -h 192.168.1.9 -p 5432 -U gitlab_replicator -F p -P -D /var/opt/gitlab/postgresql/data/
2. 报错没有slot可同步,pg_basebackup: could not create temporary replication slot,需要在主库里修改
max_replication_slots = 10 这里原为0,改成10,这个必须改,否则无法备份。
3. postgresql同步虽然可以按博主的方法实现,但是从gitlab是无法登录的,会报错: 500 Whoops, something went wrong on our end, 经过检查,是因为从库同步时,表为只读,而登录时是需要update 用户登录表的,因此就直接报错无法登录,解决办法是把postgresql 同步关掉,不要用同步功能,这个postgresql根本不需要实时同步,只需要每天凌晨执行 ./pg_basebackup -h 192.168.1.9 -p 5432 -U gitlab_replicator -F p -P -D /var/opt/gitlab/postgresql/data/ 过来后,重启postgresql即可,这里面数据不大,没必要做成主从同步,这样gitlab就可以登录了。总之,博主的文档很细,只是把postgresql同步改进一下就可以了。谢谢。