PostgreSql及PostGis安装和一主二从配置

话不多说,我们直接开干。

1、软件
 CentOS 7.6
 PostgreSQL11.2

2、节点
 node1 172.16.5.7(主库)
 node2 172.16.5.6(从库)
 node3 172.16.5.5(从库)

3、 PostgreSql一主二从配置
3.1 安装PostgreSql及PostGis
三个服务器均需做如下操作:

  1. cat /etc/redhat-release查询系统版本,目前发现有些主机系统类型为redhat或者centos,更新源(手动下载)
    Sudo yum install
    https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

  2. 下载安装postgresql11
    sudo yum install postgresql11

  3. 下载安装postgresql11-devel和postgresql11-server插件
    yum install postgresql11-devel
    yum install postgresql11-server

  4. 查看postgresql是否安装
    rpm -qa | grep postgis

  5. 安装完毕之后, 执行执行:vim /etc/profile,文件末尾添加以下内容,最后执行source /etc/profile
    export PGSQL_HOME=/usr/pgsql-11
    export PATH= P G S Q L H O M E / b i n : PGSQL_HOME/bin: PATH

  6. 初始化数据库集群,这个集群是指单机下的数据库集合,初始化后存在两个自带的数据库postgres和template1,指令如下:
    initdb -D /data/pgsql11/data

  7. 注意/data/pgsql11/data/postgresql.conf该文件包含了postgresql的所有配置信息,在这里我们修改log路径,绑定端口号等等功能。修改postgresql.conf文件如下:

    listen_addresses = ‘*’
    port = 18083
    log_directory = ‘/data/pgsql11/log’

  8. 修改pg_hba.conf文件,增加
    host all smoke 0.0.0.0/0 trust

  9. 启动postgresql服务
    chown -R app1:app1 /var/run/postgresql #更改文件夹操作权限
    pg_ctl -D /data/pgsql11/data -l /data/pgsql11/log/pgsql.log start #启动数据库

  10. 创建数据库
    createdb -h localhost -p 18083 gisdb #创建gisdb的数据库
    psql -h localhost -p 18083 -d gisdb #连接gisdb数据库

  11. 安装postGis
    sudo yum install postgis25_11-client.x86_64 postgis25_11.x86_64

  12. 给postgreSql安装gis扩展
    psql -h 172.16.5.7 -p 5432 -d gisdb
    gisdb=# CREATE EXTENSION postgis;
    CREATE EXTENSION
    gisdb=# SELECT postgis_full_version()

3.2 配置主服务器

  1. 创建同步账号,用于同步数据
    psql -h 172.16.5.7 -p 5432 -d gisdb
    CREATE USER replica WITH PASSWORD ‘replica-vcredit’ REPLICATION;

  2. 修改postgresql的pg_hba.conf,配置运行刚刚创建的replica用户可以进行连接,在pg_hba.conf文件中加入如下内容:

    host all all 172.16.5.6/32 trust
    host replication replica 172.16.5.6/32 md5
    host all all 172.16.5.5/32 trust
    host replication replica 172.16.5.5/32 md5

  3. 配置postgresql.conf

    listen_addresses = ‘*’ #监听所有ip
    archive_mode = on #开启归档模式
    archive_command = ‘cp %p /data/pgsql11/data/pg_wal/%f’ #归档命令
    wal_level = hot_standby #热备模式
    max_wal_senders = 10 #最多有10个流复制连接
    wal_sender_timeout = 60s #流复制超时时间
    max_connections = 100 #最大连接时间,必须要小于从库的配置

  4. 重启数据库服务
    pg_ctl -D /data/pgsql11/data -l /data/pgsql11/log/pgsql.log restart

3.3 配置从服务器

  1. 进入172.16.5.5和172.16.5.6服务器,清空PostgreSQL数据的存储文件夹/data/pgsql11/data
    sudo rm -rf /data/pgsql11/data/*

  2. 基础备份
    pg_basebackup -F p --progress -D /data/pgsql11/data/ -h 172.16.5.7 -p 18083 -U replica –password
    命令行参数如下:
    -F p 指定输出格式:p原样输出,即把主数据库中的各个数据文件,配置文件、目录结构都完全一样的写到备份目录;
    -P, --progress 在备份过程中实时打印备份进度
    -D 指定把备份写到那个目录
    -h 启动的主库数据库地址
    -p 端口号
    -U 流复制用户

  3. 在/data/pgsql11/data/目录下,创建recovery.conf文件,内容如下

    standby_mode = on #表示该节点是从库
    primary_conninfo = ‘host=172.16.5.7 port=18083 user=replica password=replica-vcredit’ #从机信息和连接用户
    recovery_target_timelint = ‘latest’ #说明恢复到最新状态

  4. 配置从机的postgresql.conf文件

    wal_level = hot_standby #热备模式
    max_connections = 300 #最大连接时间
    hot_standby = on #说明这台机器用于数据归档和数据查询
    max_standby_streaming_delay = 30s #流备份的最大延迟时间
    wal_receiver_status_interval = 1s #向主机汇报本机状态的间隔时间
    hot_standby_feedback = on #r出现错误复制,向主机反馈

  5. 重启数据库服务
    pg_ctl -D /data/pgsql11/data -l /data/pgsql11/log/pgsql.log restart
    至此,主从配置完成,可更改主库数据,查看从库是否更新进行测试。

猜你喜欢

转载自blog.csdn.net/liwangcuihua/article/details/94720459
今日推荐