一. PostgreSQL热备份的过程一般为:

  • 数据库中执行:pg_start_backup() ;
  • 然后使用操作系统的tar或 cp命令拷贝 PostgreSQL数据文件。
  • 数据库中执行:pg_stop_backup()  ;
 
1. 配置归档模式
   配置归档需要编辑postgresql.conf文件; 
  # vi postgresql.conf
archive_mode = on
archive_command = 'cp -i %p /home/postgres/archive/%f'
wal_level = archive
修改完之后;重启下数据库。
 
2. 创建备份
postgres=# select pg_start_backup('hot_back');
 pg_start_backup
-----------------
 /
( row)
3. 复制数据文件
 # tar -zcvf $HOME/backup/hotback.tar.gz data/
 
4. 停止备份
postgres=# select pg_stop_backup();
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
 pg_stop_backup
----------------
 /30000C0
( row)
在这里;备份过程已经完成了。
其中pg_start_backup() 操作的作用类似于oracle的“alter database begin backup”

实际上pg_start_backup()主要做了以下两个工作:

  • 置写日志标志为:XLogCtl->Insert.forcePageWrites = true,也就是把这个标志设置为true后,数据库会把变化的整个数据块都记录到数据库中,而不仅仅是块中记录的变化。
  • 强制发生一次checkpoint点。

最后奉上备份脚本

##===========================================================
##   pg_hot_back.sh
##   created by lottu
##   //
##   usage: pg_hot_back.sh
##============================================================
#!/bin/bash
DATE=`date +%Y%m%d`;
PG_ARCHIVE=/home/postgres/archive/
PG_DATA=/home/postgres/data/
PG_HOME=/home/postgres
BACK_LOG=/home/postgres/log/hot_${DATE}.log

#START BACKUP
echo "START BACKUP..............." > $BACK_LOG
psql postgres -c "select pg_start_backup('hot_back')" >> $BACK_LOGcd $PG_HOME
tar -zcvf ${PG_HOME}/backup/pg_back_${DATA}.tar.gz data/ >> $BACK_LOG
psql postgres -c "select pg_stop_backup()" >> $BACK_LOG
psql postgres -c "select pg_switch_xlog()" >> $BACK_LOG
psql postgres -c "select pg_current_xlog_location()" >> $BACK_LOG
echo "BACKUP  END" > $BACK_LOG
 
二. postgresql 恢复操作
 
  postgresql恢复操作同样很简单
1. 停掉数据库
   # pg_stop;
 
2. 删除/data/
   # rm –r /home/postgres/data/       #数据文件是放在/home/postgres/data/
   #若这个时候启动数据pg_start; 启动是成功的;不会报错!这个跟oracle是不同的;启动日志也不会出现error的错误提示;
 
3. 恢复备份
   # cp backup/hotback.tar.gz ./
   # tar -zxvf hotback.tar.gz 
 
4. 删除pg_xlog文件夹并重建
  # rm -rf pg_xlog 
  # mkdir -p pg_xlog/archive_status
 
5. 拷贝recovery.conf文件并修改
  # vi /data/pgdata/recovery.conf
    --新增内容,指定恢复文件和路径,%f,%p见上面说明
  restore_command = 'cp /home/postgres/archive/%f "%p"' 
 
6. 启动数据库
  #pg_start;

postgresql 热备与恢复的更多相关文章

  1. 采用pacemaker+corosync实现postgresql双机热备、高可用方案

    环境说明 参照上章已完成postgresql流复制配置,并关闭postgres服务. su - postgres pg_ctl -D /data/postgresql/data/ stop -m fa ...

  2. 使用xtrbackup 热备MySQL数据库 以及恢复和自动删除脚本

    直接上脚本 热备(全备) #!/bin/bash user='root' passwd='123456' my_config='/etc/my.cnf' #mysql configure log=fu ...

  3. oracle数据库热备中的备份和恢复及例子

    手工热备(开库状态) 备份控制文件: alter database backup controlfile to '/u01/oradata/prod/con.bak1'; 备份数据文件(这里用到pl/ ...

  4. postgresql双机热备、高可用方案(采用pacemaker+corosync实现)

    http://blog.csdn.net/qguanri/article/details/51151974 需求描述 我们有两台centos7的数据库主机A.B.要对A.B实现双机热备,A作为数据库m ...

  5. CentOS系统MySQL双机热备配置

    1  概述 在集成项目中需要应对不同环境下的安装配置,主流操作系统大致可以分为三种:Linux.Windows以及UNIX.其中Linux备受青睐的主要原因有两个: 首先,Linux作为自由软件有两个 ...

  6. 一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...

  7. 一张图看懂单机/集群/热备/磁盘阵列(RAID)

  8. Nginx+keepalived双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  9. keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

    本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...

随机推荐

  1. 使用Proj.Net创建空间参考

    在RGEOS项目中,投影变换是通过Proj.Net来实现的. 支持的投影主要包括AlbersProjection.TransverseMercator.Mercator.Krovak.Lambert ...

  2. [GeoServer]Openlayers简单调用

    Openlayers Demo: <html> <head> <title>OpenLayers Example</title> <script ...

  3. UILabel属性

    1.text:设置标签显示文本. 2.attributedText:设置标签属性文本. Ios代码 NSString *text = @"first"; NSMutableAttr ...

  4. iOS tableViewCell侧滑改变收藏状态

                 /** * 图片素材 链接: http://pan.baidu.com/s/1mhi1sfQ 密码: w2wq */ #import <UIKit/UIKit.h> ...

  5. 在centos安装docker

    关闭防火墙 iptables -L systemctl disable firewalld.service systemctl stop firewalld.service 配置代理太麻烦了,建议使用 ...

  6. App上架审核指南翻译

    App Store Review Guidelines APP审核指南:https://developer.apple.com/app-store/review/guidelines/ 本文是自主翻译 ...

  7. Megacli查看raid磁盘信息

    准备: 新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Fi ...

  8. Oracle Flashback Technologies - 估算不同时间段闪回日志的产生量

    Oracle Flashback Technologies - 估算不同时间段闪回日志的产生量 v$flashback_database_stat监控闪回数据的i/o开销的统计信息,根据之前的系统负载 ...

  9. mysql explain 命令讲解

    explian命令可以显示select语句的执行计划 explain的结果中每行对应select语句中的一个表,输出结果中的顺序是按照语句处理表的顺序. mysql使用嵌套循环来处理所有的join连接 ...

  10. DG - 开启Active Data Guard

    在配置active data guard之前,phycial standby必须处于以下两个状态之一: (1)standby处于mount状态,并且redo apply正在运行中 (2)standby ...