pg备份

简单介绍一下:
pg_rman可以在线备份整个数据库,支持增量备份和备份压缩,支持存储快照。
pg_rman使用的是pg_start_backup(), copy, pg_stop_backup()的备份模式。
pg_rman跑的不是流复制协议,而是文件拷贝,所以pg_rman必须和数据库节点跑在一起。
如果在standby节点跑pg_rman,pg_rman则需要通过网络连接到主节点执行pg_start_backup和pg_stop_backup。

下载安装:

wget https://github.com/ossc-db/pg_rman/releases/download/V1.3.11/pg_rman-1.3.11-pg12.tar.gz
tar -zxvf pg_rman-1.3.11-pg12.tar.gz 
cd soft/pg_rman-1.3.11-pg12
make && make install

使用pg_rman的先决条件:

postgres=# show log_destination ;  
 log_destination   
-----------------  
 csvlog  
(1 row)  
 
postgres=# SHOW log_directory ;  
 log_directory  
---------------  
log  
(1 row)  
  
postgres=# SHOW archive_command ;  
              archive_command  
--------------------------------------------  
 cp %p /pgarchive/%f  
(1 row)  

初始化备份目录:

初始化需要两个参数,分别为备份目标目录,以及数据库的$PGDATA

pg_rman init -B /pgbackup -D /opt/pgdata/pg_root
INFO: ARCLOG_PATH is set to '/pgarchive'
INFO: SRVLOG_PATH is set to '/opt/pgdata/pg_root/log'

查看配置文件:

cat pg_rman.ini
ARCLOG_PATH='/pgarchive'
SRVLOG_PATH='/opt/pgdata/pg_root/log'

cat system_identifier
SYSTEM_IDENTIFIER='6940149485915408008'

可见和控制文件的系统标识号一致

pg_controldata | grep system
Database system identifier: 6940149485915408008

备份:

全量备份

pg_rman backup -B /pgbackup -D /opt/pgdata/pg_root -b full -s -Z -C --keep-data-days=10 --keep-arclog-files=15 --keep-arclog-days=10 --keep-srvlog-files=10 --keep-srvlog-days=15 -h 127.0.0.1 -p 1921 -U postgres -d postgres
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'pg_rman validate' to verify the files are correctly copied.
INFO: start deleting old archived WAL files from ARCLOG_PATH (keep files = 15, keep days = 10)
INFO: the threshold timestamp calculated by keep days is "2021-03-08 00:00:00"
INFO: start deleting old server files from SRVLOG_PATH (keep files = 10, keep days = 15)
INFO: the threshold timestamp calculated by keep days is "2021-03-03 00:00:00"
INFO: start deleting old backup (keep after = 2021-03-08 00:00:00)
INFO: does not include the backup just taken

验证

pg_rman validate -B /pgbackup/

增量备份

pg_rman backup -B /pgbackup -D /opt/pgdata/pg_root -b incremental -s -Z -C --keep-data-days=10 --keep-arclog-files=15 --keep-arclog-days=10 --keep-srvlog-files=10 --keep-srvlog-days=15 -h 127.0.0.1 -p 1921 -U postgres -d postgres
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'pg_rman validate' to verify the files are correctly copied.
INFO: start deleting old archived WAL files from ARCLOG_PATH (keep files = 15, keep days = 10)
INFO: the threshold timestamp calculated by keep days is "2021-03-08 00:00:00"
INFO: start deleting old server files from SRVLOG_PATH (keep files = 10, keep days = 15)
INFO: the threshold timestamp calculated by keep days is "2021-03-03 00:00:00"
INFO: start deleting old backup (keep after = 2021-03-08 00:00:00)
INFO: does not include the backup just taken
INFO: backup "2021-03-18 19:37:45" should be kept
DETAIL: This is taken after "2021-03-08 00:00:00".

再次验证

pg_rman validate -B /pgbackup/

查看备份信息

