使用 pg_dump 在 PostgreSQL 中创建数据库的备份文件

David Mbochi Njonge 2023年1月30日
  1. 在 PostgreSQL 中创建并连接到数据库
  2. 使用 pg_dump 在当前目录中创建数据库的备份文件
  3. 使用 pg_dump 在自定义目录中创建数据库的备份文件
  4. 结论
使用 pg_dump 在 PostgreSQL 中创建数据库的备份文件

数据备份是确保在发生数据丢失等事件时预防措施有效的关键过程。我们可以根据大小和环境以不同的形式和方式备份数据。

本文将讨论如何创建 PostgreSQL 数据库的备份并访问文件存储在我们计算机上的不同位置。

在 PostgreSQL 中创建并连接到数据库

处理真实用户数据时,请将备份存储在安全环境中,例如 USB 记忆棒、外部硬盘驱动器、云存储或其他安全位置。

我们将创建一个包含一个实体的数据库,然后创建该数据库的备份。该实体将仅包含一条记录,但你可以添加更多用于测试目的。

然后,我们将使用 pg_dump 命令行工具将单个数据库备份到脚本文件。脚本文件是一个带有 SQL 命令的文本文件,用于将数据库重建到保存时的状态。

要重建数据库,请向 Psql 提供脚本。

使用如下所示的命令登录 PostgreSQL 服务器。

david@david-HP-ProBook-6470b:~$ psql -U postgres
Password for user postgres:

输入用户 postgres 的密码,然后按键盘上的 Enter 按钮。

psql (14.2 (Ubuntu 14.2-1.pgdg18.04+1))
Type "help" for help.

postgres=#

创建一个名为 pg_dump_db 的数据库,其中将包含我们的实体。将以下命令复制并粘贴到你的终端上,然后按键盘上的 Enter 按钮。

postgres=# create database pg_dump_db;
CREATE DATABASE

使用以下命令连接到 pg_dump_db 数据库,以确保我们正在使用正确的数据库。

postgres=# \c pg_dump_db;
You are now connected to database "pg_dump_db" as user "postgres".

使用字段 idfirst_namelast_nameemail 创建一个名为 users 的实体。将以下数据定义语言复制并粘贴到你的终端,然后按 Enter。

pg_dump_db=# create table users(
pg_dump_db=# first_name varchar(30),
pg_dump_db=# last_name varchar(30),
pg_dump_db=# email varchar(50),
pg_dump_db=# id SERIAL UNIQUE NOT NULL,
pg_dump_db=# PRIMARY KEY(id));
CREATE TABLE

users 实体中插入一条记录。将以下数据操作命令复制并粘贴到你的终端,然后按 Enter。

pg_dump_db=# insert into users(first_name, last_name, email)
pg_dump_db-# values('john','doe','john@gmail.com');
INSERT 0 1

使用 pg_dump 在当前目录中创建数据库的备份文件

由于 pg_dump 是一个命令行工具,请确保你从 PostgreSQL 服务器注销并在登录服务器时执行该命令。

postgres=# exit;

使用以下命令创建 pg_dump_db 数据库的备份。输出文件存储在当前目录中。

david@david-HP-ProBook-6470b:~$ pg_dump -U postgres pg_dump_db > backup.sql
Password:

输出文件是在当前目录中创建的,因为没有指定生成文件的路径。

对于 Linux 用户,当前目录是 /home/ 目录,其中存储了所有数据,例如与用户有关的文件夹和文件。

转到 /home/ 文件夹后,你将找到一个名为 backup.sql 的文件,其中包含 pg_dump_db 数据库的备份。

使用 pg_dump 在自定义目录中创建数据库的备份文件

如果我们想在计算机上的特定位置备份,我们可以使用相同的命令并添加我们要创建文件的路径。

使用以下命令创建存储在我们桌面上的 pg_dump_db 数据库的备份。

david@david-HP-ProBook-6470b:~$ pg_dump -U postgres pg_dump_db > /home/david/Desktop/backup.sql
Password:

在上面的示例中,我们提供了桌面的绝对路径以及在该位置创建的文件名。

转到 /Desktop/ 文件夹。你将找到一个名为 backup.sql 的文件,其中包含 pg_dump_db 数据库的备份。

结论

我们在所涵盖的两个示例中使用了 > 符号。但是,你可以使用 -f 标志告诉 pg_dump 你要将结果写入文件。

如果你不提供要创建文件的路径,则该文件将在 /home/ 目录中创建。请注意,这仅适用于 Linux 用户,并且取决于 Linux 发行版。

如果你提供要创建文件的路径,则可以在该位置找到该文件。

David Mbochi Njonge avatar David Mbochi Njonge avatar

David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.

LinkedIn GitHub