
PostgreSQL pg_basebackup做数据备份及恢复
发布日期:2021-05-07 23:51:43
浏览次数:20
分类:精选文章
本文共 2862 字,大约阅读时间需要 9 分钟。
PostgreSQL pg_basebackup做数据备份及恢复
之前有篇文章是讲通过pg_basebackup来搭建流复制环境的。今天正好因为审计要做恢复测试,而我们的备份都是通过basebackup来做的,所以这里讲下pg_basebackup做备份恢复的过程,与搭建流复制环境略有不同。
一,备份(每周一次,以日期来命名)
pg_basebackup -h 100.100.100.1 -D backup_date +%F
-U repuser -Ft -z -Z 9 -P
备份文件是一个以日期为后缀的文件夹,如backup_2016-01-03
看下里面的内容:
[postgres@db-backup-16 aly]$ cd backup_2016-01-03[postgres@db-backup-16 backup_2016-01-03]$ lltotal 136980-rw-rw-r-- 1 postgres postgres 845670 Jan 3 11:10 131356.tar.gz-rw-rw-r-- 1 postgres postgres 561 Jan 3 11:21 131358.tar.gz-rw-rw-r-- 1 postgres postgres 70274228 Jan 3 11:21 16389.tar.gz-rw-rw-r-- 1 postgres postgres 2243098 Jan 3 11:10 16390.tar.gz-rw-rw-r-- 1 postgres postgres 60964910 Jan 3 11:15 16391.tar.gz-rw-rw-r-- 1 postgres postgres 2525540 Jan 3 11:15 16392.tar.gz-rw-rw-r-- 1 postgres postgres 3398196 Jan 3 11:22 base.tar.gz
跟表空间对应起来:
postgres=# select oid,spcname from pg_tablespace; oid | spcname --------+------------------------ 1663 | pg_default 1664 | pg_global 16389 | tbs_reading 16390 | tbs_reading_idx 16391 | tbs_reading_market 16392 | tbs_reading_market_idx 131356 | tbs_ad 131358 | tbs_ad_idx
postgres=# \db List of tablespaces Name | Owner | Location ------------------------+----------+-------------------------------- pg_default | postgres | pg_global | postgres | tbs_ad | postgres | /opt/pg_tbs/ad tbs_ad_idx | postgres | /opt/pg_tbs/ad_idx tbs_reading | postgres | /opt/pg_tbs/reading tbs_reading_idx | postgres | /opt/pg_tbs/reading_idx tbs_reading_market | postgres | /opt/pg_tbs/reading_market tbs_reading_market_idx | postgres | /opt/pg_tbs/reading_market_idx
这样就很清楚了。数字分别对应表空间,base.tar.gz则对应$PGDATA.
二,恢复:
1,在恢复服务器上建好表空间对应的目录,如/opt/pg_tbs/ad,以及$PGDATA,如/opt/pgdata
2,把备份文件分别copy至对应目录下,
cp base.tar.gz $PGDATA cp 131356.tar.gz /opt/pg_tbs/ad 等等
3,解压缩备份文件 tar -zxvf 131356.tar.gz 等等
4,pg_ctl start -D $PGDATA
结果报错:
2016-01-05 11:14:57.444 CST,,,2720,,568b3531.aa0,2,,2016-01-05 11:14:57 CST,,0,LOG,00000,"invalid checkpoint record",,,,,,,,"ReadCheckpointRecord, xlog.c:7576",""2016-01-05 11:14:57.444 CST,,,2720,,568b3531.aa0,3,,2016-01-05 11:14:57 CST,,0,FATAL,XX000,"could not locate required checkpoint record",,"If you are not restoring from a backup, try removing the file ""/opt/pgdata/backup_label"".",,,,,,"StartupXLOG, xlog.c:6171",""
去看下$PGDATA/backup_label文件的内容,如下:
START WAL LOCATION: 5/7C000060 (file 00000001000000050000001F)CHECKPOINT LOCATION: 5/7C000098BACKUP METHOD: streamedBACKUP FROM: masterSTART TIME: 2016-01-03 11:12:13 CSTLABEL: pg_basebackup base backup
说明:这个库较小,且不繁忙,wal文件数量不多,且没有归档。所以去原来的库的pg_xlog找到00000001000000050000001F文件copy至恢复服务区的pg_xlog,再启动pg,就OK了。
.
. . . . 来自 http://blog.sina.com.cn/s/blog_544a710b0102w54h.html发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月12日 21时39分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Vue路由嵌套刷新后页面没有重新渲染
2021-05-08
Vue使用bus进行组件间、父子路由间通信
2021-05-08
数据库三个级别封锁协议
2021-05-08
类的实例
2021-05-08
tomcat加载部署webapps目录下的项目
2021-05-08
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2021-05-08
方法重写
2021-05-08
Threading Programming Guide(多线程编程指南)
2021-05-08
Java求逆波兰表达式的结果(栈)
2021-05-08
SDWebImage--http图片加载不出来的问题
2021-05-08
Application received signal SIGSEGV
2021-05-08
MySQL删除数据库时的错误(errno: 39)
2021-05-08
Win10 JDK配置环境变量以及为什么需要配置每部分的原因
2021-05-08
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2021-05-08
SLAM学习笔记-求解视觉SLAM问题
2021-05-08
普歌-允异团队-HashMap面试题
2021-05-08
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2021-05-08
Windows下Python安装与使用
2021-05-08
Font Awesome图标库使用
2021-05-08
程序员应该知道的97件事
2021-05-08