利用pg_rman进行备份与恢复操作

文章目录

  • pg_rman简介
  • 一、安装配置pg_rman
  • 二、创建表与用户
  • 三、备份与恢复


pg_rman简介

pg_rman 是 PostgreSQL 的在线备份和恢复工具。类似oracle 的 rman
pg_rman 项目的目标是提供一种与 pg_dump 一样简单的在线备份和 PITR 方法。此外,它还为每个数据库集群维护一个备份目录。用户可以使用一个命令维护旧备份,包括存档日志。
pg_rman当前最新版本1.3.16支持最新的PostgreSQL 16到11,支持本机(standby/master)在线备份,不支持远程备份,不支持加密存储,支持PITR恢复。


一、安装配置pg_rman

PostgreSQL16安装步骤:http://t.csdnimg.cn/GSA7S

下载源码文件

wget -O pg_rman-1.3.16.tar.gz https://github.com/ossc-db/pg_rman/archive/refs/tags/V1.3.16.tar.gz

解压编译

tar zxvf pg_rman-1.3.16.tar.gz
cd pg_rman-1.3.16
which pg_config
make USE_PGXS=1 PG_CONFIG=/opt/pgsql/postgresql/bin/pg_config
make USE_PGXS=1 PG_CONFIG=/opt/pgsql/postgresql/bin/pg_config install

在这里插入图片描述

查看pg_rman版本

/opt/pgsql/postgresql/bin/pg_rman --version

在这里插入图片描述

创建归档目录并赋权

mkdir -p /opt/pgsql/archive_logs
sudo chown -R postgres:postgres /opt/pgsql/archive_logs
sudo chmod -R 700 /opt/pgsql/archive_logs

创建备份目录并赋权

mkdir -p /home/postgres/pgrman
sudo chown -R postgres:postgres /home/postgres/pgrman
sudo chmod -R 700 /home/postgres/pgrman

文件赋权

sudo chown -R postgres:postgres /opt/pgsql/postgresql/data
sudo chmod -R 700 /opt/pgsql/postgresql/data

检查postgresql.conf文件的日志及归档参数设置

sudo find / -name "postgresql.conf"
vim /opt/pgsql/postgresql/data/postgresql.conf

请添加图片描述
请添加图片描述
请添加图片描述

pg_rman初始化

pg_rman init --pgdata=/opt/pgsql/postgresql/data --backup-path=/home/postgres/pgrman

二、创建表与用户

目标:创建一个test数据库,建个用户t,在t下建个test 表,并随意插入几条记录。

连接到PostgreSQL数据库

sudo -i -u postgres
psql

创建test数据库

CREATE DATABASE test;

创建用户t

CREATE USER t WITH PASSWORD '123456';

赋予用户t对test数据库的所有权限

GRANT ALL PRIVILEGES ON DATABASE test TO t;

连接到test数据库

\c test

创建test表

CREATE TABLE test (id SERIAL PRIMARY KEY,name VARCHAR(50),age INT
);

向test插入数据

INSERT INTO test (name, age) VALUES ('张三', 30);
INSERT INTO test (name, age) VALUES ('李四', 25);
INSERT INTO test (name, age) VALUES ('王五', 35);

在这里插入图片描述

三、备份与恢复

目标:利用pg_rman 做备份和恢复操作:对库做备份后,可以删掉test表,利用备份做恢复

进行基础全备

pg_rman backup --port=5432 \
--backup-mode=full \
--pgdata=/opt/pgsql/postgresql/data \
--backup-path=/home/postgres/pgrman \
--with-serverlogpg_rman validate --backup-path=/home/postgres/pgrman

在这里插入图片描述

添加数据

psql -d test
INSERT INTO test (name, age) VALUES ('七七', 88);

在这里插入图片描述

归档备份

pg_rman backup --port=5432 \
--backup-mode=archive \
--pgdata=/opt/pgsql/postgresql/data \
--backup-path=/home/postgres/pgrman \
--keep-arclog-files=1000 \
--keep-arclog-days=30pg_rman validate --backup-path=/home/postgres/pgrman

在这里插入图片描述

查看备份集

pg_rman show -B /home/postgres/pgrman

在这里插入图片描述

先删除一条数据

psql -d test
DELETE FROM test WHERE id = 4;

停本地数据库服务:

pg_ctl stop -D /opt/pgsql/postgresql/data

恢复

pg_rman restore \
--pgdata=/opt/pgsql/postgresql/data \
--backup-path=/home/postgres/pgrman \
--recovery-target-time="2024-07-05 10:25:36" \
--progress

启动PostgreSQL服务

pg_ctl start -D /opt/pgsql/postgresql/data

归档备份恢复验证

psql -d test
SELECT * FROM test;

在这里插入图片描述
再次添加一条数据

INSERT INTO test (name, age) VALUES ('yiyi', 11);

在这里插入图片描述
进行增量备份

pg_rman backup --port=5432 \
--backup-mode=incremental \
--pgdata=/opt/pgsql/postgresql/data \
--backup-path=/home/postgres/pgrman \
--keep-data-generations=3 \
--keep-data-days=7pg_rman validate --backup-path=/home/postgres/pgrman

查看备份集

pg_rman show -B /home/postgres/pgrman

在这里插入图片描述
添加一个条数据

INSERT INTO test (name, age) VALUES ('yiyi', 11);

在这里插入图片描述
停本地数据库服务:

pg_ctl stop -D /opt/pgsql/postgresql/data

恢复

