如何备份和恢复 PostgreSQL 数据库 ?

yumo6663个月前 (04-01)技术文章25

Backup & Restore Database with PostgreSQL

对于数据库管理员和开发人员来说,在 PostgreSQL 中创建数据库副本是一项至关重要的任务。此过程对于测试、备份、数据分析等都是必不可少的。在本指南中,我们将深入研究创建 PostgreSQL 数据库副本的步骤,以确保数据完整性和系统性能。

必要准备

(1) 备份当前数据库

总是从备份当前的 PostgreSQL 数据库开始。这种预防措施可确保在复制过程中出现任何问题时,您有一个恢复点。

(2) 检查数据库大小

了解数据库的大小有助于估计复制过程所需的时间和资源。使用 PostgreSQL 命令 pg_size_pretty(pg_database_size('yourdatabasename')) 来检查数据库大小。

(3) 检查储存空间

确保目标服务器或位置有足够的存储空间来容纳新的数据库副本

方法 1: 使用 pg_dump 和 pg_restore

Export the Database

使用 pg_dump 导出数据库

pg_dump -U username -h hostname -p port dbname > dbname_backup.sql

Create a New Database

创建一个新的 PostgreSQL 数据库来保存副本

CREATE DATABASE new_db;

Import the Database

使用 pg_restorepsql 将备份文件导入新数据库

pg_restore -U username -h hostname -p port -d newdbname dbname_backup.sql

方法 2: 使用 CREATE DATABASE WITH TEMPLATE

此方法要求源数据库上不存在活动连接,下面的查询将终止到数据库的所有现有连接。

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'source_db'
AND pid <> pg_backend_pid();

创建数据库的副本

CREATE DATABASE new_db
WITH TEMPLATE source_db
OWNER postgres;

后续操作

Verify Data Integrity

在克隆过程之后,验证所有数据都已被准确复制,并且新数据库的功能符合预期。

Update Database Configuration

如有必要,请更新应用程序中的配置设置或连接字符串,以指向新数据库。

我的开源项目

酷瓜云课堂 - 开源在线教育解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 - github 仓库)

相关文章

数据库中了勒索病毒怎么办?(数据库恢复的终极大招DUL)

接上文,如果数据库中了勒索病毒,并且备份也同样被攻陷,那该怎么办?以最为常见的Lockbit3.0为例,LockBit采用先进的加密算法,通常是对称密钥加密和非对称密钥加密的组合。这使得被感染的系统中...

电脑技巧:推荐一款非常专业的磁盘分区数据库恢复工具

一、软件介绍DiskGenius是一款功能强大的磁盘分区及数据恢复软件,它不仅提供了基本的磁盘分区管理功能,还集成了数据恢复、系统备份与恢复等多种实用工具。对于运维人员和电脑维修人员来说还是非常不错的...

数据库是什么?数据库连接、管理与分析工具推荐!

一、数据库是什么?数据库是一种结构化的数据存储系统,用于有效地组织、存储和管理大量的数据。它是一个集中化的数据存储库,通常由一个或多个数据表组成,每个数据表包含多个行和列,用于存储特定类型的数据。数据...