postgresql备份和恢复

实际工作中会对数据库进行备份和还原,备份主要有三种格式

.bak 即压缩的二进制

.sql 即明文存储

.tar 即tarball压缩格式

数据库备份分单数据库备份,使用 pg_dump 命令;所有数据库备份,使用 pg_dumpall 命令

pg_dump 常用选项

通用选项:

-f, --file=FILENAME          输出文件名或目录名-F, --format=c|d|t|p         输出文件格式(自定义、目录格式、tar包格式、纯文本)-j, --jobs=NUM               使用多个并行作业进行转储-v, --verbose                详细信息模式

详细模式:

-b, --blobs                  在转储中包括大对象-c, --clean                  在重新创建之前,先清除(删除)数据库对象-C, --create                 在转储中包括命令,以便创建数据库(包括建库语句,无需在导入之前先建数据库)-n, --schema=SCHEMA          只转储指定名称的模式-N, --exclude-schema=SCHEMA  不转储已命名的模式-t, --table=TABLE            只转储指定名称的表--column-inserts             以带有列名的INSERT命令形式转储数据

控制输出内容选项:

-d, --dbname=DBNAME          数据库名-h, --host=HOSTNAME          数据库服务器的主机名或套接字目录-p, --port=PORT              数据库服务器的端口号-U, --username=NAME          以指定的数据库用户联接-w, --no-password            永远不提示输入口令-W, --password               强制口令提示 (自动)--role=ROLENAME              在转储之前执行SET ROLE命令

备份某个database,备份结果以自定义压缩格式输出:

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f mydb.backup(自定义文件名) mydb(库名)

备份某个database,备份结果以SQL文本格式输出,输出结果要包含CREATE DATABASE 语句:

pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

pg_dumpall 常用选项

通用选项:

-f, --file=FILENAME          输出文件名-v, --verbose                详细信息模式

控制输出内容选项:

-a, --data-only              仅转储数据,而不转储schema-g, --globals-only           仅转储全局对象,而不转储数据库-r, --reles-oly              仅转储角色,而不转储数据库和表空间-s, --schema-only            仅转储shema,而不转储数据--inserts                    以INSERT命令(而非COPY命令)的形式转储数据

连接选项:

-d, --dbname=DBNAME          数据库名-h, --host=HOSTNAME          数据库服务器的主机名或套接字目录-l, --database=DBNAME        代替默认数据库-p, --port=PORT              数据库服务器的端口号-U, --username=NAME          以指定的数据库用户联接-w, --no-password            永远不提示输入口令-W, --password               强制口令提示 (自动)--role=ROLENAME              在转储之前执行SET ROLE命令

pg_dumpall备份数据库

pg_dumpall -U postgres -h localhost -p 5432 -v -f all.backup

pg_dumpall仅备份角色和表空间定义

pg_dumpall -h localhost -U postgres --port=5432 -f myglobals.sql --globals-only

pg_dumpall仅需备份角色定义而无需备份表空间

pg_dumpall -h localhost -U postgres --port=5432 -f myroles.sql --roles-only

PostgreSQL支持以下两种数据恢复方式:

使用psql来恢复pg_dump或pg_dumpall工具生产的sql文本格式的数据备份

使用pg_restore工具来恢复由pg_dump工具生产的自定义压缩格式、tar包格式或者目录格式备份

恢复一个SQL备份文件并忽略过程中可能发生的所有错误

psql -U postgres -f myglobals.sql

恢复一个SQL备份文件,如遇错误则立即停止恢复

psql -U postgres --set ON_ERROR_STOP=on -f myglobals.sql

将SQL文本中的数据恢复到某个指定的database

psql -U postgres -d mydb(库名) -f select_objects.sql

使用pg_restore进行恢复

pg_restore 常用参数

通用选项:

-d, --dbname=DBNAME          数据库名-f, --file=FILENAME          输入文件名-F, --format=c|d|t           输入文件格式(可以自动识别)-v, --verbose                详细信息模式

详细模式:

-a, --data-only              仅恢复数据,而不恢复schema-C, --create                 创建目标数据库-j, --jobs=NUM               使用多个并行作业进行恢复-s, --schema-only            仅恢复shema,而不恢复数据--section=SECTION            恢复命名部分(包括三个部分:pre-data,data以及post-data。\data部分包含表记录数据、大对象数据以及序列的值;\post-data部分包含索引、触发器、规则和约束的定义;\pre-data部分包含除此外其他所有的对象定义)

