pg_dump 备份数据库

命令格式
pg_dump dbname > bakfile
或者
pg_dump dbname -f bakfile
备份示例
  1. 备份为文本(即 SQL 文件)
# -v 选项显示导出过程
pg_dump -v -h 127.0.0.1 -p 5432 -U postgres testdb > db.sql# 后面的示例中均省略 -h -p -U 等数据库连接选项

SQL 文件无法使用 pg_restore 恢复, 仅支持 psql 命令直接导入

psql -d new_db -f db.sql
或者
psql -d new_db < db.sql
  1. 压缩备份
# 9级压缩
pg_dump -Fc -Z 9 testdb > db.dmp

-F 选项指定导出文件的格式, 默认为文本格式

  • -p 文本格式(plain)
  • -c 自定义格式(custom)
  • -t tar 包格式
  • -d 目录格式(directory)

-Z 选项指定压缩级别, 取值为 0-9, 0 表示不压缩

对于自定义和目录格式不加该选项时自动决定适当的压缩级别, 另外 tar 格式不支持压缩, 文本格式默认不压缩

  1. 并行备份

仅限于目录格式

# 同时备份两张表的数据, 打开 3(2+1) 个数据库的连接
pg_dump -Fd -j 2 testdb -f dmp_dir

dmp_dir 目录中, 每一张表对应一个备份文件(xxxx.dat.gz)

目录格式的压缩级别表示每一张表对应备份文件的压缩等级

  1. 仅备份部分表
# 可以通过多个 -t 选项指定多张表
# -t 选项支持通配符
pg_dump -Fc -t table testdb > table.dmp

注意 pd_dump 仅导出指定的表, 其依赖的表不会导出

pg_restore 恢复数据库

命令格式
pg_restore -d dbname bakfile
恢复示例
  1. 直接导入

创建待导入数据库

# 以 postgres 的身份执行 psql
$ sudo -u postgres psql
psql (12.10 (Ubuntu 12.10-0ubuntu0.20.04.1))
Type "help" for help.postgres=# create database new_db;
CREATE DATABASE# 后面的示例中省略数据库创建的过程

或者直接在 shell 中执行

$ createdb new_db

导入数据库

# -v 选项显示导入过程
pg_restore -v -d new_db db.dmp

在导入的过程中, PostgreSQL 会尝试更新数据库对象的所有者为原始数据库中的角色

  1. 不更新数据库对象的所有者

增加 -O 或 --no-owner 选项

pg_restore -O -d new_db db.dmp
  1. 并行导入

支持自定义和目录格式

pg_restore -j 3 -O -d new_db db.dmppg_restore -j 3 -O -d new_db dmp_dir/
  1. 导入前自动删除已有数据
pg_restore -O -c --if-exists -d new_db db.dmp

-c 或 --clean 表示导入前删除数据库对象

  1. 仅导入数据库的定义结构

创建表, 索引以及约束等内容

pg_restore -d new_db -s db.dmp

-s 或 --schema-only: 仅导入数据库的定义, 不导入数据

  1. 仅导入数据

已有表结构, 仅导入某张表的数据

# 在示例 5 的基础上导入表的数据
pg_restore -d new_db -t table -a table.dmp

-a 或 --data-only: 仅导入数据

