pg_basebackup和pg_start_backup

  • 使用低级API备份

三部曲:
pg_start_backup
用tar或者cp自己备份数据库文件
pg_stop_backup

  • pg_basebackup工具
    pg_basebackup=pg_start_backup+自动备份(本质还是通过tar或者cp拷贝)+pg_stop_backup
    参考URL:https://www.postgresql.org/docs/9.6/app-pgbasebackup.html

参数个别说明:
-F, --format=p|t output format (plain (default), tar)
指定输出格式:p原样输出,即把主数据库中的各个数据文件,配置文件、目录结构都完全一样的写到备份目录;
t 把输出的备份文件打包到一个tar文件中。

postgres还原测试:如果服务器上有最新的归档日志是可以恢复到最新的时间点
测试手法大概是:
1 A机器是正在使用的机器,B机器是备份机(每天晚上备份一次)
2 A机器如果在晚上备份之前挂了,可以拿着归档日志恢复到B机器

测试数据以及测试步骤:
1 备份(通过pg_basebackup,或者低级API备份都可以)
2 A机器里插入测试数据(随便什么测试数据都可以,只为了还原时候确认)
CREATE TABLE COMPANY (
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL
);
INSERT INTO COMPANY VALUES (1, ‘Paul’, 32);
INSERT INTO COMPANY VALUES (2, ‘John’, 21);
INSERT INTO COMPANY VALUES (3, ‘Anna’, 30);
INSERT INTO COMPANY VALUES (4, ‘Lisa’, 35);
INSERT INTO COMPANY VALUES (5, ‘Tina’, 22);

psql
postgres=# \d //查询所有表
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------±---------±---------±---------
public | color | テーブル | postgres
public | t_kenyon | テーブル | postgres
(2 行)

-bash-4.2$ psql -l //列出存在的数据库,然后退出
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------±---------±-----------------±---------±------------------±----------------------
postgres | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
(3 行)

3 过一段时间之后拷贝归档日志到B机器(至少checkpoint一次之后的时间,或者手动checkpoint)
4 删除B机器的pg_xlog
5 recovery.conf设定

restore_command = 'cp /var/lib/pgsql/data/archives/%f %p'  // 按照实际你的归档目录设定
recovery_target_time = ‘2017-01-01 12:34:56 JST’   // 如果要恢复到某一个时间设置此参数

6 确认
A机器插入的数据,B机器恢复之后也能确认到

参考:https://developer.aliyun.com/article/357505

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值