控制输出内容选项:

-h, --host=HOSTNAME          数据库服务器的主机名或套接字目录-p, --port=PORT              数据库服务器的端口号-U, --username=NAME          以指定的数据库用户联接-w, --no-password            永远不提示输入口令-W, --password               强制口令提示 (自动)--role=ROLENAME              在转储之前执行SET ROLE命令

先创建目标数据库

create databases mydb;

执行恢复

pg_restore --dbname=mydb --jobs=4 --verbose mydb.backup

如果备份和恢复使用相同的database,则可以通过添加–create选项省去单独创建库的过程

pg_restore --dbname=postgres --create --jobs=4 --verbose mydb.backup--create选项,必须先连接数据库,才能创建数据库,所有指定--dbname=postgres

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

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

相关文章

Unity TextMeshPro 富文本-文本水平对齐

资料 文档 文本水平对齐 对齐方式&#xff1a;左对齐&#xff0c;右对齐&#xff0c;居中,Justified,Flush 使用&#xff1a;<alignleft>左对齐</align> &#xff0c;可赋值left,right,center,flush,justified 该标签会覆盖默认的对齐方式。标签范围内的文本受影…

Java简化MongoDB编解码器的两种方法

介绍&#xff1a; 在与MongoDB进行数据交互时&#xff0c;有时候会遇到找不到类的编解码器&#xff08;codec&#xff09;的错误。为了解决这个问题&#xff0c;一种常见的方法是创建自定义编解码器来处理特定的类。然而&#xff0c;对于一些开发者来说&#xff0c;这样的方法…

导出为PDF加封面且分页处理dom元素分割

文章目录 正常展示页面导出后效果代码 正常展示页面 导出后效果 代码 组件内 <template><div><div><div class"content" id"content" style"padding: 0px 20px"><div class"item"><divstyle"…

Ubuntu Server版 之 mysql 系列

Ubuntu 分 桌面版 和 服务版 桌面版 &#xff1a;有额外的简易界面 服务版&#xff1a;是纯黑框的。没有任何UI界面的可言 安装mysql 安装位置 一般按照的位置存放在 /usr/bin 中 sudo apt-get install mysql-server查看mysql的状态 service mysql status mysql 安全设置…

使用xtcp映射穿透指定服务

使用xtcp映射穿透指定服务 管理员Ubuntu配置公网服务端frps配置service自启(可选) 配置内网服务端frpc配置service自启(可选) 使用者配置service自启(可选) 通过frp实现内网client访问另外一个内网服务器 管理员 1&#xff09;配置公网服务端frps2&#xff09;配置内网服务端…

FS32K144官方提供串口Bootloader对接Matlab串口烧写程序

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 前言 Bootloader升级工具&#xff1a;可用TTL、232、485&#xff08;硬件收发模式&#xff09;,其中的一种&#x…

CertGetCertificateChain trust error CERT_TRUST_REVOCATION_STATUS_UNKNOWN

执行命令&#xff1a; curl --cacert http_ca.crt -u elastic https://localhost:9200 结果报错了 直接访问https://localhost:9200/ &#xff0c;正常 解决办法&#xff1a; curl --cacert http_ca.crt -u elastic https://localhost:9200 --insecure

2_Apollo4BlueLite中断控制器NVIC

1.概述 Apollo4BlueLite 的中断控制器是采用 ARM Cortex-M4 内核&#xff0c;并集成了 NVIC&#xff08;Nested Vectored Interrupt Controller&#xff0c;嵌套向量中断控制器&#xff09;作为其中断控制器。 NVIC 是 ARM Cortex-M 系列处理器中常用的中断控制器&#xff0c…

「前缀和以及差分数组」

文章目录 1 前缀和数组1.1 题解1.2 Code1.3 结果 2 二维矩阵的前缀和数组2.1 题解2.2 Code2.3 结果 3 差分数组 1 前缀和数组 适用于快速频繁的计算一个索引区间内的元素之和&#xff0c;核心思想就是使用一个前缀和数组&#xff0c;然后使用前缀和数组的两个元素之差&#xf…

论文笔记--FEDERATED LEARNING: STRATEGIES FOR IMPROVING COMMUNICATION EFFICIENCY

