PostgreSQL 数据库备份与恢复

news2025/5/24 14:54:59

1 逻辑备份(单库)

postgres=#pg_dump --help
 
使用方法:
  pg_dump [选项]... [数据库名字]

一般选项:                
  -f, --file=FILENAME            输出文件或目录名
  -F, --format=c|d|t|p           输出文件格式 (c 自定义压缩格式输出, d 目录, tar,p 备份为文本明文(默认值),大库不推荐)
  -j, --jobs=NUM                 执行多个并行任务进行备份转储工作
  -v, --verbose                  详细模式
  -V, --version                  输出版本信息, 然后退出
  -Z, --compress=0-9   被压缩格式的压缩级别                                          
  --lock-wait-timeout=TIMEOUT    在等待表锁超时后操作失败
  --no-sync                      不用等待变化安全写入磁盘     
  -?, --help                     显示此帮助, 然后退出

-F c 备份为二进制格式,          压缩存储. 并且可被          pg_restore 用于精细还原
-F p 备份为文本, 大库不推荐

控制输出内容选项:
  -a, --data-only                只转储数据,不包括模式
  -b, --blobs                    在转储中包括大对象
  -B, --no-blobs                 排除转储中的大型对象
  -c, --clean                    在重新创建之前,先清除(删除)数据库对象
  -C, --create                   在转储中包括命令,以便创建数据库
  -e, --extension=PATTERN        仅转储指定的扩展名
  -E, --encoding=ENCODING        转储以    ENCODING 形式编码的数据
  -n, --schema=PATTERN           只转储指定的模式
  -N, --exclude-schema=PATTERN 不转储指定的模式
  -O, --no-owner                 在明文格式中, 忽略恢复对象所属者
  -s, --schema-only              只转储模式, 不包括数据
  -S, --superuser=NAME           在明文格式中使用指定的超级用户名
  -t, --table=PATTERN            只转储指定的表
  -T, --exclude-table=PATTERN    不转储指定的表
  -x, --no-privileges            不要转储权限(grant/revoke)
  --binary-upgrade               只能由升级工具使用
  --column-inserts               以带有列名的        INSERT 命令形式转储数据
  --disable-dollar-quoting       取消美元      (符号) 引号, 使用SQL  标准引号
  --disable-triggers             在只恢复数据的过程中禁用触发器
  --enable-row-security          启用行安全性(只转储用户能够访问的内容)
  --exclude-table-data=PATTERN 不转储指定的表中的数据
  --extra-float-digits=NUM       覆盖   extra_float_digits 的默认设置
  --if-exists                    当删除对象时使用IF EXISTS
  --include-foreign-data=PATTERN,包含外部服务器上与模式匹配的,外部表的数据
  --inserts                      以INSERT 命令,而不是COPY 命令的形式转储数据
  --load-via-partition-root      通过根表加载分区
  --no-comments                  不转储注释
  --no-publications              不转储发布
  --no-security-labels           不转储安全标签的分配
  --no-subscriptions             不转储订阅
  --no-table-access-method       do not dump table access methods
  --no-tablespaces               不转储表空间分配信息
  --no-toast-compression         不转储    TOAST 压缩方法
  --no-unlogged-table-data       不转储没有日志的表数据
  --on-conflict-do-nothing       将ON CONFLICT DO NOTHING 添加到INSERT 命令
  --quote-all-identifiers        所有标识符加引号,即使不是关键字
  --rows-per-insert=NROWS        每个插入的行数;意味着--inserts
  --section=SECTION 备份命名的节 (数据前, 数据, 及 数据后)           
  --serializable-deferrable 等到备份 可以无 异常运行
  --snapshot=SNAPSHOT            为转储使用给定的快照
  --strict-names                 要求每个表和(或)schema 包括模式以匹配至少一个实体
  --use-set-session-authorization,使用       SESSION AUTHORIZATION 命令代替,ALTER OWNER 命令来设置所有权

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

#案例

--导出指定库(不含create database语句)
pg_dump -h 连接串 -U 读写用户  库名> dbname.sql
pg_dump -h 192.168.1.51 -U zyb mydb > mydb-1.sql

--导出指定库(包含create database语句)
pg_dump -h 连接串 -U 读写用户 -C  库名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -C mydb > mydb-2.sql

--仅导出指定库结构(不含create database语句)
pg_dump -h 连接串 -U 读写用户 -s  库名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -s mydb > mydb -3.sql

--仅导出指定库结构(含create database语句)
pg_dump -h 192.168.1.51 -U postgres -C -s mydb > mydb-33.sql

--导出指定库,结果以二进制压缩格式输出
pg_dump -h 连接串 -U 读写用户 -F c -b -v  库名 > dbname.backup
pg_dump -h 192.168.1.51 -U zyb -F c -b -v mydb > mydb-4.dmp

--导出指定schema
pg_dump -h 连接串 -U 读写用户 -n schemaname 库名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -n public mydb > mydb-5.sql

--导出指定库public和public2两个schema中的所有数据,结果以二进制压缩格式输出
pg_dump -h 连接串 -U 读写用户 -F c -b -v -n hr -n public 库名 > hr_payroll.backup
pg_dump -h 192.168.1.51 -U zyb -F c -b -v -n public -n public mydb > mydb-6.dmp

