postgresql备份恢复

一、逻辑备份与恢复

pg_dump -d test >/tmp/test.sql -p 5433   --备份test这个数据库

psql  -p 5433 </tmp/test.sql   --恢复

pg_dump > /tmp/full.sql -p 5433  --备份整库

psql </tmp/full.sql  -p 5433  --恢复

二、物理备份与恢复

1.开启归档  (postgresql.conf文件配置)

wal_level = replica

archive_mode = on  

archive_command = 'test ! -f /var/postgre/archive/%f && cp %p /var/postgre/archive/%f'

(/var/postgre/archive目录是存放归档日志的路径,需要提前建好)

2.备份

pg_basebackup -D /var/postgre/backup/ -Ft -Pv -U postgres -p 5432 -R 或

pg_basebackup -D /var/postgre/backup/ -Ft -Pv   (简单的备份语句)

-D, --pgdata=DIRECTORY receive base backup into directory
-F, --format=p|t       output format (plain (default), tar)
-P, --progress         show progress information
-v, --verbose          output verbose messages
-U, --username=NAME    connect as specified database user
-h, --host=HOSTNAME    database server host or socket directory
-p, --port=PORT        database server port number
 -R, --write-recovery-conf
                         write configuration for replication

3.关闭数据库,删除/var/postgre/data($PGDATA)下文件

4.恢复

(1)postgresql.conf文件配置

restore_command = 'cp /var/postgre/archive/%f %p'
recovery_target = 'immediate'

(2)在/var/postgre/data($PGDATA)文件下新建recovery.signal文件

(3)备份文件解压

tar -xvf  base.tar  -C  /var/postgre/data

tar -xvf pg_wal.tar -c /var/postgre/archive

(4)启动数据库

pg_ctl start -D $PGDATA

此时的数据库是只读的数据库

可以用pg_controldata命令查看数据库簇状态

可以用pg_ctl promote切换数据库状态为读写状态 或者执行select pg_wal_replay_resume();

补充:创建恢复点

test=# select pg_create_restore_point('fll20221214');
2022-12-14 17:06:12.915 CST [32208] LOG:  restore point "fll20221214" created at 0/8019070
2022-12-14 17:06:12.915 CST [32208] STATEMENT:  select pg_create_restore_point('fll20221214');
 pg_create_restore_point
-------------------------
 0/8019070
(1 row)

test=#

对应的参数是配置文件中的recovery_target_name = ''

三、物理备份举例

1.备份
[postgres@v-vlxsz-devdb01 backup]$ pg_basebackup -D /var/postgre/backup/ -Ft -Pv
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/7000028 on timeline 2
pg_basebackup: starting background WAL receiver
pg_basebackup: created temporary replication slot "pg_basebackup_30716"
26242/26242 kB (100%), 1/1 tablespace
pg_basebackup: write-ahead log end point: 0/7000100
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: syncing data to disk ...
pg_basebackup: renaming backup_manifest.tmp to backup_manifest
pg_basebackup: base backup completed
[postgres@v-vlxsz-devdb01 backup]$ ls -al
total 42768
drwxrwxr-x 2 postgres postgres       63 Dec 14 16:25 .
drwxrwxr-x 8 postgres postgres      113 Dec 14 16:24 ..
-rw------- 1 postgres postgres   137781 Dec 14 16:25 backup_manifest
-rw------- 1 postgres postgres 26872832 Dec 14 16:25 base.tar
-rw------- 1 postgres postgres 16780288 Dec 14 16:25 pg_wal.tar
[postgres@v-vlxsz-devdb01 backup]$

[postgres@v-vlxsz-devdb01 postgre]$ cd archive
[postgres@v-vlxsz-devdb01 archive]$ ls -al
total 65540
drwxrwxr-x 2 postgres postgres      182 Dec 14 16:25 .
drwxrwxr-x 8 postgres postgres      113 Dec 14 16:24 ..
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000004
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000005
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000006
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000007
-rw------- 1 postgres postgres      338 Dec 14 16:25 000000020000000000000007.00000028.backup
[postgres@v-vlxsz-devdb01 archive]$

2.创建test的数据库,在test数据库中创建t1表,删除test数据库

[postgres@v-vlxsz-devdb01 archive]$ psql
psql (14.1)
Type "help" for help.

postgres=# create database test;
CREATE DATABASE
postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# create table t1 (a int);
CREATE TABLE
test=# insert into t1 values(1);
INSERT 0 1
test=# select * from t1;
 a
---
 1
(1 row)

[postgres@v-vlxsz-devdb01 archive]$ psql
psql (14.1)
Type "help" for help.

postgres=# drop database test;
DROP DATABASE
postgres=#

3.切换日志

[postgres@v-vlxsz-devdb01 archive]$ psql
psql (14.1)
Type "help" for help.

postgres=# select pg_switch_wal();
 pg_switch_wal
---------------
 0/8019618
(1 row)

