Centos7脱机安装postgresql

内容纲要

一. 下载离线资源包

  • 下载地址:www.postgresql.org/download/
  • 拉到最下边点击direct download
    file
  • 选择自己适用的版本(根据自己的系统)
    file
  • 点击进入
    file
  • 下载下边四个文件
    file
  • 安装时还需要依赖2个库文件:libculibxslt

    libicu-50.2-4.el7_7.x86_64.rpm
    libtirpc-0.2.4-0.16.el7.x86_64.rpm

二. 安装

  1. 将下载的6个文件上传服务器,然后按顺序进行安装
    #安装依赖
    rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm
    rpm -ivh libxslt-1.1.28-6.el7.x86_64.rpm
    #如果安装时提示缺少libgcrypt安装
    rpm -ivh libgcrypt-1.5.3-14.el7.x86_64.rpm
    #安装postgress
    #安装顺序 libs>12.13>server>contrib
    rpm -ivh postgresql12-libs-12.13-1PGDG.rhel7.x86_64.rpm
    rpm -ivh postgresql12-12.13-1PGDG.rhel7.x86_64.rpm
    rpm -ivh postgresql12-server-12.13-1PGDG.rhel7.x86_64.rpm
    rpm -ivh postgresql12-contrib-12.13-1PGDG.rhel7.x86_64.rpm
  2. 创建pg的用户组和用户
    groupadd postgres
    useradd -g postgres postgres
  3. 创建数据存放目录
    mkdir -p /data/appData/postgreSql
    mkdir -p /data/logs/postgreSql/
    mkdir -p /data/app/postgreSql/pg_archive/xlog_files
    #授予权限
    chmod  -R 700 /data/appData/postgreSql
    chmod  -R 700 /data/logs/postgreSql/
    #主从同步目录,不需要可跳过
    chmod  -R 700 /data/app/postgreSql/pg_archive/xlog_files
    #更改目录拥有用户
    chown -R postgres:postgres /data
    chown -R postgres:postgres /data/appData/postgreSql
    chown -R postgres:postgres /data/logs/postgreSql/
    #主从同步目录,不需要可跳过
    chown -R postgres:postgres /data/app/postgreSql/pg_archive/xlog_files
  4. 修改数据存放目录
    #修改文件 /usr/lib/systemd/system/postgresql-12.service
    vim /usr/lib/systemd/system/postgresql-12.service
    #修改数据存放路径
    #Environment=PGDATA=/var/lib/pgsql/12/data/
    Environment=PGDATA=/data/appData/postgreSql
  5. 初始化数据库
    #切换数据库用户
    su - postgres
    #初始化数据库,-D参数貌似可以不用
    /usr/pgsql-12/bin/initdb  -D /data/appData/postgreSql
  6. 修改配置数据库参数
    • 修改配置文件postgresql.conf
      #1. 取消 listen_addresses注释,并修改为
      listen_addresses = '*'
      #2.取消port = 5432 注释
      port = 5432
      #3.修改max_connection = 900
      max_connection = 900
    • 修改配置文件pg_hba.conf
      #允许远程访问
      #参数:trust 免密; md5 密码登录
      #追加一行
      host    all             all      0.0.0.0/0      md5
  7. 启动服务
    #方式1
    usr/pgsql-12/bin/pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log  start
    #方式2
    systemctl start postgresql-12
    #查看服务状态
    systemctl status postgresql-12

三. 主从数据库配置

  1. 主库增加一个用户复制的用户replica
    create role replica login replication encrypted password '123456';
  2. 修改配置数据库参数
    修改配置文件postgresql.conf

    # 监听所有ip
    max_connection = 900 listen_addresses = '*'
    # 热备模式
    wal_level = replica
    #允许归档
    archive_mode = on
    # 归档目录
    archive_command = 'cp %p /data/app/postgreSql/pg_archive/xlog_files/%f' 
    #同步最大的进程数量
    max_wal_senders = 32
    #流复制主机发送数据的超时时间
    wal_sender_timeout = 60
    #最大连接数,从库的max_connections必须要大于主库的
    max_connections = 900

    修改配置文件pg_hba.conf

    #允许远程访问
    #参数:trust 免密; md5 密码登录
    #追加一下配置,授权备库访问
    host    all             all             0.0.0.0/0               md5
    host    all             all             156.1.2.14/32           trust
    host    replication     replica         156.1.2.14/32           md5
  3. 备库安装后,不初始化设置,执行命令从主库拷贝数据
    /usr/pgsql-14/bin/pg_basebackup -D  /data/appData/postgreSql  -h 156.1.2.13  -p 5432 -U replica -X stream -P
  4. 修改从库的postgresql.conf文件
    # 移除或注释 wal_level,从库不需要这个配置
    # wal_level = hot_standby
    ## 修改或添加以下
    #可选,流复制最大延迟
    max_standby_streaming_delay=30s
    #可选,向主库报告状态的最大间隔时间
    wal_receiver_status_interval=10s
    #可选,查询冲突时向主库反馈
    hot_standby_feedback=on
    #最大连接数一般大于主库就行
    max_connections=1000
    # 表示主库连接信息
    primary_conninfo = 'host=156.1.2.13  port=5432 user=replica   password=123456'
    # 表示恢复最新的数据
    recovery_target_timeline = 'latest'
    #允许归档
    hot_standby = on
  5. 创建 standby.signal文件就在数据文件夹内,标识从节点,当从节点提升为主节点后会自动删除)
    echo "standby_mode = on" >> /data/appData/postgreSql/standby.signal

    6.启动从库

    /usr/pgsql-12/bin/pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log start

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注