美文网首页
posegresql搭建及主备切换

posegresql搭建及主备切换

作者: 建康_木子 | 来源:发表于2019-08-14 09:15 被阅读0次

    一、获取安装包

    posegresql安装界面找到*Advanced users* can also download a [tar.gz archive](https://www.enterprisedb.com/download-postgresql-binaries) of the binaries, without the installer.后点击连接[tar.gz archive]即可进入下载界面,下载后不需要编译直接解压即可。

    二、配置文件

    1、解压后目录:/opt/pgsql
    2、创建目录:/opt/pgsql/data/pg_root
    3、查看版本:postgres --version
    4、切换到postgres用户初始化数据库:
    su postgres
    echo "123456" >> /data/pgpass
     
    initdb -D /data/pg10/pg_root -E UTF8 --locale=C -U postgres --pwfile=/data/pgpass
    
    
    5、修改主库/opt/pgsql/data/pg_root/postgresql.conf文件(主备库保持一致即可):
    listen_addresses = '*'
    wal_level = hot_standby  
    archive_mode = on  
    archive_command = '/bin/date'
    max_wal_senders = 10  
    wal_keep_segments = 512
    hot_standby = on
    
    6、(备库先执行1-4步骤)修改备库上的配置文件开启远程访问/opt/pgsql/data/pg_root/pg_hba.conf
    host    all     all        192.168.169.0/24            trust
    host    replication     repuser        192.168.169.0/24            trust
    

    三、创建备份用户

    1、启动主库:pg_ctl start -D $PGDATA -l logfile
    2、使用管理员用户创建备份用户:
    [root@master pgsql]:psql -U postgres -p 5432
    postgres=# CREATE USER repuser REPLICATION LOGIN CONNECTION LIMIT 5 ENCRYPTED PASSWORD 'domac123';
    

    四、使用 pg_basebackup 方式部署流复制

    1、在备服务器上停止psql服务:pg_ctl stop -m fast
    2、删除/opt/pgsql/data/pg_root目录:rm -rf /opt/pgsql/data/pg_root
    3、使用pg_basebackup触发基准备份:
    pg_basebackup -D $PGDATA -Fp -Xs -v -P -h 192.168.169.91 -p 5432 -U repuser -W
    
    4、备库配置recovery.conf
    recovery_target_timeline = 'latest'
    standby_mode = on
    primary_conninfo = 'host=192.168.169.91 port=5432 user=repuser'
    

    五、测试

    1、主库上创建test表,并插入了一条数据:
    postgres=# create table test(id int4);
    postgres=# insert into test values(6);
    
    2、在备库上进行查询观察是否同步成功:
    postgres=# select * from test;
    
    3、主库删除数据:
    postgres=# delete from test where id=6;
    postgres=# insert into test values(9);
    
    4、备库查询:postgres=# select * from test;
    5、备库插入数据提示:cannot execute INSERT in a read-only transaction

    六、主备切换

    1、关闭主库:pg_ctl stop -m fast
    2、备库上执行pg_ctl promote命令激活备库:pg_ctl promote -D $PGDATA,命令执行后,如果原来的 recovery.conf 更名为 recovery.done, 表示切换成功
    3、在老的主库的$PGDATA目录下也创建recovery.conf文件内容和原备库内容一致,更换下IP地址即可。
    4、启动主库
    5、检测主备情况,分别在主备机上执行:select pg_is_in_recovery();,返回值f代表主库,返回值t代表备库

    相关文章

      网友评论

          本文标题:posegresql搭建及主备切换

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