美文网首页
Windows下Postgresql主从热备

Windows下Postgresql主从热备

作者: 有利息 | 来源:发表于2021-03-03 10:13 被阅读0次

    前置条件

    1. 主从服务器需安装相同版本的postgresql数据库;
    2. 确保主从服务器能相互访问对方的postgresql数据库;

    主端

    1.创建流复制用户

    CREATE USER 用户名 replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD ‘密码’;
    
    //查看所有用户
    select * from pg_user;
    
    //查看所有角色
    select * from pg_roles;
    

    2.修改pg_hba.conf文件

    该文件一般位于postgresql数据库安装目录下的data文件夹内
    添加内容:host replication 流复制用户名 从端地址 md5
    如:host replication hotbackup 192.168.36.26/32 md5

    3.修改postgresql.conf文件

    该文件一般位于postgresql数据库安装目录下的data文件夹内
    添加如下内容

    max_wal_senders = 1 
    wal_level = hot_standby 
    archive_mode = on 
    archive_command = 'cd ./' 
    hot_standby = on 
    wal_keep_segments = 64
    

    max_wal_senders是slave库的节点数,有多少个slave库就设多少,
    wal_level是write ahead log参数值,设置流复制务必将此值更新成hot_standby
    wal_keep_segments默认值是16,是PG_XLOG下的日志文件数相关参数
    archive也可以选择关闭,归档是定时恢复用的,流复制不是必须的

    4.主端data备份

    开启文件备份,前提是wal_level参数值必须是archive或者host_standby,在上一步已经配置过了。执行如下sql开启备份:

    select pg_start_backup('Replition work');
    
    1. 关闭从端数据库服务;
    2. 清空从端的data下的所有内容;
    3. 然后将主端data的所有内容复制到从端的data下;
    4. 删除从端下的postmaster.pid和pg_xlog下的内容;
    5. 结束主端的备份,执行如下sql:
    select pg_stop_backup();
    
    1. 修改从端pg_hba.conf文件使其主端能访问;

    5.修改从端recovery.conf配置文件

    将数据库安装目录下share文件夹内的recovery.conf.sample文件复制到安装目录下data文件夹内,修改名称recovery.conf,添加如下内容:

    standby_mode ='on' 
    primary_conninfo='host=192.168.36.25 port=5432 user=hotbackup password=smgi keepalives_idle=60'
    

    说明:上面的地址 host=主端的地址,port端口也是,user和password是之前创建的流复制用户和密码

    6.修改从端pgpass.conf配置文件

    该文件的默认地址在:C:\Users\Administrator\AppData\Roaming\postgresql。
    这个文件里面可以放入连接远程数据库的默认账号密码,免去手动连接输入账号密码。
    添加如下内容:

    192.168.1.160:5432:postgres:repuser:repuser
    

    说明:上面ip是主端的地址,端口也是,postgres是你的数据库名,repuser:repuser是账号和密码,是第二步创建的流复制用户名和密码。

    7.启动从端数据库

    打开从端的数据库, 可以看到从端和主端上面的数据库是一样的,当对主端数据库进行insert,update,delete操作时,从端也会同步更新数据,且从端的会话为只读,不能进行insert,update,delete操作。
    如果从端数据库服务启动失败,则需要看data/pg_log的日志。

    相关文章

      网友评论

          本文标题:Windows下Postgresql主从热备

          本文链接:https://www.haomeiwen.com/subject/vetqqltx.html