• PostgresSQL10 主从复制配置


    安装步骤(yum安装):

    $ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm  -y

    $ yum install postgresql10 -y  

    $ yum install postgresql10-server -y  

    常用命令

    重启:systemctl restart postgresql-10  

    查看状态:systemctl status postgresql-10

    启动:systemctl start postgresql-10

    停止:systemctl stop postgresql-10

    一、主服务器配置

    1、创建数据目录、归档目录 (可以使用原目录)

    $ mkdir -p /home/postgresql/data/  

    $ chown -R postgres:postgres /home/postgresql/data/ #修改data目录的用户及组为postgres  

    $ chmod 700 -R /home/postgresql/data #修改data目录的权限为700 (读:4,写:2,执行:1,-表示0-R表示级联)  

    2、修改数据存储路径

    $ vim /usr/lib/systemd/system/postgresql-10.service  

      Environment=PGDATA=/home/postgresql/data/ #找到Environment=PGDATA, 修改  

    3、初始化数据库

    $ /usr/pgsql-10/bin/postgresql-10-setup initdb

    4、配置数据库

    $ vim /home/postgresql/data/postgresql.conf

    data_directory = '/home/postgresql/data'

    listen_addresses = '*'

    port = 9999 #端口号(请修改)

    max_connections = 100

    unix_socket_directories = '/var/run/postgresql, /tmp, /home/postgresql/data'

    wal_level = replica

    archive_mode = on

    archive_command = 'cp %p /home/postgresql/data/pg_archive/%f'

    max_wal_senders = 16

    wal_keep_segments = 256

    wal_sender_timeout = 60s  

    $ mkdir -p /home/postgresql/data/pg_archive/  

    $ chown -R postgres:postgres /home/postgresql/data/ #修改data目录的用户及组为postgres  

    $ vim /home/postgresql/data/pg_hba.conf # 在末尾添加从服务器信息

    host all all 0.0.0.0/0 md5

    host    replication     主从复制角色         从服务器IP/24      md5

    vi /var/lib/pgsql/10/data/pg_hba.conf

    host    all             all             0.0.0.0/0               trust

    host    replication     copypostgres        192.168.192.224/24      md5

    5、配置全局配置

    $ vim /etc/profile

    export PGDATA=/home/postgresql/data # 数据库的数据目录

    export PGPORT=9999 # 数据库端口  

    export PGDATA=/var/lib/pgsql/10/data

    export PGPORT=5432$ source /etc/profile  

    6、开机自启

    $ systemctl enable postgresql-10  

    $ systemctl start postgresql-10  

    7、创建主从同步replica用户

    $ su - postgres  

    $ psql  

    postgres=# CREATE ROLE 主从复制角色 login replication encrypted password '主从复制密码';

    create role copypostgres login replication encrypted password 'copypostgres';

    $ q #退出

    $ psql -U postgres   #设置local all all md5  #trust 可以直接登录

    alter user postgres with password 'postgres用户的远程密码';

    8、若有任何修改,最好重启数据库

    systemctl restart postgresql-10  

    二、从服务器配置

    1、创建数据目录、归档目录 (先安装PostgreSQL)

    $ mkdir -p /home/postgresql/data/  

    $ chown -R postgres:postgres /home/postgresql/data/ #修改data目录的用户及组为postgres  

    $ chmod 700 -R /home/postgresql/data #修改data目录的权限为700 (读:4,写:2,执行:1,-表示0-R表示级联)  

    2、修改数据存储路径

    $ vim /usr/lib/systemd/system/postgresql-10.service  

      Environment=PGDATA=/home/postgresql/data/ #找到Environment=PGDATA, 修改

    3、 初始化数据库

    $ /usr/pgsql-10/bin/postgresql-10-setup initdb

    $ cd /home/postgresql/data/ #先进入/home/postgresql/data/在删除data下的所有文件

    $ rm -rf *

    $ su - postgres

    $ pg_basebackup -h 主服务器IP -U 主从复制角色 -D /home/postgresql/data -X stream -P -p 主服务器端口  

      Password: replica  

      (等待同步)

    pg_basebackup -h 192.168.192.221 -U copypostgres -D /var/lib/pgsql/10/data/ -X stream -P  

    $ cp /usr/pgsql-10/share/recovery.conf.sample /home/postgresql/data/recovery.conf  

    $ exit  

    4、修改相关配置文件(recovery.conf和postgresql.conf)

      $ vim /home/postgresql/data/recovery.conf

      

      standby_mode = on

      primary_conninfo = 'user=主服务器用户名 password=主服务器密码 host=主服务器IP port=主服务器端口'

    primary_conninfo = 'host=192.168.192.221 port=5432 user=copypostgres password=copypostgres'

      #trigger_file = '/var/lib/pgsql/9.6/data/trigger.kenyon' #主从切换时后的触发文件 (没有配置,使用默认, 暂时未启用)

      recovery_target_timeline = 'latest'

      $ vim /home/postgresql/data/postgresql.conf

      max_connections = 300  (master的最大连接数要小于slaver,一定要改大)

      hot_standby_feedback = on #如果有错误的数据复制,是否向主进行范例  

      port = 999 #端口号(一般不需要改)

      hot_standby = on #说明这台机器不仅仅用于数据归档,也用于查询  (默认值一般不需要改)

      max_standby_streaming_delay = 30s  (默认值一般不需要改)

      wal_receiver_status_interval = 10s #多久向主报告一次从的状态  (默认值一般不需要改)

      

    5、配置全局配置

    $ vim /etc/profile

    export PGDATA=/home/postgresql/data # 数据库的数据目录

    export PGPORT=9999 # 数据库端口  

    $ source /etc/profile  

    6、开机自启

    $ systemctl enable postgresql-10  

    $ systemctl start postgresql-10  

    测试主从是否可用(主服务器创建一个库看从服务器是否有)

    $ su - postgres  

    $ psql  

    $ select client_addr,sync_state from pg_stat_replication;   #在主服务器查看同步记录是否存在

    修改远程登录密码(创建用户就不在这写了,使用postgres登录测试下)

    $ su - postgres  

    $ psql -U postgres  

    alter user postgres with password '密码';  

  • 相关阅读:
    pt-online-schema-change使用
    MySQL8.0哪些新特性你最期待
    第11章:使用Python打造MySQL专家系统
    第10章:深入浅出Ansible
    第9章:Python自动化管理
    第8章:网络
    自己在Java学习中遇到的一些遗漏小知识点
    Java语言程序设计与数据结构(梁勇版) 基础版 课后习题 第三章
    Java多态小知识
    Java继承与抽象类小知识以及super,this关键字用法
  • 原文地址:https://www.cnblogs.com/hcs88/p/13844761.html
Copyright © 2020-2023  润新知