PostgreSQL 备份
# WAL日志:
# 我们对数据库的增删改查创建之前先是将sql语句记录在WAL日志中,
# 只有日志记录刷新到磁盘后,才能写入数据库文件。
# 遵从这个过程,不需要在每个事务提交时都刷新数据页到数据文件。
# 理论上我们通过WAL日志可以回到数据的任意时间点
# 文件存储位置:$PGDATA/pg_wal # 归档日志:
# 归档日志就是将WAL日志的完整拷贝
# 触发归档日志的条件:
# 手动强制切换 select pg_switch_wall();
# wal日志写满后
# 参数archive_tomeout
# 开启归档日志
alter system set wal_level = replica; # 设置日志级别
alter system set archive_mode = on; # 开启,off是关闭 修改完要重启数据库
# /hgdbbak/archhive为归档存放路劲
alter system archive_command = 'test ! -f /hgdbbak/archhive/%f && cp %p /hgdbbak/archive/%f' # 物理备份和逻辑备份的区别:
# 物理备份后你可以恢复任意时间点,逻辑备份只能恢复到你备份的那个时候 # 物理备份:
# pg_basebackup
# 这个工具会把整个数据库实例的数据拷贝出来,不能进行单张表备份。该工具使用replication协议链接到数据库实例上,所以主数据库中的pg_hba.conf必须允许replication连接。
# 将本地集群中的数据库备份到指定的路劲下。-U指定用户,-D指定备份到哪个目录
pg_basebackup -U highgo -D /hgdbbak
# 将本地集群中的数据库以压缩格式并行备份
pg_basebackup -U highgo -D /hgdbbak -Ft -z -j 5 -P # cp/rsync/tar
# 以数据库超级用户省份连接数据库,然后发出命令:
select pg_start_backup('lable');
# pg_start_backup开启备份后,你可以使用任何方便的文件系统工具,比如:tar、rsync、cp等,直接吧数据库目录赋值到备份位置,这些操作过程中既不需要关闭数据库,也不需要组赛数据库的任何操作。操作完成后直接执行:
select pg_stop_backup(); # pg_basebackup、cp/rsync/tar备份的恢复
# 1.对压缩文件进行解压缩
# 2.修改解压缩目录下的postgresql.auto.conf文件,追加如下内容:
restore_command = 'cp /hgdbbak/archive/%f %p'
# 3.如果需要恢复到某一个时间点的话就追加以下内容:
recovery_target_time = '2020-10-01 17:50:00'
# 4.启动数据库 # HG_RMAN
# 该备份工具具有备份集管理功能,只需要进行简单的配置,就可以实现对数据库备份的全面管理。
# 1.最小备份单元:基于物理块备份。
# 2.备份结果集管理:历史记录,保留策略,有效性校验等
# 3.备份模式:支持全量、增量及归档日志在线备份
# 4.恢复模式:支持Point-In-Time Recovery(PITR)也就是时间点恢复,支持完全恢复,支持不完全恢复,支持数据块恢复
# 5.独有的技术:块变化跟踪Block Change Tracking(BTC)技术,块介质修复Block Media Recovery(BMR)技术。这两个技术的实现,及时前台在做业务也不会有任何影响。
# 6.高性能,高存储利用率:备份压缩,快速完成增量备份。独有的增量备份机制,可以有效减少备份的存储空间占用。
# 冷备
# 冷备份就是停止数据库,然后将$PGDATA目录压缩成tar进行备份。这是最快最安全的方法
# 备份命令
tar -zcvf -f /dbbak/dbbak20211109.tar.gz $PGDATA
# 恢复备份
tar -zxvf -f /dbbak/dbbak20211109.tar.gz -C /pgdata # 逻辑备份:
# pg_dump和pg_dumpall的区别
# pg_dump支持指定丁所要被的的对象(表、schema、database),备份转储文件的时候并不会影响其他用户的访问。转储的文件可以是脚本(也就是包含SQL命令的村文本文件),也可以是自定的的文件格式,但自定义的文件格式必须用pg_restore奇异使用重建数据库。
# pg_dumpall仅支持导出全部库数据。备份的时候不影响其他用户的访问。并且只能以脚本的方式保存。
# 仅导出数据库对象结构
pg_dump -U odoo -s -f odoodb.sql highgo
# 备份某个数据库,备份结果以自定义压缩格式输出
pg_dump -h localhost -p 5432 -U odoo -F c -b -v -f odoodb.back odoodb
# 备份某个数据库中一个或者多个schema,压缩并导出
pg_dump -h localhost -p 5432 -U odoo -F c -b -v -n schema1 -n schema2 -j 5 -f odoodb_sch1_sch2.backup odoodb
# pg_dumpall 仅导出定义,不到处数据
pg_dumpall -h localhost -U odoo --PORT 5432 -f odoodb.sql -s
# pg_dumpall 导出所有数据库
pg_dumpall -U odoo > /dbbak/odoo_all.dmp # 通过pg_dumpall或者pg_dump命令指定文本格式导出的,在检查文件无误后可以直接使用psql进行导入恢复
psql -d odoodb -U odoo < /dbbak/odoodb_all.dmp
# 其他自定义格式,需要借助pg_restore工具进行恢复
pg_restore -d odoodb -U odoo /dbbak/odoodb_all.dmp # copy && \copy
# 该命令的主要作用是在数据库表和文件之间复制数据
# copy 与 \copy的区别
# 使用copy是从服务端寻找文件,使用\copy是从客户端寻找文件
# copy一般使用超级用户执行;copy .. to file, copy file to ..中的文件都是数据库服务器所在的服务器上的文件。具有pg_read_server_files权限的用户也可执行
# \copy一般用户即可执行;\copy保存或者读取的文件是在客户端所在的服务器中。
# 比如使用192.168.100.53 连上 192.168.100.52的数据库
# 当使用copy tb1 to '/home/pc1/test.sql',该test.sql文件是存放在52上;当使用copy tb1 to '/home/pc1/test.sql',该文件是存放在53上。
# 将表test_tab打印至屏幕,并使用'|'作为分隔符(STDOUT 无需pg_read_server_files权限)
COPY test_tab TO STDOUT (DELIMITER '|');
# 将表test_tab拷贝至文件中
COPY test_tab TO '/backup/test_tab_data';
# 按查询条件导出到文件
COPY (select * from test_db where name like 'A%') TO '/backup/test_tab_data' (DELIMITER '|');
# 将表数据拷贝至压缩文件中
COPY test_tab TO PROGRAM 'gzip > /backup/test_tab_data.gz'
COPY test_tab TO PROGRAM 'zip > /backup/test_tab_data.gz'
# 把数据从文件中复制到表中
COPY test_tab FROM '/backup/test_tab_data';
COPY test_tab(name) FROM '/backup/test_tab_data';
# \copy 将表数据拷贝至文件中
\copy sometable to sonmefile.text
# \copy 将文件中的数据插入表中
\copy sometable from somefile.txt
PostgreSQL 备份的更多相关文章
- PostgreSQL备份工具-pg_backrest(转)
转自:http://blog.chinaunix.net/uid-7270462-id-5777877.html 官网:https://pgbackrest.org 一.配置集中备份服务器 1.1 备 ...
- PostgreSQL备份
备份与恢复 postgresql自带了两个备份工具: pg_dump:可备份一个指定的database pg_dumpall:可一次性备份所有database数据以及系统全局数据 使用pg_dump ...
- PostgreSQL 备份和恢复
备份和恢复有三种不同的基本方法来备份PostgreSQL数据SQL转储文件系统级备份File system level backup连续归档 1. SQL转储 pg_dump dbname > ...
- postgresql备份和恢复
备份: pg_dump -d m3vg -h localhost -p 5432 -U delta -W -f 1024.dump -F tar 恢复: pg_restore -h localhost ...
- postgreSQL 备份+还原多张表
-U表示用户 -h表示主机 -p表示端口号 -t表示表名 -f表示备份后的sql文件的名字 -d表示要恢复数据库名 一.打开cmd 进入postgresql安装路径下的bin文件夹,以我的为例: cd ...
- postgresql 备份数据库结构
--只备份结构pg_dump -U postgres -d grgzpt -f D:\dump.sql -s --备份结构和数据pg_dump -U postgres -d grgzpt -f D:\ ...
- postgreSQL备份数据
1.pg_dump 备份单一数据库 pg_dump仅导出数据库结构: pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1 2.全部备份采用pg_dumpall ...
- PostgreSQL备份和恢复数据表
备份数据表: pg_dump -U user_name db_name -t table_name -f /tmp/backup_file.suffix 恢复数据表: 方法1: 登录数据库:\i /t ...
- postgresql备份数据库
备份数据库:pg_dump -U username -h localhost -f /me.sql 数据库名; 恢复数据库:psql -U username -h localhost -f /me.s ...
随机推荐
- 806. Number of Lines To Write String - LeetCode
Question 806. Number of Lines To Write String Solution 思路:注意一点,如果a长度为4,当前行已经用了98个单元,要另起一行. Java实现: p ...
- 以圆类 Circle 为基础设计球类 Sphere
学习内容:实验二以圆类 Circle 为基础设计球类 Sphere 代码示例: import java.util.Scanner; class Point{ private double x; pri ...
- KMP算法(改进的模式匹配算法)——next函数
KMP算法简介 KMP算法是在基础的模式匹配算法的基础上进行改进得到的算法,改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回退主串的字符位置指针,而是利用已经得到的部分匹配结果将模式串向 ...
- 2006NOIP普及组:明明的随机数
明明的随机数 时间限制:1000ms 内存限制:65536KB 题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数 ...
- Kafka到底有多高可靠?(RNG NB)
在聊Kafka高可靠之前,先在评论区来波RNG NB好不好! 什么叫可靠性? 大家都知道,系统架构有三高:「高性能.高并发和高可用」,三者的重要性不言而喻. 对于任意系统,想要同时满足三高都是一件非常 ...
- React简单教程-3.1-样式之使用 tailwindcss
前言 本文是作为一个额外内容,主要介绍 tailwindcss 的用法 tailwindcss 是一个功能类优先的 CSS 框架,我在以前的文章里有描述为什么使用功能类优先:为什么我在 css 里使用 ...
- Win10 pycharm中显示PyTorch tensorboard图
import numpy import numpy as np import torch import matplotlib.pyplot as plt import torch.nn as nn i ...
- DevStream 成为 CNCF Sandbox 项目啦!- 锣鼓喧天、鞭炮齐鸣、红旗招展、忘词了。
开局两张图,内容全靠"编" 来,有图有真相! DevStream ️ CNCF DevStream joins CNCF Sandbox CNCF Cloud Native Int ...
- 运行时应用自我保护(RASP):应用安全的自我修养
应用程序已经成为网络黑客想要渗透到企业内部的绝佳目标. 因为他们知道如果能发现并利用应用程序的漏洞,他们就有超过三分之一的机会成功入侵. 更重要的是,发现应用程序漏洞的可能性也很大. Contrast ...
- SAP BOM 笔记(本文仅作笔记使用,非原创)
SAP各种BOM汇总--含义解释(简洁易懂)-转载(原文连接:http://blog.sina.com.cn/s/blog_b9137f430102xpam.html)感谢作者分享 订单BOM ...