--导出指定库public schema以外的所有数据,结果以二进制压缩格式输出
pg_dump -h 连接串 -U 读写用户 -F c -b -v -N public 库名 > all_sch_except_pub.backup
pg_dump -h 192.168.1.51 -U zyb-F c -b -v -N public mydb > mydb-7.dmp

--导出特定的表
pg_dump -h 连接串 -U 读写用户 -t 表名 库名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -t test mydb > mydb-8.sql

--导出某个db中所有以“itpux"开头的表
pg_dump -h 连接串 -U 读写用户 -t *.itpux*  库名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -t *.itpux* mydb > mydb-9.sql

2 多库备份

#导出整个cluster
pg_dumpall -h 192.168.1.51 -U postgres -f bak_alldb1.sql

#仅备份角色和表空间定义
pg_dumpall -h 192.168.1.51 -U postgres --port=5432 -f bak_roles_tbs.sql --globals-only

#仅备份交色定义                        
pg_dumpall -h 192.168.1.51 -U postgres --port=5432 -f bak_roles.sql --roles-only

3 恢复

包含create database语句

psql -h 192.168.1.51 -U postgres  < mydb-2.sql

不含create database语句

postgres#create database mydb with owner zyb;

psql -h 192.168.1.51 -U postgres mydb < mydb-2.sql

4 copy 导入导出

#导出                                                 
COPY { table_name [ ( column_name [, ...]   ) ] | ( query ) }
     TO { 'filename' | PROGRAM 'command' | STDOUT }
     [ [ WITH ] ( option [, ...] ) ]

