zoukankan      html  css  js  c++  java
  • postgresql主从配置

    master:10.0.1.114

    slaver:10.0.1.116

    一、yum安装https://blog.csdn.net/weixin_41048363/article/details/80310285

    二、主从配置

    1、主数据配置(10.0.1.114)

    1.1  初始化

    /usr/pgsql-9.6/bin/postgresql96-setup initdb 
    

      

    1.2 启动postgresql 


    systemctl start postgresql-9.6

      

    1.3 切换到postgres用户(安装好生成默认的用户)

    [root@steven1 data]# su - postgres  
    上一次登录:三 5月 16 09:19:49 UTC 2018pts/0 上  
    -bash-4.2$    
    -bash-4.2$ psql    进入数据库  
      
    postgres=#
    

      

    1.4 创建账号并授权

    postgres=# create role 账户名 login replication encrypted password '密码';
    

      

    1.5  修改/var/lib/pgsql/9.6/data/pg_hba.conf配置文件.

    # IPv4 local connections:  
    host    all             all             127.0.0.1/32            ident  
    #  添加如下内容  
    host    replication     repl            10.0.1.0/24             md5  
    host    all             repl            10.0.1.1/24             trust 
    

      

    1.6 修改postgresql.conf

    -bash-4.2$ vim postgresql.conf  
    listen_addresses = '10.0.1.114'     
    wal_level = hot_standby  #热备模式  
    max_wal_senders= 6 #可以设置最多几个流复制链接,差不多有几个从,就设置多少  
    wal_keep_segments = 10240  #重要配置   
    wal_send_timeout = 60s   
    max_connections = 512 #从库的 max_connections要大于主库  
    archive_mode = on #允许归档   
    archive_command = 'cp %p /url/path%f'   #根据实际情况设置  
    

      

    三、从数据库配置

    1、切换到postgres

    [root@localhost data]# su - postgres  
    

      

    2、拷贝master配置相关文件。

    -bash-4.2$ rm -rf /var/lib/pgsql/9.6/data/*  
    -bash-4.2$ pg_basebackup -h 10.0.1.114 -U repl -D /var/lib/pgsql/9.6/data -X stream -P       
    -bash-4.2$ cp /usr/pgsql-9.6/share/recovery.conf.sample /var/lib/pgsql/9.6/data/recovery.conf  
    

      

     3、修改recovery.conf文件

    standby_mode = on  
    primary_conninfo = 'host=10.0.1.114 port=5432 user=master创建的用户名 password='密码'  
    trigger_file = '/var/lib/pgsql/9.6/data/trigger.kenyon'    #主从切换时后的触发文件  
    recovery_target_timeline = 'latest'  
    

      

     4、修改postgresql.conf文件

    listen_addresses = 10.0.1.116  
    wal_level = hot_standby   
    max_connections = 1000 #一般从的最大链接要大于主的。   
    hot_standby = on #说明这台机器不仅仅用于数据归档,也用于查询   
    max_standby_streaming_delay = 30s   
    wal_receiver_status_interval = 10s #多久向主报告一次从的状态。   
    hot_standby_feedback = on #如果有错误的数据复制,是否向主进行范例 
    

      

    四、检测

    1、在master数据库中测试

    postgres=# select client_addr,sync_state from pg_stat_replication;  
     client_addr | sync_state  
    -------------+------------  
     10.0.1.116  | async  
    (1 row) 
    

      

    2、在master数据库中创建test数据库

    postgres=# create database test;  
    CREATE DATABASE  
    postgres=# l     //  查看当前所有数据库  
                                      List of databases  
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  
    -----------+----------+----------+-------------+-------------+-----------------------  
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +  
               |          |          |             |             | postgres=CTc/postgres  
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +  
               |          |          |             |             | postgres=CTc/postgres  
     test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  
    (4 rows)  
      
    postgres=# 
    

      

    3、在从数据库中查看数据库是否同步。

    postgres=# l  
                                      List of databases  
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  
    -----------+----------+----------+-------------+-------------+-----------------------  
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +  
               |          |          |             |             | postgres=CTc/postgres  
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +  
               |          |          |             |             | postgres=CTc/postgres  
     test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  
    (4 rows)
    

      

    参考:https://www.linuxidc.com/Linux/2017-03/142145.htm

  • 相关阅读:
    记忆点
    数组的操作
    console.log()中的运算与打印事件
    ie9上传后下载json
    mysql使用on duplicate key update批量更新数据
    vue 弹出菜单
    mysql备份脚本
    uniapp+nodejs微信支付小程序版
    mycat初体验
    vscode格式化html标签属性不换行(vetur插件)
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/9059695.html
Copyright © 2011-2022 走看看