当前位置: 首页 > news >正文

PostgreSQL17.x数据库备份命令及语法说明

PostgreSQL17.x数据库备份命令及语法说明

文章目录

  • PostgreSQL17.x数据库备份命令及语法说明
  • 1. 备份命令
    • 1. pg_dump命令参数
    • 2. pg_dumpall命令参数
  • 2. `pg_dump` 备份单库语法
  • 3. `pg_dumpall` 备份所有数据库语法
  • 4. 备份案例
    • 1. pg_dump单库备份
    • 2.pg_dumpall单库备份
  • 4. 备份案例
    • 1. pg_dump单库备份
    • 2.pg_dumpall单库备份

1. 备份命令

在 PostgreSQL 17 中,备份数据库的常用命令是 pg_dumppg_dumpall

1. pg_dump命令参数

D:\Programs\PG17数据库备份>pg_dump --help
pg_dump 把一个数据库转储为纯文本文件或者是其它格式.使用方法:pg_dump [选项]... [数据库名字]一般选项:-f, --file=FILENAME          输出文件或目录名-F, --format=c|d|t|p         输出文件格式 (定制, 目录, tar明文 (默认值))-j, --jobs=NUM               执行多个并行任务进行备份转储工作-v, --verbose                详细模式-V, --version                输出版本信息, 然后退出-Z, --compress=METHOD[:DETAIL]compress as specified--lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败--no-sync                    不用等待变化安全写入磁盘--sync-method=METHOD         set method for syncing files to disk-?, --help                   显示此帮助, 然后退出控制输出内容选项:-a, --data-only              只转储数据,不包括模式-b, --large-objects          include large objects in dump--blobs                      (same as --large-objects, deprecated)-B, --no-large-objects       exclude large objects in dump--no-blobs                   (same as --no-large-objects, deprecated)-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          dump only the specified table(s)-T, --exclude-table=PATTERN  不转储指定的表-x, --no-privileges          不要转储权限 (grant/revoke)--binary-upgrade             只能由升级工具使用--column-inserts             以带有列名的INSERT命令形式转储数据--disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号--disable-triggers           在只恢复数据的过程中禁用触发器--enable-row-security        启用行安全性(只转储用户能够访问的内容)--exclude-extension=PATTERN  do NOT dump the specified extension(s)--exclude-table-and-children=PATTERNdo NOT dump the specified table(s), includingchild and partition tables--exclude-table-data=PATTERN 不转储指定的表中的数据--exclude-table-data-and-children=PATTERNdo NOT dump data for the specified table(s),including child and partition tables--extra-float-digits=NUM     覆盖extra_float_digits的默认设置--filter=FILENAME            include or exclude objects and data from dumpbased on expressions in FILENAME--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包括模式以匹配至少一个实体--table-and-children=PATTERN dump only the specified table(s), includingchild and partition tables--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如果没有提供数据库名字, 那么使用 PGDATABASE 环境变量
的数值.臭虫报告至<pgsql-bugs@lists.postgresql.org>.
PostgreSQL 主页: <https://www.postgresql.org/>D:\Programs\PG17数据库备份>

2. pg_dumpall命令参数

D:\Programs\PG17数据库备份>pg_dumpall --help
pg_dumpall 抽取一个 PostgreSQL 数据库簇进一个 SQL 脚本文件.使用方法:pg_dumpall [选项]...一般选项:-f, --file=FILENAME          输出文件名-v, --verbose                详细模式-V, --version                输出版本信息, 然后退出--lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败-?, --help                   显示此帮助, 然后退出控制输出内容选项:-a, --data-only              只转储数据,不包括模式-c, --clean                  在重新创建数据库前先清除(删除)数据库-E, --encoding=ENCODING      转储以ENCODING形式编码的数据-g, --globals-only           只转储全局对象, 不包括数据库-O, --no-owner               不恢复对象所属者-r, --roles-only             只转储角色,不包括数据库或表空间-s, --schema-only            只转储模式, 不包括数据-S, --superuser=NAME         在转储中, 指定的超级用户名-t, --tablespaces-only       只转储表空间,而不转储数据库或角色-x, --no-privileges          不要转储权限 (grant/revoke)--binary-upgrade             只能由升级工具使用--column-inserts             以带有列名的INSERT命令形式转储数据--disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号--disable-triggers           在只恢复数据的过程中禁用触发器--exclude-database=PATTERN   排除名称与PATTERN匹配的数据库--extra-float-digits=NUM     覆盖extra_float_digits的默认设置--filter=FILENAME            exclude databases based on expressions in FILENAME--if-exists                  当删除对象时使用IF EXISTS--inserts                    以INSERT命令,而不是COPY命令的形式转储数据--load-via-partition-root    通过根表加载分区--no-comments                不转储注释--no-publications            不转储发布--no-role-passwords          不转储角色的密码--no-security-labels         不转储安全标签的分配--no-subscriptions           不转储订阅--no-sync                    不用等待变化安全写入磁盘--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--use-set-session-authorization使用 SESSION AUTHORIZATION 命令代替ALTER OWNER 命令来设置所有权联接选项:-d, --dbname=CONNSTR     连接数据库使用的连接串-h, --host=主机名        数据库服务器的主机名或套接字目录-l, --database=DBNAME    另一个缺省数据库-p, --port=端口号        数据库服务器的端口号-U, --username=名字      以指定的数据库用户联接-w, --no-password        永远不提示输入口令-W, --password           强制口令提示 (自动)--role=ROLENAME          在转储前运行SET ROLE如果没有使用 -f/--file,那么将把SQL脚本写到标准输出.臭虫报告至<pgsql-bugs@lists.postgresql.org>.
PostgreSQL 主页: <https://www.postgresql.org/>D:\Programs\PG17数据库备份>

