pg_dumpall 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

pg_dumpall 命令安装:


-bash/zsh: pg_dumpall command not not found

# Windows (WSL2)
sudo apt-get update sudo apt-get install postgresql-client-9.3

# Debian
apt-get install postgresql-client-9.1

# Ubuntu
apt-get install postgresql-client-9.3

# Alpine
apk add postgresql

# Arch Linux
pacman -S postgresql-old-upgrade

# Kali Linux
apt-get install postgresql-client-11

# CentOS
yum install postgresql

# Fedora
dnf install postgresql

# OS X
brew install postgresql

# Raspbian
apt-get install postgresql-client-9.5

# Dockerfile
dockerfile.run/pg_dumpall

# Docker
docker run cmd.cat/pg_dumpall pg_dumpall

pg_dumpall 命令补充说明:


pg_dumpall 是一个实用程序,用于将集群中的所有 PostgreSQL 数据库写出 转储 到一个脚本文件中。该脚本文件包含可用作 psql 输入以恢复数据库的 SQL 命令。

它通过对集群中的每个数据库调用 pg_dump 来实现此目的。

pg_dumpall 还会转储所有数据库共有的全局对象,即数据库角色和表空间。pg_dump 不会保存这些对象。这些信息目前包括数据库用户和组,以及适用于整个数据库的访问权限。

pg_dumpall 是备份 PostgreSQL 数据库的一体化解决方案。但请注意它的局限性:它无法转储"大对象",因为 pg_dump 无法把这样的对象转储到纯文本文件中。如果你的数据库里有大对象,那么你应该使用 pg_dump 的非文本输出格式之一转储它们。

pg_dumpall 命令语法:


pg_dumpall [connection-option...] [option...] [dbname]

pg_dumpall 命令选项:


-a
--data-only
   只转储数据,不转储模式(数据定义)。

-c
--clean
   包括那些重建之前清理(删除)数据库对象的SQL命令。

-d
--inserts
   把数据当作 INSERT 命令输出(而不是 COPY)。这样将令恢复过程非常缓慢,  但是会令输出更容易移植到其
  他 SQL 数据库包中。

-D

--column-inserts
--attribute-inserts
   把数据以某种带着明确字段名(INSERT INTO table  (column, ...) VALUES ...)的 INSERT 命令形式转储出
  来。 这样会令恢复非常慢,但是如果需要重排字段顺序就是必须的。

-g
--globals-only
   只转储全局对象(用户和组),而不转储数据库。

-i
--ignore-version
   忽略 pg_dumpall 和数据库服务器之间的版本差别。

  pg_dumpall   可以处理来自以前版本的   PostgreSQL    的数据库,但是太老的数据库就不再支持了(目前到
  7.0)。  如果你需要覆盖版本检查,那么可以使用这个选项(如果  pg_dumpall   失败了,可别说我们没警告
  你。)

-o
--oids
   为每个表转储对象标识符(OID)。  如果你的应用在某种角度引用了  OID  字段,那么使用这个选项   (比
  如,在外键约束里)。否则,不应该使用这个选项。

-s
--schema-only
   只转储模式(数据定义),不转储数据。

-v
--verbose
   声明冗余模式。这样将令 pg_dumpall  向标准错误打印进度信息。

-x
--no-privileges
--no-acl
   避免转储访问权限(授权/撤销命令)。

下面的命令行参数控制数据库连接参数。

-h host
   声明数据库服务器所运行的机器的主机名。  如果数值以斜扛开头,那么就把它用做  Unix 域套接字的目录。
  缺省是从 PGHOST 环境变量里拿来的(如果设置了), 否则使用 Unix 域套接字。

-p port
   声明服务器监听的 TCP 端口号或者 Unix 域套接字文件扩展。 缺省是 PGPORT 环境变量(如果设置了), 或
  者是编译时的缺省。

-U username
   以给定用户身分联接。

-W
   强制口令提示。如果服务器需要口令认证,那么这个动作应该自动发生。

pg_dumpall 命令实例:


pg_dumpall 转储所有数据库:

pg_dumpall > path/to/file.sql

pg_dumpall 使用特定用户名转储所有数据库:

pg_dumpall --username=username > path/to/file.sql

pg_dumpall 自定义主机和端口:

pg_dumpall -h host -p port > output_file.sql

pg_dumpall 将所有数据库转储到具有适度压缩的自定义格式的存档文件中:

pg_dumpall -Fc > output_file.dump

pg_dumpall 仅将数据库数据转储到 SQL 脚本文件中:

pg_dumpall --data-only > path/to/file.sql

pg_dumpall 仅将模式(数据定义)转储到 SQL 脚本文件中:

pg_dumpall -s > output_file.sql

pg_dumpall 命令扩展阅读:


 

CommandNotFound ⚡️ 坑否 - 其他频道扩展阅读:




pg_dumpall 命令评论