论文笔记--FEDERATED LEARNING: STRATEGIES FOR IMPROVING COMMUNICATION EFFICIENCY 1. 文章简介2. 文章概括3 文章重点技术3.1 联邦学习(federated learning, FL)3.2 Structured updates3.3 Sketched Update 4. 文章亮点5. 原文传送门 1. 文章简介 标题&#xff1a;FEDERATE…

React之内置的高阶组件

React之内置的高阶组件 React内置了一些高阶组件&#xff0c;以便对一些组件做特殊处理&#xff0c;从而提高代码性能。例如React.memo、React.forwardRef 注意&#xff1a;高阶组件不是Reacts视图组件 什么是高阶组件 高阶组件本质是高阶函数。高阶组件接收一个组件作为参数&…

QListWidget设置QWidget作为QListWidgetItem

1、实现QListWidget按照N像素进行滑动&#xff1b; 2、实现自定义QWidget作为QListWidgetItem&#xff1b; 代码实现&#xff1a; from PyQt5.QtWidgets import QWidget, QLabel, QVBoxLayout, QHBoxLayout, QTextEdit, QListWidget, QListWidgetItem, QScrollArea from PyQt5…

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks

原文链接 A Gentle Introduction to Graph Neural Networks (distill.pub)https://distill.pub/2021/gnn-intro/ 内容简介&#xff1a;本文是“A Gentle Introduction to Graph Neural Networks”的阅读笔记&#xff0c;因为第一次接触GNN&#xff0c;很多深奥的概念不懂&…

使用TensorFlow和VGG-19模型实现艺术风格迁移:一步一步打造你的数字艺术世界

在当下的AI领域,神经风格迁移是最富有创新性和艺术性的技术之一。这项技术可以将一种图像的风格迁移至另一种图像,创造出让人眼前一亮的视觉效果。这种转变所展现的技术之美,让我们深感人工智能所带来的可能性。本文将带领大家一步步通过TensorFlow和VGG-19模型实现风格迁移…

C++容器——list的模拟实现

目录 一.list的基本结构 二. 接下来就是对list类构造函数的设计了&#xff1a; 三.链表数据的增加&#xff1a; 四.接下来就是迭代器的创建了&#xff1a; 四.简单函数的实现&#xff1a; 五.构造与析构 六.拷贝构造和赋值重载 传统写法: 现代写法&#xff1a; 七.迭…

docker启动mysql时的两个报错

目录 1.Error response from daemon: driver failed programming external connectivity on endpoint mysql 2.Error response from daemon: Conflict. The container name "/mysql" is already in use by container 1.Error response from daemon: driver failed …

【预处理】——获取可变参数宏的参数数量

文章目录 功能说明实现... 的作用__VA_ARGS__ 的作用##__VA_ARGS__ 的作用 解析COUNT_ARGS(2, 4, 5)没有参数 COUNT_ARGS()参数大于 22 个 示例 功能说明 用于获取可变参数宏实际传递了多少个参数。 COUNT_ARGS(1, 2, 3)&#xff0c;填入了 3 个参数&#xff0c;返回值就是 3…

C#中未能找到为main方法指定的XXX.Program怎么解决

有时在修改项目名称后&#xff0c;报错未能找到为main方法指定的XXX.Program 解决办法&#xff1a; 点击进入项目属性&#xff0c;将启动对象设置为空或者你要指定的XXX.Program&#xff08;改名后的&#xff09;

akka 简单使用

由于AKka的核心是Actor&#xff0c;而Actor是按照Actor模型进行实现的&#xff0c;所以在使用Akka之前&#xff0c;有必要弄清楚什么是Actor模型。 Actor模型最早是1973年Carl Hewitt、Peter Bishop和Richard Seiger的论文中出现的&#xff0c;受物理学中的广义相对论(general…

服务器数据恢复-误操作导致存储VDisk丢失的数据恢复案例

服务器数据恢复环境&#xff1a; IBM某型号存储&#xff1b; Solaris操作系统&#xff0c;部署Oracle数据库。 服务器故障&#xff1a; 重建MDisk导致对应的存储池中的VDisk丢失&#xff0c;导致Solaris操作系统中的Oracle数据库无法使用。 服务器数据恢复过程&#xff1a; 1、…