2. pg_dump 备份单库语法

pg_dump 是一个用于备份单个数据库的工具。它创建一个可以使用 psqlpg_restore 还原的 SQL 脚本文件,或者创建一个自定义格式的归档文件。

基本语法:

pg_dump -U 用户名 -F 格式 -f 输出文件 数据库名称
  • -U 指定连接到PostgreSQL时使用的用户名。
  • -F 指定输出文件的格式,可以是 p (纯文本SQL脚本, 默认), c (自定义归档), d (目录归档), 或 t (tar归档)。
  • -f 指定输出文件的路径和名称。
  • 最后指定要备份的数据库名称。
pg_dump -U dbuser -F p -f /path/to/backupfile.sql mydatabase

这将创建一个名为 backupfile.sql 的纯文本SQL脚本文件,其中包含重建 mydatabase 所需的所有SQL命令。

3. pg_dumpall 备份所有数据库语法

pg_dumpall 用来转储一个PostgreSQL服务器上的所有数据库。它还会转储全局对象(如角色和表空间),这些对象不属于任何单独的数据库。

基本语法:

pg_dumpall -U 用户名 -f 输出文件
  • -U 指定连接到PostgreSQL时使用的用户名。
  • -f 指定输出文件的路径和名称。
pg_dumpall -U myuser -f /path/to/all_databases_backup.sql

这将创建一个名为 all_databases_backup.sql 的纯文本SQL脚本文件,其中包含重建所有数据库以及全局对象所需的所有SQL命令。

4. 备份案例

以用户名dbuser为例

1. pg_dump单库备份

pg_dump -U dbuser -F p -f D:/my-db001.sql my-db

2.pg_dumpall单库备份

pg_dumpall -U dbuser -F p -f D:/my-db-all.sql

件,其中包含重建所有数据库以及全局对象所需的所有SQL命令。

4. 备份案例

以用户名dbuser为例

1. pg_dump单库备份

pg_dump -U dbuser -F p -f D:/my-db001.sql my-db

2.pg_dumpall单库备份

pg_dumpall -U dbuser -F p -f D:/my-db-all.sql
http://www.lryc.cn/news/504758.html

相关文章:

  • Java实现一个带头节点的单链表
  • 【图像配准】方法总结
  • LabVIEW汽车综合参数测量
  • 三相异步电动机没有气压怎么办?
  • 软件工程书籍推荐
  • 验证集和测试集的区别
  • OpenIPC开源FPV之Adaptive-Link天空端代码解析
  • Next.js流量教程:核心 Web Vitals的改善
  • 百度智能云千帆AppBuilder升级,百度AI搜索组件上线,RAG支持无限容量向量存储!
  • 构建树莓派温湿度监测系统:从硬件到软件的完整指南
  • 12.11数据结构-图
  • BERT模型入门(2)BERT的工作原理
  • python3 中的成员运算符
  • 【测试面试篇1】测试开发与开发|selenium实现自动化测试|设计测试用例|常见的测试方法|开发不认可提测试的bug该怎么办
  • 人大金仓数据linux安装注意事项
  • 【Maven】多模块项目的构建
  • 大模型学习笔记------SAM模型详解与思考
  • crictl和ctr与docker的命令的对比
  • SQLite建表语句示例(含所有数据类型、索引、自增主键、唯一索引)
  • 探秘Redis哨兵模式:原理、运行与风险全解析
  • .NET平台使用C#设置Excel单元格数值格式
  • 零基础学安全--wireshark简介
  • [Flutter] : Clipboard
  • ArcGIS MultiPatch数据转换Obj数据
  • 《开源数据:开启信息共享与创新的宝藏之门》
  • 如何评估基于TRIZ理论生成的方案的可行性和有效性?
  • sh-寡肽-78——头发护理多肽原料,改善头发外观
  • metagpt 多智能体系统
  • 下采样在点云处理中的关键作用——以PointNet++为例【初学者无门槛理解版!】
  • pytorch ---- torch.linalg.norm()函数