📜  PostgreSQL - 恢复数据库

📅  最后修改于: 2022-05-13 01:57:15.763000             🧑  作者: Mango

PostgreSQL - 恢复数据库

恢复数据库,是复制备份数据并将其恢复到原始或新位置的操作。我们对数据库执行恢复操作,以便将数据恢复到丢失、被盗或损坏之前的原始状态。有多种原因需要恢复数据库,例如 – 由于人为错误有时数据被损坏;对数据库的一些恶意攻击可能会感染它;由于停电;自然灾害,如洪水、风暴等。因此,在这些情况下,数据恢复会制作可用的数据副本,并确保恢复的备份数据内联并与损坏发生前的数据状态一致。

方法:

在 PostgreSQL 中,我们也可以备份和恢复数据。要恢复数据库,我们有两种主要方法:

  1. 通过 PgAdmin4 GUI 恢复
  2. 通过命令行恢复

在这里,我们将详细了解这两种方法。

1. 使用 PgAdmin GUI

在第一种方法中,我们将从 pgAdmin4 恢复我们的数据库。这是一个非常简单直接的过程。为此,我们将按照下面列出的步骤进行操作——



1. 启动 pgAdmin 数据库服务器并通过有效凭据登录 pgAdmin4 控制面板。

2. 展开Servers部分并导航至Databases 。现在,您将在这里找到服务器当前托管的所有数据库(如果有)。

3. 现在我们需要创建一个新的数据库,作为我们要恢复的数据库的占位符。为此,右键单击“数据库”部分,选择“创建”->“数据库”。

4. 在常规选项卡中指定要恢复的数据库的名称。所有者必须与当前的 postgres 管理员用户名相同。您还可以添加可选注释。

5. 现在转到定义选项卡,选择适当的字符编码、表空间等。在安全、参数选项卡等旁边选项卡上以类似方式填写任何所需的所有详细信息。

6. 填写所有必要的详细信息后,选择保存选项。现在将成功创建数据库,并将在数据库部分中与现有数据库一起列出。

7. 右键单击您新创建的数据库,然后从列表中选择还原选项。



8. 点击Restore选项后,屏幕上会出现一个新的Restore 对话框菜单,如下图。

9. 现在指定文件的格式。右键单击水平烤肉串菜单以浏览文件位置,选择角色名称为postgres (root owner)。点击恢复按钮。

10. 现在在 pgAdmin4 服务器上创建了一个新的还原作业,它通常出现在窗口的右下角。

11. 恢复操作成功后,在与上述相同位置显示成功提示并显示成功信息。在恢复选项失败的情况下,当我们单击更多详细信息( i)按钮时,还会给出失败消息。

12.成功!!我们的 PostgreSQL 数据库现已完全恢复。它现在处于完全启动和运行状态。

2.通过命令行恢复

要通过命令行恢复数据库,我们将遵循以下步骤 –

1. 首先,我们需要通过命令行登录PostgreSQL终端。为此,请输入以下命令:-

psql -U 



2、现在可以看到我们已经成功登录到psql客户端,并且得到了postgres命令行输入提示。

3.我们现在将按照上面第一部分中的相同过程进行,唯一的区别是,我们这次将通过PostgreSQL的命令行终端来进行。

4. 现在让我们为我们的目的创建一个占位符数据库,它将用于恢复备份。为此,请运行以下脚本。

CREATE DATABASE BackupDB ENCODING='UTF-8' OWNER='postgres';

5. 数据库现已创建。现在让我们恢复它。为了恢复数据库,我们将使用带有一些参数的pg_restore命令。这里需要注意的是,我们需要退出 psql 终端才能运行pg_restore命令。要退出 psql 终端,请键入“ \q ”退出。

6. 使用以下参数键入pg_restore命令 –

pg_restore -U postgres -d backupdb -v "D:\Backup.sql"

PostgreSQL 参数的详细解释可以在 PostgreSQL 官方网站的 pg_restore 的文档部分找到。

7. 成功恢复数据库后,我们将看到我们的模式与表及其数据一起恢复。

因此,在本文中,我们成功探索了两种成功恢复数据库的方法。