#导入
COPY table_name [ ( column_name [, ...] ) ]
     FROM { 'filename' | PROGRAM 'command | STDIN }
     [ [ WITH ] ( option [, ...] ) ]    

#案例

#把文本数据导入到表中
mydb=# \copy test from /backup/test _copy.txt ;

#表导出csv文件
mydb=#\copy test to /backup/test _copy.txt.csv with csv;

可以导出指定的列
COPY test (id, name) TO ' /backup/output.csv' WITH csv;

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

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

相关文章

MySQL的相关操作

目录 一. 字符串函数 二. group by分组 2.1 作用 2.2 格式 2.3 举例 三. order by排序 3.1 格式 3.2 举例 四. limit 4.1 作用 4.2 举例 五. having 5.1 作用 5.2 举例 六. 正则表达式 七. 多表查询 7.1 定义 7.2 子查询 7.3 联合查询 纵向合并 7.4 交叉连…

鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍

随着物联网和智能设备的普及&#xff0c;多设备间的无缝协作变得越来越重要。鸿蒙&#xff08;HarmonyOS&#xff09;作为华为推出的新一代操作系统&#xff0c;其分布式技术为实现多设备流转提供了强大的支持。本文将详细介绍鸿蒙多设备流转的技术原理、实现方式和应用场景。 …

XXE(外部实体注入)

目录 学习xxe前提&#xff1a;了解xml格式 1. XML基础 2. XXE基础知识 2.1. 结构 2.2. 定义与原理 2.3. XML实体类型 2.4. 攻击类型 2.5. 防御措施 3. pikachu靶场xxe练习 学习xxe前提&#xff1a;了解xml格式 1. XML基础 文档结构包括XML声明、DTD文档类型定义&…

jenkins凭据管理

用途: 存储构建需要与其他系统认证所使用的账户或者密码信息. Username with password类型存储Harbor或者其他系统的用户名和密码。GitLab API token类型存储Gitlab的用户API token。Secret text类型可以用来存储OpenShift等系统中的token。Certificate类型可以用户存储证书&am…

驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析

&#x1f4da; 训练目标&#xff1a; 从驱动模型出发&#xff0c;掌握 I2C 子系统的核心结构&#xff1b;分析控制器与从设备的注册流程&#xff1b;结合 AT24 EEPROM 驱动源码与设备树实例&#xff0c;理解 i2c_client 与 i2c_driver 的交互&#xff1b;配套高质量练习题巩固理…

【python】局域网内通过python远程重启另一台windows电脑

&#x1f449;技__能&#x1f448;&#xff1a;C/C/C#/Python/Java/PHP/Vue/Node.js/HTML语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 局域网内通过python远程重启另一台windows电脑 目录 局域网内通过python远程…

超越感官的实相:声、光、气味的科学与哲学探微

在人类的感官世界中&#xff0c;声、光、气味是日常生活中最直接的现象&#xff1a;我们聆听音乐、观赏光影、呼吸花香。然而&#xff0c;若深入探究它们的本质&#xff0c;科学与哲学竟以截然不同的视角&#xff0c;揭示了一个超越感官的实相世界。本文将从经典物理学、佛教哲…

什么是VR场景?VR与3D漫游到底有什么区别

在数字化时代&#xff0c;虚拟现实&#xff08;Virtual Reality, 简称VR&#xff09;场景与3D漫游作为两种前沿技术&#xff0c;改变着人们的生活方式和体验模式。通过计算机模拟真实或假想的场景&#xff0c;让用户仿佛身临其境&#xff0c;并能与虚拟环境进行互动。尽管VR场景…

python学习day2:进制+码制+逻辑运算符

进制 Python 中的进制表示与转换 进制的基本概念 二进制、八进制、十进制、十六进制的定义与特点不同进制在计算机科学中的应用场景 Python 中的进制表示 二进制表示&#xff1a;使用 0b 前缀八进制表示&#xff1a;使用 0o 前缀十六进制表示&#xff1a;使用 0x 前缀示例…

【分布式文件系统】FastDFS

1.简介 讲这个之前&#xff0c;相信很多人特别是学java的&#xff0c;肯定在做苍穹外卖的时候肯定接触过一个东西&#xff0c;叫做阿里云OSS&#xff0c;他们的功能都差不多&#xff0c;但是阿里云的这个是要付费的&#xff0c;而FastDFS是免费开源的&#xff0c;是由淘宝资深…

word为章节标题添加自动编号

问题&#xff1a; 如何为word文档中的多级标题添加自动编号&#xff1f; 方法&#xff1a; 1、首先为文档各级标题设置格式样式&#xff0c;一级标题使用样式中的“标题 1”&#xff0c;二级标题使用“标题 2”&#xff0c;三级使用“标题 3”&#xff0c;也就是直接在开始—…

无人机飞行间隔安全智能评估、安全风险评估

无人机空中安全飞行评估需结合改进碰撞模型、蒙特卡洛仿真、安全间隔反推及动态避障策略&#xff0c;通过多机型分类与实时数据融合&#xff0c;实现从理论建模到实际部署的全流程管控&#xff0c;为城市低空密集飞行提供安全保障。 需求 无人机飞行间隔安全智能评估 无人机…

【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答

栏目内容论文标题End-to-End Navigation with Vision-Language Models: Transforming Spatial Reasoning into Question-Answering (端到端导航与视觉语言模型&#xff1a;将空间推理转化为问答)核心问题如何利用大型视觉语言模型&#xff08;VLM&#xff09;实现端到端的机器人…

PCB设计实践(二十五)贴片电阻与插件电阻的全面解析:差异、演进与应用场景

一、基础结构与技术原理差异 物理结构差异 贴片电阻&#xff08;SMD Resistor&#xff09;采用表面贴装技术&#xff08;SMT&#xff09;&#xff0c;其主体为扁平长方体或圆柱形结构&#xff0c;两端金属化电极直接与PCB焊盘接触。典型封装尺寸包括0402&#xff08;1.00.5mm&a…

Canvas设计图片编辑器全讲解(一)Canvas基础(万字图文讲解)

一、前序 近两年AI发展太过迅速&#xff0c;各类AI产品层出不穷&#xff0c;AI绘图/AI工作流/AI视频等平台的蓬勃发展&#xff0c;促使图片/视频等复杂内容的创作更加简单&#xff0c;让更多普通人有了图片和视频创作的机会。另一方面用户内容消费也逐渐向图片和视频倾斜。在“…

利用Qt绘图随机生成带多种干扰信息的数字图片

背景 在学习AutoML或ML的过程中&#xff0c;需要一些图片类型的数据做分类预测训练&#xff0c;于是想到尝试最简单的数字识别&#xff0c;且单个数字的识别&#xff0c;也就是y的取值只有10种可能&#xff0c;即0到9。 以下参考代码分别考虑了数字字体的大小、数字颜色的深浅…

STM32——从点灯到传感器控制

STM32基础外设开发&#xff1a;从点灯到传感器控制 一、前言 本篇文章总结STM32F10x系列基础外设开发实例&#xff0c;涵盖GPIO控制、按键检测、传感器应用等。所有代码基于标准库开发&#xff0c;适合STM32初学者参考。 二、硬件准备 STM32F10x系列开发板LED模块有源蜂鸣器…

java day14

接昨天&#xff0c;响应 响应 就是我们在处理请求的时候&#xff0c;里面的return 其实方法里面写的return的返回平常的什么字符串啊什么等等&#xff1b;这些东西都是直接返回&#xff1b;如果是一个对象的话&#xff0c;我们会按json的格式返回&#xff1b; 这些都依赖于一…

Tailwind css实战,基于Kooboo构建AI对话框页面(一)

在当今数字化时代&#xff0c;AI 助手已成为网站和应用不可或缺的一部分。本文将带你一步步使用 Tailwind CSS 和 Kooboo 构建一个现代化的 AI 对话界面框。 一、选择 Kooboo平台 的核心优势 智能提示&#xff1a;在输入 class 属性时&#xff0c;会自动触发 Tailwind CSS 规则…

重塑数学边界:人工智能如何引领数学研究的新纪元

目录 一、人工智能如何重新定义数学研究的边界 &#xff08;一&#xff09;数学与AI的关系&#xff1a;从基础理论到创新思维的回馈 &#xff08;二&#xff09;AI的创造力&#xff1a;突破传统推理的局限 &#xff08;三&#xff09;AI对数学研究的潜在贡献&#xff1a;创…