当前位置: 首页 > article >正文

PostgreSQL 数据库备份与恢复指南

PostgreSQL 数据库备份与恢复指南

在数据库管理中,备份和恢复是至关重要的操作,它们能确保数据的安全性和可恢复性。下面将为你详细介绍 PostgreSQL 数据库的备份和恢复操作。
环境准备
在进行备份和恢复操作之前,需要确保已经进入 PostgreSQL 的可执行文件目录。在 Linux 系统中,通常可以使用以下命令进入该目录:

cd /opt/pgsql/bin

备份操作

1. 备份单个数据库到 SQL 文件

这种备份方式会将指定数据库的结构和数据以 SQL 语句的形式保存到文件中。

pg_dump -U postgresghp2db > "/opt/pgsql/pgsql-backup20221121.sql"

U:指定连接数据库的用户名,这里是 postgresghp2db。
>:将备份结果重定向到指定的文件,这里是 /opt/pgsql/pgsql-backup20221121.sql。

如果你需要备份远程服务器上的数据库,可以使用 -h 指定服务器的 IP 地址,-p 指定端口号,-W 表示在连接时需要输入密码:
bash

pg_dump.exe -U postgres -h *.*.*.* -p 5432 -W -d taobao >"E:\pgsql-backup20221212.dmp"

-h:指定远程服务器的 IP 地址,这里是 *.*.*.*。
-p:指定数据库服务的端口号,这里是 5432-d:指定要备份的数据库名称,这里是 taobao。

另外,还可以使用 -f 参数来指定备份文件的路径:

pg_dump -h 127.0.0.1 -U postgres -p 5432 -W ghp2db -f /opt/pgsql/pgsql-backup20221121.sql
pg_dump -h *.*.*.* -U p2 -p 5432 -W p2db -f /opt/pgsql/pgsql-backup20221121.sql

2. 备份所有数据库到 DMP 文件

pg_dumpall 命令可以备份 PostgreSQL 实例中的所有数据库,包括全局对象(如角色、表空间等)。

pg_dumpall -U postgres --port=5432 > "/opt/pgsql/pgsql-backup20221121.dmp"

--port:指定数据库服务的端口号,这里是 5432

3. 备份指定数据库到 BAK 文件

pg_dump -h *.*.*.* -p 5432 -U postgres -d atwebgismap > c:\atwebgismap.bak

此命令用于备份远程服务器上的 atwebgismap 数据库到本地的 c:\atwebgismap.bak 文件。

恢复操作

使用 psql 命令可以将备份文件恢复到指定的数据库中。

psql -h localhost -p 5432 -U postgres -d ghp2db2 < "E:\pgsql-backup20221121.sql"
psql -h localhost -U postgres -d test < D:\postgres.bak

-h:指定数据库服务器的地址,这里是 localhost。
-p:指定数据库服务的端口号,这里是 5432-U:指定连接数据库的用户名,这里是 postgres。
-d:指定要恢复到的目标数据库名称,分别是 ghp2db2 和 test。
<:从指定的文件中读取 SQL 语句并执行,以恢复数据库。

注意事项

权限问题:在进行备份和恢复操作时,确保使用的用户具有足够的权限。通常,postgres 用户具有最高权限,但在实际生产环境中,建议创建具有适当权限的专用用户。
文件路径:在指定备份文件和恢复文件的路径时,要注意不同操作系统的路径格式。例如,Windows 使用反斜杠 \,而 Linux 使用正斜杠 /。
数据库状态:在备份和恢复过程中,要确保数据库处于正常运行状态。如果数据库出现故障或异常,可能会导致备份或恢复失败。
通过以上的备份和恢复操作,你可以有效地保护 PostgreSQL 数据库的数据安全,并且在需要时能够快速恢复数据。希望这些内容对你有所帮助!


http://www.kler.cn/a/582645.html

相关文章:

  • Nanobrowser:开源AI自动化神器 OpenAI Operator替代品
  • 桂链:什么是区块链智能合约和链码?
  • 浅谈SSE爬虫
  • Flutter 学习之旅 之 flutter 不使用插件,实现简单自定义弹窗PopupDialog功能
  • 单片机FreeRTOS系统中,CPU计算的延时函数
  • es6 尚硅谷 学习
  • Qt表格美化笔记
  • React 组件测试【React Testing Library】
  • [Unity] 封装一个依赖于MonoBehaviour的计时器(上)
  • 2025年Draw.io最新版本下载安装教程,附详细图文
  • 从0到1入门Docker
  • Node-RED基础1
  • A-LOAM工程笔记(三):雷达里程计(lidar odometry)高频粗估计
  • 挤压车间降温设备
  • CTFshow 【WEB入门】信息搜集 【VIP限免】 web1-web17
  • 目标思维——数据分析源自问题,高于问题
  • ListView_GetIconBufferX函数和ListView_GetIconBufferY函数和RECT结构的关系
  • C语言实现队列数据结构:思路与代码详解
  • ARM Cortex-M 内存映射详解:如何基于寄存器直接读写 寄存器映射方式编码程序 直接操作硬件寄存器来控制 MCU
  • JAVA(6)-运算符