postgresql在线备份

注意:1-9步骤需要关闭WatchPowerServ postgresql服务(要彻底关闭postgresql服务,要先关闭WatchPowerServ服务)

i>如果是基于时间点的恢复,则时间点以后的数据都不会被恢复

ii>如果是基于还原点的恢复,则还原点以后的数据都不会被恢复

2.pg_controldata ./ | grep wal_level(这一步是检查wal级别)

3.如果第二步中的结果为Current wal_level setting: minimal,这需要将postgresql.conf中改为wal _level = archive
并且将archive_mode的值改为on

4.max_wal_senders = 8(postgresql.conf中,该值必须大于0),listen_addresses = ‘*’

5.mkdir -p /ssd4/postgres/arch/(wal归档日志存放目录)

6.chown -R postgres:postgres /ssd4/postgres/arch/

7.chmod 700 /ssd4/postgres/arch/

8.在postgresql.conf配置archive_command命令为(%p表示的pg_xlog/xxxxxxx文件是一个相对路径,%f表示的wal归档文件的名字)

archive_command=‘DATE=date +%Y%m%d;DIR="/ssd4/postgres/arch/$DATE";(test -d $DIR || mkdir -p $DIR) && cp %p $DIR/%f’

9.以上配置完成后需要pg_ctl reload

10.启动数据库服务,切换到数据库中去执行以下命令:

create role rep nosuperuser replication login connection limit 32 encrypted password ‘123rep123’;

11.第10步完成后用\du rep命令检查是否成功创建

12.回到$PGDATA目录下修改pg_hba.conf文件在文件末尾添加

host replication rep 0.0.0.0/0 md5

host all all 0.0.0.0/0(ipv4)

13.如果以上12个步骤均无误则可以开始用pg_basebackup命令来进行备份了

pg_basebackup -F t -x -D /usr/local/pgbak/ -h 172.16.5.87 -p 21114 -U rep(此处的ip地址为你要将基础备份存到哪里)

14.备份归档文件(这个很重要,关系数据库的恢复,当然13步的基础备份也很重要,基础备份主要是用来备份$PGDATA目录和表空间)

15.接下来可以开始进行恢复了,恢复之前须关闭WatchPowerServ postgresql BoxDashboard服务

16.我们即将来配置还原文件

1>cp /usr/share/pgsql/recovery.conf.sample(用来配置还原点)$PGDATA

2>mv recovery.conf.sample recovery.conf

3>restore_command=‘cp xxxx/%f %p’’(在recovery.conf中,其中xxx为归档文件所在的目录)

4>recovery_target_timeline = 'latest’取消这句命令的select txid_current();注释,很重要

5>chown postgres:postgres recovery.conf

如果不继续17步,则只需要保存退出,然后重启数据库服务即开始恢复,恢复完成的标识是recovery.conf变成了recovery.done

17.我们把以上16个步骤全部完成后()

如果要还原到最近的那一次,也就是不是因为误操作的等原因的恢复,则不需要配置还原点

    recovery_target_name=''(这个是还原点的名字)
    recovery_target_time=''(这个是要还原到的具体时间点)
    recovery_target_xid='' (以最后结束时的id为准)
    创建还原点,也就是还原点的名字select pg_create_restore_point('pitr_test');  
    创建基于时间的还原点,select now(); 
    创建基于xid的还原点,select txid_current();

猜你喜欢

转载自blog.csdn.net/mingtiannihaoabc/article/details/86534221