PostgreSQL 11(七)导入导出与备份还原_pg_restore 导入postgressql

【导入】

psql -p 5432 demo < /opt/postgre_data/backup/dump.sql


pg_dumpall 逻辑导出、导入

【导出】所有数据库及其他信息,包括角色、表空间等

pg_dumpall -p 5433 --inserts --column-inserts --no-comments --quote-all-identifiers > /opt/postgre_data/backup/dumpall.sql

【导入】需要超级用户权限

psql -p 5433 -f /opt/postgre_data/backup/dumpall.sql postgres


pg_restore 导入

其他格式(Fc/Ft)导出,可用 pg_restore 还原

pg_dump -p 5433 --no-comments -Ft -d test > /opt/postgre_data/backup/test.sql

如果数据库不存在,加上选项’-C’来创建,数据库名称要与备份的一致

pg_restore -p 5433 -d test /opt/postgre_data/backup/test.sql
pg_restore -p 5433 -C -d test /opt/postgre_data/backup/test.sql

物理备份还原

预写日志(WAL)存放目录为 pg_wal,日志记录数据库中的所有修改信息,可用于系统崩溃恢复,日常数据恢复等。WAL 将日志分隔成多段,每段16M。WAL 不进行归档的时候,系统会创建几段文件循环重复覆盖写入。如启用归档,需设置配置参数 wal_level  为 replica 或更高,同时设置 archive_mode 为 on 状态。归档成功后,将被删除或者被新的数据覆盖。当归档命令(archive_command)成功时,它才返回零。archive_command 在配置文件reload后可生效。归档可恢复数据,但不会对配置文件(postgresql.conf, pg_hba.conf, pg_ident.conf)恢复,需单独备份配置文件档命令仅在已经完成的 WAL 段上调用,如果日志少致使长时间才归档,可以设置 archive_timeout 指定时间强制切换WAL 段,也可手动执行命令 pg_switch_wal 切换。

启用归档设置(须重启服务)

vim /var/lib/pgsql/11/data/postgresql.conf

wal_level = replica # minimal / replica(9.6 以前为 archive,hot_standby)
archive_mode = on
archive_command = ‘test ! -f /opt/postgre_data/archivedir/%f && cp %p /opt/postgre_data/archivedir/%f’

【备份方法一】

【备份方法一】data01 为一个新的空目录(或未创建的目录)

su - postgres bash -c ‘pg_basebackup -Ft -P -z -v -Z 5 -c fast -X stream -D /opt/postgre_data/backup/data01’

【备份方法二】

【备份方法二】

pg_start_backup(label text [, fast boolean [, exclusive boolean ]])

pg_stop_backup(exclusive boolean [, wait_for_archive boolean ])

su - postgres
psql -c “select pg_start_backup(‘hot_backup’, false, false);”
tar -jcvf /opt/postgre_data/backup/data.tar.bz2 /var/lib/pgsql/11/data
psql -c “select pg_stop_backup(false, true);”

结果显示

NOTICE: pg_stop_backup complete, all required WAL segments have been archived
pg_stop_backup
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
pg_stop_backup

(0/3A000370,"START WAL LOCATION: 0/39000028 (file 000000010000000000000039)+
CHECKPOINT LOCATION: 0/39000060 +
BACKUP METHOD: streamed +
BACKUP FROM: master +
START TIME: 2019-03-20 10:17:18 CST +
LABEL: hot_backup +
START TIMELINE: 1 +
",“18141 /var/lib/pgsql/11/data/ts_user01”) +

【时间点还原】

当前服务器已存在数据库实例(端口为6401),现在需要查看 实例6401某个时间点的数据,此处在当前服务器新增一个实例来回复数据查看。

======================================================================================
备份

#数据库完整目录备份
su postgres
pg_basebackup -p 6401 -Ft -P -z -v -Z 5 -c fast -X stream -D /data/pgbackup/pg6401_20191031

#新增数据
psql -p 6401
CREATE TABLE tab( id SERIAL PRIMARY KEY, inserttime TIMESTAMPTZ NOT NULL DEFAULT now());

INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
DELETE FROM tab WHERE id = 2;
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);SELECT pg_sleep(5);
INSERT INTO tab VALUES(DEFAULT,DEFAULT);
SELECT * FROM tab;

#先归档日志(WAL文件没写完不会自动归档)
SELECT pg_switch_wal();

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

链图片转存中…(img-Y7Zh2rKp-1712980817608)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值