postgres=# exit
[postgres@v-vlxsz-devdb01 archive]$ ls -al
total 81924
drwxrwxr-x 2 postgres postgres      214 Dec 14 16:34 .
drwxrwxr-x 8 postgres postgres      113 Dec 14 16:24 ..
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000004
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000005
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000006
-rw------- 1 postgres postgres 16777216 Dec 14 16:25 000000020000000000000007
-rw------- 1 postgres postgres      338 Dec 14 16:25 000000020000000000000007.00000028.backup
-rw------- 1 postgres postgres 16777216 Dec 14 16:34 000000020000000000000008
[postgres@v-vlxsz-devdb01 archive]$

4.需求:恢复到test数据库删除前。

wal日志备份的时候是000000020000000000000007这个日志,故创建和删除test数据库的动作应该记录在000000020000000000000008日志中。用pg_waldump 000000020000000000000008分析wal日志。

drop dir的动作是在736这个事务中,故应该恢复在735这个事务中。

5.具体恢复过程

$ pg_ctl stop关闭数据库

$ tar -xvf base.tar  -C /var/postgre/data/

$ tar -xvf pg_wal.tar -C /var/postgre/archive

$ vi postgresql.conf

restore_command = 'cp /var/postgre/archive/%f %p' 

recovery_target_xid = '735'

$ touch recovery.signal

 select  pg_wal_replay_resume();  --将数据库设置为只读

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33753.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这可能是全网唯一的免费数据恢复软件,支持电脑和手机恢复,支持通话记录,信息,图片,视频等数据恢复!

自己不小心把电脑和手机中的文件给删除了&#xff0c;有个不少小伙伴遇到过吧&#xff0c;那么有没有方法找回这些删除的资料 有&#xff0c;你只需要今天小七提供的这款数据恢复软件&#xff0c;即可轻松的恢复手机和电脑中删除的文件 小七给大家提供了两个软件安装包&#…

4个免费数据恢复软件:免费恢复您的数据

意外的文件删除或文件损坏可能会令人头疼&#xff0c;尤其是在您不使用云存储的情况下。两者通常都支持已删除的文件恢复和版本控制&#xff0c;以帮助您摆脱此类困境。如果您不使用云&#xff0c;通常唯一的机会就是使用数据恢复软件来找回丢失或损坏的数据。 这种方法有两个…

ChatGPT解答:JavaScript保存当前网页页面图片为pdf文件或者word文件,前端用vue2,给出详细的方案和代码

ChatGPT解答&#xff1a;JavaScript保存当前网页页面图片为pdf文件或者word文件&#xff0c;前端用vue2&#xff0c;给出详细的方案和代码 ChatGPTDemo Based on OpenAI API (gpt-3.5-turbo). JavaScript保存当前网页页面图片为pdf文件或者word文件&#xff0c;前端用vue2&am…

展望AI时代,把握文档图像智能分析与处理的未来(文末送书)

【CCIG技术论坛回顾】展望AI时代&#xff0c;把握文档图像智能分析与处理的未来 前言 CCIG技术论坛 内容回顾及探讨一、人工智能大模型时代的文档识别与理解1.1 文档分析与识别 介绍1.2 文档识别历史回顾1.3 文档的种类与研究问题1.4 文档识别与理解研究现状1.5 大模型带来的挑…

90%国人推荐用的浏览器,不仅纯净,还容易上手

大家身边有没有亲戚朋友在用一些国产浏览器&#xff0c;就是时不时弹出一个广告&#xff0c;或是不知不觉给你下载了很多无用软件的浏览器。如果大家还在用这样浏览器&#xff0c;赶紧卸载了吧&#xff0c;不光占内存&#xff0c;还捆绑广告。今天给大家推荐2个很多网友觉得非常…

大模型时代来临,智能文档处理该走向何方?

自去年ChatGPT发布以来&#xff0c;大语言模型&#xff08;Large Language Model, LLM&#xff09;的发展仿佛瞬间驶入了快车道&#xff0c;每天都能听到对相关话题的讨论。 cite: 清华大学人工智能国际治理研究院微博 按照现行的标准&#xff0c;能被称为大语言模型至少要满足…

探索AI领域,AI图像安全技术助力行业健康发展

目录 一、AI时代降临二、AIOCR与传统OCR技术三、通过人工智能模型生成AI图片技术探索四、提前布局&#xff0c;合合信息AI图像安全技术助力行业健康发展1、识别医疗门诊发票和报告2、图像篡改检测升级&#xff0c;截图篡改检测3、AIGC判别&#xff0c;人脸伪造检测4、OCR对抗攻…

chatgpt赋能python:Python图片分割:了解基于Python的图像分割技术

Python图片分割&#xff1a;了解基于Python的图像分割技术 在计算机视觉中&#xff0c;图像分割是一项非常重要的技术&#xff0c;它的主要目的是将一幅图像分成多个区域&#xff0c;每个区域具有独特的特征和属性。这项技术广泛应用于许多领域&#xff0c;如医学图像处理、自…

合合信息亮相CCIG2023:多位大咖共话智能文档未来,文档图像内容安全还面临哪些技术难题?

