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
-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 是一个实用程序,用于将集群中的所有 PostgreSQL 数据库写出 转储 到一个脚本文件中。该脚本文件包含可用作 psql 输入以恢复数据库的 SQL 命令。
它通过对集群中的每个数据库调用 pg_dump 来实现此目的。pg_dumpall 还会转储所有数据库共有的全局对象,即数据库角色和表空间。pg_dump 不会保存这些对象。这些信息目前包括数据库用户和组,以及适用于整个数据库的访问权限。
pg_dumpall 是备份 PostgreSQL 数据库的一体化解决方案。但请注意它的局限性:它无法转储"大对象",因为 pg_dump 无法把这样的对象转储到纯文本文件中。如果你的数据库里有大对象,那么你应该使用 pg_dump 的非文本输出格式之一转储它们。
pg_dumpall [connection-option...] [option...] [dbname]
-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 > 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