📜  备份 postgres 数据库 (1)

📅  最后修改于: 2023-12-03 14:51:39.127000             🧑  作者: Mango

备份 PostgreSQL 数据库

简介

在日常开发工作中,我们需要针对 PostgreSQL 数据库进行备份以保证数据的安全性和可恢复性。备份的方式有多种,本文将介绍其中几种经典的备份方式。

1. 命令行备份
1.1 导出整个数据库

使用 pg_dumpall 命令可以备份整个 PostgreSQL 数据库,包括所有数据库、表、视图、角色等。

pg_dumpall > backup.sql

其中,> backup.sql 表示将备份数据输出到 backup.sql 文件中,你也可以将其重定向到其他文件。

1.2 导出单个数据库

使用 pg_dump 命令可以备份单个 PostgreSQL 数据库。

pg_dump -U <用户名> -d <数据库名> > backup.sql

其中,<用户名><数据库名> 应替换为你要备份的数据库的用户名和数据库名称。

1.3 通过 cron 自动备份

你可以编写 shell 脚本并将其装载到系统的计划任务系统 cron 中,实现定期自动备份。

#!/bin/sh
DATE=`date +%Y%m%d%H%M%S`
pg_dumpall > /path/to/backup/pg_all_backup_$DATE.sql

该脚本将使用 pg_dumpall 备份整个 PostgreSQL 数据库,并将备份数据输出到 /path/to/backup/ 目录下,文件名为 pg_all_backup_日期时间.sql,其中日期时间格式为 YYYYMMDDHHMMSS

2. 第三方工具备份
2.1 pgAdmin

pgAdmin 是一个 PostgreSQL 数据库管理工具,它可以自动备份整个数据库或选定的数据库。

在 pgAdmin 中选择要备份的数据库,右键单击它并选择“备份...”,在打开的对话框中配置备份选项,然后单击“备份”按钮即可开始备份。

2.2 Barman

Barman 是一个 PostgreSQL 备份和恢复管理工具,它提供了诸如备份、恢复和验证等功能。它可以备份整个集群或仅单个数据库,并可以在备份期间执行 PITR(点内恢复)。

Barman 首先需要配置服务器,并可以通过在服务器上运行备份守护进程(barman-wal-archive)来实时连续归档。

要备份 PostgreSQL 数据库,可以使用以下命令:

barman backup pgservername

其中 pgservername 应替换为你要备份的 PostgreSQL 服务器的名称。

结论

本文介绍了备份 PostgreSQL 数据库的几种经典方式。你可以根据需要选择适合你的方法,并确保你的数据能够得到充分的保护和可恢复性。