PostgreSQL pg_dump 与 pg_restore 命令相关推荐

  1. PostgreSQL学习手册(客户端命令Ⅱ)

    为什么80%的码农都做不了架构师?>>>    七.pg_dump: pg_dump是一个用于备份PostgreSQL数据库的工具.它甚至可以在数据库正在并发使用时进行完整一致的备份 ...

  2. PostgreSQL 与 MySQL 常用命令对照

    有很多 MySQL 的用户在使用 PostgreSQL 时,对于 PostgreSQL 客户端(psql)的常用命令不是很熟悉,有时甚至会感到困惑,在此罗列 MySQL 客户端 mysql 与 Pos ...

  3. postgresql数据库工作常用命令-(数据库性能检查相关命令) -TODO

    文章目录 一.postgresql数据库工作常用命令 1. 数据库性能检查相关命令 2. 表结构信息查询 3. 命令行下更好显示 查询结果 一.postgresql数据库工作常用命令 查看当前都有什么 ...

  4. PostgreSql pg_dump用法

    语法 pg_dump [connection-option...] [option...] [dbname] pg_dump 连接选项参数如下: -h host 或 --host=host:指定运行服 ...

  5. PostgreSQL客户端psql常用命令

    使用psql客户端访问数据库, 列出了psql常用命令和参数. 常用命令 -- 使用指定用户和IP端口登陆 psql -h 10.43.159.11 -p 5432 -U postgres -W -- ...

  6. PostgreSQL 数据库赋权命令

    我平时使用数据库很少会有赋权的操作,但是最近有个场景需要给某个用户设置只能操作哪些数据库和表还有序列.我分享一下我的经验,我用的是 PostgreSQL 数据库. 赋权命令语法 PostgreSQL ...

  7. postgresql查看表结构命令

    select column_name,data_type from information_schema.columns where table_name = '表名';

  8. linux登录pg数据库命令,PostgreSQL数据库pg_dump命令行不输入密码的方法

    对于PostgreSQL数据库的备份按照官方手册的方法之一就是采用"SQL Dump"的方式(另一种方式是直接备份文件系统中的文件,可参考官方手册). 基本用法如下: pg_dum ...

  9. PgSql备份pg_dump与还原手记pg_restore(转)

    备份:pg_dump -h localhost -p 5432 -U tradesns -W -F c -b -v -f "/home/tradeworkwangbin/us2010.bac ...

最新文章

  1. php单词出现频率,PHP编程计算文件或数组中单词出现频率的方法
  2. winrm service
  3. vb 数组属性_VB中菜单编辑器的使用讲解及实际应用
  4. 《深入浅出DPDK》读书笔记(六):报文转发(run to completion、pipeline、精确匹配算法、最长前缀匹配LPM)
  5. (一)为什么要在时间序列数据上使用AI?
  6. win11搜索位置在哪 Windows11搜索位置的设置方法
  7. Emscripten 单词_免费下载 | 北师大版高中英语教材重点单词汇总(可下载mp3版本)...
  8. Dev gridView中设置自适应列宽和日期显示格式、金额的显示格式
  9. 大学生体育运动网页设计模板代码 校园篮球网页作业成品 学校篮球网页制作模板 学生简单体育运动网站设计成品...
  10. matlab 离散数据 拐点,MATLAB 寻找离散点拐点
  11. SHFileOperation删除文件夹
  12. oracle r12成本操作,ORACLE-EBS-R12成本模块讲义.ppt
  13. 管理,教育,励志系列合集600本电子书
  14. 圈的ramsey数研究
  15. 记录你生活的点滴,体会分享的快乐
  16. 印度新德里城建_印度语言本地化社区在新德里举行会议
  17. 我的三年自学深度学习之路
  18. 电子文档翻译工具实现文章的批量翻译
  19. 谁不曾辜负或被辜负?
  20. 通讯录的实现(另附完整源码)

热门文章

  1. excel 用一列数据生成图表/折线图
  2. iOS开发 - 设置应用屏幕旋转方向、禁止横屏
  3. 【图像识别】身份证号码识别matlab源码
  4. 黑苹果闪屏解决方法_苹果iOS13自动清理后台很烦?解决方法如下
  5. java吉祥物_编程语言的吉祥物
  6. spring 定时任务 多任务并行执行,多任务多线程 单任务单线程执行实现细节
  7. 如何设置苹果手表6,才能解决充电慢、掉电快问题
  8. linux 运行rman,Linux系统中如何启动RMAN
  9. 基于javaweb+mysql的茶叶溯源系统(java+SSM+JSP+bootstrap+layUI+mysql)
  10. 谈谈你对跳槽的看法?