INFO: validate: "2021-03-18 19:59:19" backup, archive log files and server log files by CRC
INFO: backup "2021-03-18 19:59:19" is valid
postgres@nano-dev-nano-python-test-database-02-> pg_rman show detail -B /pgbackup/
======================================================================================================================
StartTime EndTime Mode Data ArcLog SrvLog Total Compressed CurTLI ParentTLI Status
======================================================================================================================
2021-03-18 19:59:19 2021-03-18 19:59:21 INCR 17kB 33MB 0B 33kB true 1 0 OK
2021-03-18 19:37:45 2021-03-18 19:37:48 FULL 50MB 33MB 71kB 6689kB true 1 0 OK

相关option:

init #初始化备份目录
backup #在线备份
restore #恢复选项
show #显示备份集历史,detail选项会显示每个备份集更多的信息
validate #验证备份文件,如果不验证,备份无法用于恢复和增量备份
delete #删除备份文件
purge #从备份目录删除备份

为了减轻主节点的压力,当然我们更加喜欢在备节点做备份,以下附上参数解释

pg_rman backup \
-b full \ # 全量备份
-B /pgbackup \ # 备份目录
-D /opt/pgdata/pg_root \ # 备库的$PGDATA
-s \ # 备份pg_log
-Z \ # 压缩
--keep-data-generations=3 \ # 保留3个全量备份,删除不需要的全量备份
--keep-data-days=10 \ # 保证能恢复到10天内的任意时间点,删除不需要的
--keep-arclog-files=30 \ # 保留最近30个归档文件
--keep-arclog-days=20 \ # 保留20天内的归档文件
--keep-srvlog-files=10 \ # 保留最近10个日志文件(pg_log)
--keep-srvlog-days=20 \ # 保留20天内的日志文件(pg_log)
--standby-host=127.0.0.1 \ # 如何连接standby
--standby-port=1921 \ # 如何连接standby
-h 10.4.9.166 \ # 如何连接primary
-p 1921 \ # 如何连接primary
-U postgres \ # 如何连接primary, standby(超级用户)
-d postgres # 如何连接primary, standby(database name)

备节点备份:

备节点做一次全备

pg_rman backup -b full -B /pgbackup -D /opt/pgdata/pg_root -s -Z --keep-data-generations=3 --keep-data-days=10 --keep-arclog-files=30 --keep-arclog-days=20 --keep-srvlog-files=10 --keep-srvlog-days=20 --standby-host=127.0.0.1 --standby-port=1921 -h 10.4.9.166 -p 1921 -U postgres -d postgres
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'pg_rman validate' to verify the files are correctly copied.
INFO: start deleting old archived WAL files from ARCLOG_PATH (keep files = 30, keep days = 20)
INFO: the threshold timestamp calculated by keep days is "2021-02-26 00:00:00"
INFO: start deleting old server files from SRVLOG_PATH (keep files = 10, keep days = 20)
INFO: the threshold timestamp calculated by keep days is "2021-02-26 00:00:00"
INFO: start deleting old backup (keep generations = 3 AND keep after = 2021-03-08 00:00:00)
INFO: does not include the backup just taken
WARNING: backup "2021-03-18 20:25:44" is not taken into account
DETAIL: This is not a valid backup.
WARNING: backup "2021-03-18 20:24:48" is not taken into account
DETAIL: This is not a valid backup.
WARNING: backup "2021-03-18 20:23:52" is not taken into account
DETAIL: This is not a valid backup.
WARNING: backup "2021-03-18 20:22:47" is not taken into account
DETAIL: This is not a valid backup.
pg_rman validate -B /pgbackup/
INFO: validate: "2021-03-18 20:27:12" backup, archive log files and server log files by CRC
INFO: backup "2021-03-18 20:27:12" is valid

验证备份

pg_rman validate -B /pgbackup/
INFO: validate: "2021-03-18 20:27:12" backup, archive log files and server log files by CRC
INFO: backup "2021-03-18 20:27:12" is valid

查看备份

pg_rman show detail -B /pgbackup/

StartTime EndTime Mode Data ArcLog SrvLog Total Compressed CurTLI ParentTLI Status

2021-03-18 20:27:12 2021-03-18 20:27:17 FULL 49MB 0B 18kB 5749kB true 1 0 OK

————————————————
版权声明:本文为CSDN博主「dazuiba008」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dazuiba008/article/details/114977280

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容