pg_rman restore \
--pgdata=/opt/pgsql/postgresql/data \
--backup-path=/home/postgres/pgrman \
--recovery-target-time="2024-07-05 12:50:21" \
--progress

启动PostgreSQL服务

pg_ctl start -D /opt/pgsql/postgresql/data

增量备份恢复验证

psql -d test
SELECT * FROM test;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes集群部署:node节点部署和cri-docker运行时安装(四)

安装前准备 同《kubernetes集群部署:环境准备及master节点部署(二)》 安装cri-docker 在 Kubernetes 1.20 版本之前,Docker 是 Kubernetes 默认的容器运行时。然而,Kubernetes 社区决定在 Kubernetes 1.20 及以后的…

cs231n作业1——SVM

参考文章:cs231n assignment1——SVM SVM 训练阶段,我们的目的是为了得到合适的 𝑊 和 𝑏 ,为实现这一目的,我们需要引进损失函数,然后再通过梯度下降来训练模型。 def svm_loss_naive(W, …

vCenter登录失败报500错误:no healthy upstream

过了个周末登录vCenter的时候提示:HTTP状态500 - 内部服务器错误;重启服务后提示:no healthy upstream。如下图: 看到这个情况,肯定就是部分不服务异常了或者压根就没有启动。至于说因为啥异常还不得而知。想着登录管理…

无人机人员搜救

人员搜救-水域救援 水域搜救:快速水面搜查 物资抛投:救生物资抛投 绳索牵引:牵引救援绳索 领航船艇:水面侦察领航 人员搜救 昼夜搜救,精准定位 水域搜救 经纬 M300 RTK 搭载禅思 H20T 能够满足全天候作业需求&a…

开关电源——调制模式和工作模式

一、开关电源的调制模式 开关电源作为一种广泛应用于电子设备中,用于将一定电压和电流转换为另一种电压和电流的技术,以下是开关电源三种常见的调制模式: 脉冲宽度调制(Pulse Width Modulation) 脉冲频率调制&#xff…

Transformer神经网络回归预测的MATLAB实现

Transformer神经网络最初是为自然语言处理(NLP)任务设计的,但它们也可以成功应用于其他序列数据的处理,如时间序列预测和回归任务。 在回归预测中使用Transformer网络通常涉及以下关键步骤和概念: 1. Transformer架…

pycharm无法添加python解释器的解决方法

出现该错误的原因是先前创建过重名的解释器(虚拟环境),在pycharm配置中没有完全删除干净。解决方法如下: 首先在文件->设置界面,找到解释器设置。 然后先按图所示点击全部显示虚拟环境: 接着将无法添…

OpenCV教程02:图像处理系统1.0(翻转+形态学+滤波+缩放+旋转)

-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…

数字化精益生产系统--QMS质量管理系统

QMS质量管理系统(Quality Management System)是现代企业管理的关键组成部分,旨在确保产品和服务的质量达到或超过客户需求和期望。 以下是对QMS质量管理系统的功能设计:

运维系列.Nginx配置文件结构功能总结

运维系列 Nginx配置文件结构功能总结 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_285…

塑造卓越企业家IP:多维度视角下的策略解析

在构建和塑造企业家IP的过程中,我们需要从多个维度进行考量,以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我:企业家需要清晰地认识到自己的…

Linux 系统管理 03——安装及管理程序

一、rpm 包安装 1、RPM Package Manger 由 Red Hat 公司提供,被众多 Linux 发行版本所采用。 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包 依赖关系。 2、RPM 软件包 一般命名格式 3、查询已安装的 RP…

电路基础知识汇总

1.0 串连,并联,混连 串联的定义 电路串联是一种电路元件的连接方式,其中各个元件沿着单一路径互相连接,形成一个连续的链。在串联电路中,每个节点最多只连接两个元件,这意味着电流只有一条路径可以通过整个…

昇思25天学习打卡营第十一天|DCGAN生成漫画头像

练习营进入第11天了,今天学习的内容是DCGAN生成漫画头像,记录一下学习内容: GAN基础原理 这部分原理介绍参考GAN图像生成。 DCGAN原理 DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Adversarial Net…

Java的基础语法

叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.第一份程序1.1.代码编写1.2.代码运行1.2.1.命令行编译1.2.2.IEDA…

FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能

作为今年最受期待的音乐制作 DAW 更新之一,FL Studio 2024发布引入了新功能,同时采用了新的命名方式,从现在起将把发布年份纳入其名称中。DAW 的新增功能包括在 FL Cloud 中添加插件、AI 驱动的音乐创作工具和 FL Studio 的新效果。 FL Cloud…

【项目设计】负载均衡式——Online Judge

负载均衡式——Online Judge😎 前言🙌Online Judge 项目一、项目介绍二、项目技术栈三、项目使用环境四、项目宏观框架五、项目后端服务实现过程1、comm模块设计1.1 Log.hpp实现1.2 Util.hpp实现 2、compiler_server 模块设计2.1compile.hpp文件代码编写…

调制信号识别系列 (一):基准模型

调制信号识别系列 (一):基准模型 说明:本文包含对CNN和CNNLSTM基准模型的复现,模型架构参考下述两篇文章 文章目录 调制信号识别系列 (一):基准模型一、论文1、DL-PR: Generalized automatic modulation classification method b…

ThreadPoolExecutor - 管理线程池的核心类

下面是使用给定的初始参数创建一个新的 ThreadPoolExecutor &#xff08;构造方法&#xff09;。 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,…