近日&#xff0c;中国图象图形大会&#xff08;CCIG 2023&#xff09;&#xff08;简称“大会”&#xff09;在苏州圆满落幕。本届大会以“图象图形向未来”为主题&#xff0c;由中国科学技术协会指导&#xff0c;中国图象图形学学会主办&#xff0c;苏州科技大学承办&#xff…

证件照转数字人只需几秒钟,微软实现首个3D扩散模型高质量生成效果,换装改形象一句话搞定 | CVPR 2023...

转载自 微软亚洲研究院量子位 | 公众号 QbitAI 一张2D证件照&#xff0c;几秒钟就能设计出3D游戏化身&#xff01; 这是扩散模型在3D领域的最新成果。例如&#xff0c;只需一张法国雕塑家罗丹的旧照&#xff0c;就能分分钟把他“变”进游戏中&#xff1a; △RODIN模型基于罗丹旧…

证件照更换底色(remove.bg包)【Python】

最近正好在办理入职需要用到蓝底的证件照&#xff0c;我目前只有一个白底的&#xff0c;在网上百度很多工具都需要付费&#xff0c;一气之下叫ChatGPT帮我写了一个哈哈哈。 最开始写的不太符合要求&#xff0c;人物旁边都是白色区域&#xff08;这一段的代码就不上了&#xff…

chatgpt赋能python:Python改变图片背景色:让你的照片更生动

Python改变图片背景色&#xff1a;让你的照片更生动 随着数字摄影技术的进步&#xff0c;人们拍摄照片的数量和质量都得到了大幅提升。但是&#xff0c;有些时候照片的背景色不够理想&#xff0c;可能会影响整体效果。而Python这个流行的编程语言&#xff0c;可以通过图像处理…

安卓新闻客户端

安卓新闻客户端 特别说明&#xff1a;本安卓使用版本较高&#xff0c;因为是课设仓促完成的&#xff0c;现在还有些许BUG&#xff0c;目前还在维护和更新ing~ 完整代码GitHub自行下载导入 GitHub仓库&#xff1a;点击此处 实训报告&#xff1a;点击此处 主界面图 一、需求分析 …

android新闻客户端的实现

制作一个基于聚合新闻数据简单的新闻APP 制作简易新闻App 导航篇[1、使用FragmentViewPager TabLayout自制简易新闻 app主要框架&#xff08;一&#xff09;](https://blog.csdn.net/Tobey_r1/article/details/93221486)[2、解析聚合新闻数据&#xff0c;并显示到主界面上&…

高等数学学习笔记——第四十讲——微积分基本公式

1. 问题引入 2. 微积分基本定理&#xff08;微积分基本公式、牛顿——莱布尼兹公式&#xff09; 3. 定积分计算示例&#xff08;利用微积分基本公式&#xff09; 4. 分段函数的定积分&#xff08;需分段计算&#xff09;&#xff08;引申&#xff1a;具体问题&#xff0c;具体分…

如何利用MATLAB求解积分与微分?

文章目录 前言1 数值微分2 数值积分小结 前言 今天我们要说的就是数值微积分&#xff0c;赶紧看看他和高等数学中的微积分有什么区别吧。本文是科学计算与MATLAB语言专题六第一小节的学习笔记&#xff0c;如果大家有时间的话&#xff0c;可以去听听课&#xff0c;没有的话&…

数学建模学习(22):求解微积分之积分问题详解,超详细!

文章目录 前言不定积分定积分与无穷积分多重积分总结前言 积分是一个很重要的概念,通常分为定积分和不定积分。 我们在这里介绍的就是int函数,调用方式如下: F=int(fun,x) fun是被积函数,x是自变量,当然如果只有一个自变量可以省略。 不定积分 求解如下式子的不定积分:…

[MIT]微积分重点 第五课 积分总览 学习笔记

0.先上本节课目录&#xff1a; 1.函数二是函数一的导数 函数一&#xff1a; H e i g h t y ( x ) Height y(x) Heighty(x) 函数二&#xff1a; S l o p e s ( x ) Slope s(x) Slopes(x) 函数一 -> 函数二&#xff1a; S l o p e s ( x ) d ⁡ y d ⁡ x l i m i t o f …

这可能是关于微积分讲的最好的文章了

最近自己学习深度学习相关的东西&#xff0c;发现需要大量关于微积分的知识作为支撑&#xff0c;于是我在网上找到了这篇关于微积分的好文章&#xff0c;这也是我目前见过的最好的讲解微积分的文章了&#xff01;要是大学课本这么写&#xff0c;高数怎么可能让那么多同学挂科&a…

用Python学《微积分B》(定积分)

本文主要学习《微积分B》第7章——“定积分的概念和存在条件”&#xff0c;结合课程中的知识进行一些扩展&#xff0c;并用Python辅助求解课后练习题。关于定积分&#xff08;Definite Integral&#xff09;的概念&#xff0c;课本中只介绍了“黎曼积分”&#xff08;Riemann I…