网站建设软件有哪些,如何处理公关危机,京东网站项目建设规划书,网站优化细节定义
备份#xff08;backup#xff09;#xff1a;通过物理复制或逻辑导出的方式#xff0c;将数据库的文件或结构和数据拷贝到其他位置进行存储#xff1b;
还原#xff08;restore#xff09;#xff1a;是一种不完全的恢复。使用备份文件将数据库恢复到备份时的状…定义
备份backup通过物理复制或逻辑导出的方式将数据库的文件或结构和数据拷贝到其他位置进行存储
还原restore是一种不完全的恢复。使用备份文件将数据库恢复到备份时的状态该时间点之后的数据变更无法恢复
恢复recovery先做还原然后使用处于备份时间点至故障点产生的日志文件WAL将数据库恢复到最新状态
分类
物理备份Physical Backup直接复制数据库相关的文件一般情况物理备份比逻辑备份快占用的空间也更大。PostgreSQL支持在线、离线的物理备份实际环境中应该以物理备份为主。
逻辑备份Logical Backup将数据库的结构和数据导出为sql文件还原时通过文件中的SQL语句和命令重建数据库并恢复数据。逻辑备份通常需要更多的备份时间、还原时间。逻辑备份可以作为物理备份的补充或者用于测试目的的数据导入导出。
方式
在线备份Online Backup、热备份Hot Backuppg处于启动状态时的备份
离线备份Offline Backup、冷备份Cold Backuppg处于关闭状态时的备份
方法
全量备份Full Backup一次备份所有备份时间长恢复时间短 增量备份Incremental Backup备份与上一次改变的文件备份时间短恢复时间长 差异备份Differential Backup针对第一次完全备份后发生变化的所有文件进行备份备份、恢复时间居中 pg通过一个基准备份Base Backup加上不断备份的事务日志文件WAL做到增量备份的效果。
工具 pg_dump逻辑备份工具支持单个数据库可以指定模式、表的导出可以选择导出的格式
pg_dumpall逻辑备份工具用于导出整个数据库集群包括公用的全局对象
pg_basebackup物理备份工具为数据库集群创建一个基准备份。或者设置基于日志传输或流复制的从节点的初始化
psql交互式命令行工具也可以用于导入逻辑备份产生的 SQL 文件
pg_restore逻辑还原工具用于还原 pg_dump 导出的归档格式的备份文件
COPY专有sql语句将表中的数据复制到文件或者将文件中的数据复制到表中
第三方开源pgAdmin、Barman、pg_probackup、pgBackRest 逻辑备份与恢复
#plain格式转储一个可读的脚本
pg_dump -U postgres -d hrdb -f D:\bak\hrdb.sql
#导入
pgsql -U postgres newdb -f D:\bak\hrdb.sql#-Fc 自定义格式不可直接查看
pg_dump -U postgres -d hrdb -f D:\bak\hrdb.dmp -Fc
#恢复
pg_restore -U postgres -d hrdb D:\bak\hrdb.dmp备份整个pg
#连接每个数据库都要输入密码可用密码选项代替
pg_dumpall -U postgres -f D:\bak\cluster.sql
#复原
psql -f D:\bak\cluster.sql postgres导出表数据
-- -a表示只导出数据不包含结构-t指定要导出的表-T表示排除的表
pg_dump -a -t emp* -T employees testdb testdb_table
-- 导出时也可以指定其他的导出格式并且采用相应的方式进行数据导入#连接对应数据库
\c hrdb
#COPY支持不同的写入/读取文件格式text、csv 或者 binary。默认是 text。
COPY employees TO D:\bak\cluster.txt (format csv, header true)
#改为csv格式包含表头#复制导出数据到新表
COPY newemployees FROM D:\bak\cluster.txt (format csv, header true)备份大型数据库
#先转储再压缩
pg_dumpall | gzip cluster.sql.gz
#先解压再导入
gunzip -c cluster.sql.gz | psql new#分割导出文件为clusteraa、clusterab
pg_dumpall | split -b 1G - cluster
#恢复
cat cluster* | psql newdbCOPY products to PROGRAM gzip /bak/products.dat.gz
COPY products FROM PROGRAM gunzip /bak/products.dat.gz#并发备份
pg_dump -j 8 -F d -f out.dir testdb
#还原
pg_restore -j 8 -d newdb testdb_dir