postgres物理备份与恢复

本文详细介绍了Postgres数据库的物理备份与恢复方法,包括冷备份、热备份(PITR)、pg_start_backup与pg_stop_backup、pg_basebackup工具以及pg_rman的使用。涉及归档设置、日志管理、恢复策略等关键步骤。
摘要由CSDN通过智能技术生成

                                                                                       postgres物理备份与恢复

操作系统:centos 6.5 64 

数据库:postgres 9.5.1

1冷备份与恢复

文件系统级别的备份是冷备份,需要停止数据库。

1.1操作步骤

(1)停止数据库

pg_ctl -D /pgdb/data  stop -m   fast           

(2)备份数据库 

tar  -jcvf /pgdb/backup/filebackup.tar.bz2  /pgdb/data

(3)删除/pgdb/data目录

rm –r /pgdb/data

(4)解压备份文件到原目录

tar -jxvf /pgdb/backup/filebackup.tar.bz2–C /

(5)启动数据库

pg_ctl -D /pgdb/data start

2热备份

PITR原理

postgres在数据目录中pg_xlog中始终维护着一个wal日志。这个日志文件用于记录数据库数据文件的所有改变。当数据库出现故障时,能够通过某个时间点的全备份+重做归档日志文件(可以指定重做时间点)把数据库恢复到全备份之后的任意时间点位置。

 

2.1基础-日志归档

配置归档需要编辑postgresql.conf文件,默认位置在../data/目录下

(1)固定目录

vim  /pgdb/data/postgresql.conf

archive_mode= on

archive_command= 'cp %p /pgdb/backup/archived_log/%f'

wal_level= archive

注:%p要被归档的日志文件的路径,%f是要被归档的日志文件的文件名

 (2)禁用

archive_mode= on                 

archive_command= '/bin/date'   #(change requires restart)

备注:这种归档的禁用或启用需要通过修改postgresql.conf文件来控制,并且修改之后还需要reload 操作,步骤较烦琐。

(3)使用逻辑或运算

archive_mode= on            

archive_command= 'test ! -f /pgdb/backup/archived_log || cp %p /pgdb/backup/archived_log/%f '

备注:这里使用了逻辑或运算,当文件标识/pgdb/backup/archived_log存在时,则会运行之后的归档命令。

(4)shell判断语句

archive_mode= on            

archive_command= 'if [ -f "/pgdb/backup/archived_log " ]; then cp %p /pgdb/backup/archived_log/%f; fi'   

(5)archive_command中控制每天生成一个归档目录(生成环境建议)

archive_command= 'DIR=/pgdb/backup/archived_log/`date +%F`; test ! -d $DIR && mkdir -p $DIR; test ! -f $DIR/%f && cp %p$DIR/%f'

写脚本直接每天备份前一天归档目录(如果是当天,管理不便)

脚本 vi /pgdb/backup_archlog.sh

#!/bin/bash

echo " `date +"%Y-%m-%d %H:%M:%S"` start backuped to `date -d "-1 day" +%F` archlog" > /pgdb/backup1/archived_log/`date -d "-1 day" +%F`.log 2>&1

cp -r /pgdb/backup/archived_log/`date -d "-1 day" +%F`   /pgdb/backup1/archived_log/

echo " `date +"%Y-%m-%d %H:%M:%S"` end  backuped to `date -d "-1 day" +%F` archlog" >> /pgdb/backup1/archived_log/`date -d "-1 day" +%F`.log 2>&1

chown  -R  postgr

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值