使用 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