首页 > 数据库技术 > 详细

039.PGSQL-备份和恢复-开启wal归档

时间:2021-07-28 18:22:29      阅读:12      评论:0      收藏:0      [点我收藏+]

备份:

sql转储备份

文件系统级别备份

连续归档-增量备份和基于时间点恢复(PITR)

 

物理备份:将数据目录,参数文件拷贝出来

逻辑备份:将数据库对象导出到文件

 

冷备份:数据库关闭情况下

热备份:数据库启动情况下

 

RTO 恢复时间目标  故障发生到恢复所需时间

RPO 恢复点目标   可容忍丢失多少数据

 

 一、增量备份

定期对数据库做基础备份,再配合WAL的归档日志,可实现再较短时间将数据库恢复

 参考

https://blog.csdn.net/qq_43303221/article/details/88224272

https://blog.csdn.net/weixin_39520204/article/details/112237317?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.control&spm=1001.2101.3001.4242

 开启WAL 归档

创建归档目录

技术分享图片

[root@s101 /var/lib/pgsql/13]#ls

archive_wals

backups

scripts

 

wal归档 记录  touch  pg_archive_logs

[root@s101 /var/lib/pgsql/13/archive_wals]#cat  pg_archive_logs
the old backup file not exists!

 

开启WAL 归档

1.配置文件参数设置

[root@s101 /var/lib/pgsql/13/data]#nano postgresql.conf

wal_level = replica

# minimal, replica, or logical


archive_mode = on             

# enables archiving; off, on, or always


archive_command = ‘/bin/bash /var/lib/pgsql/13/scripts/pg_archive.sh %p %f‘

  # command to use to archive a logfile segment
  # placeholders: %p = path of file to archive
  # %f = file name only
  # e.g. test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f

2.归档执行脚本 

pg_archive.sh

[root@s101 /var/lib/pgsql/13/scripts]#cat pg_archive.sh

#!/bin/bash
source /var/lib/pgsql/.bash_profile

DATE=`date +%Y%m%d`
DIR="/var/lib/pgsql/13/archive_wals/$DATE"
BACK="/var/lib/pgsql/13/archive_wals/"`date -d -20 day +%Y%m%d`
if [ -d "$BACK" ]; then
                rm -rf $BACK
                echo "success rm $BACK" > /var/lib/pgsql/13/archive_wals/pg_archive_logs
        else
                echo "the old backup file not exists!" > /var/lib/pgsql/13/archive_wals/pg_archive_logs
fi

(test -d $DIR || mkdir -p $DIR) && cp $1 $DIR/$2

 

#重新启动数据库
sudo systemctl restart postgresql-13

 

说明:配置参数

wal_level 、 archive_mode 需要重启数据库
archive_command  不需要重启数据库,只需要再次加载就可以

 

reload配置文件

select pg_reload_conf();

 

查看 archive_command 

show archive_command

技术分享图片

 

 

常用命令 

 查看数据目录 show data_directory;

 是否开启归档 show archive_mode; 

 

--查看日志目录所有文件select * from pg_ls_logdir();

--查看/data目录下的文件select pg_ls_dir(‘/data‘);

 

输出数据库WAL目录的所有文件

--输出文件总大小,单位是byte   select sum(size) from pg_ls_waldir();    select sum(size)/1024/1024   as  "文件大小(M)"   from pg_ls_waldir(); 

--查看WAL文件数量,单个wal日志文件大小默认为16MB。 select count(*) from pg_ls_waldir();     select count(*)*16  as "文件大小(M)"    from pg_ls_waldir();

技术分享图片

 

 

查看运行日志的相关配置

show logging_collector;--启动日志收集

show log_directory;--日志输出路径

show log_filename;--日志文件名

show log_truncate_on_rotation;--当生成新的文件时如果文件名已存在,是否覆盖同名旧文件名

show log_statement;--设置日志记录内容

show log_min_duration_statement;--运行XX毫秒的语句会被记录到日志中,-1表示禁用这个功能,0表示记录所有语句,类似mysql的慢查询配置

 

查询当前lsn  (log sequence number)

--1、用到哪些方法select proname from pg_proc where proname like ‘pg_%_lsn‘;proname--------------------------------- pg_current_wal_flush_lsn pg_current_wal_insert_lsn pg_current_wal_lsn pg_last_wal_receive_lsn pg_last_wal_replay_lsn

--2、查询当前的lsn值select pg_current_wal_lsn();

--3、查询当前lsn对应的日志文件select pg_walfile_name(‘2/81872298‘);

--4、查询当前lsn在日志文件中的偏移量SELECT * FROM pg_walfile_name_offset(pg_current_wal_lsn());

039.PGSQL-备份和恢复-开启wal归档

原文:https://www.cnblogs.com/star521/p/15071540.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!