主要内容

Polyspace Access 版本 R2020a 及更早版本的数据库备份

注意

本主题适用于 Polyspace® Access™ 版本 R2020a 及更早版本。对于版本 R2020b 及更高版本,请参阅备份 Polyspace Access 数据库

若要创建 Polyspace Access 数据库的备份,请使用 pg_dumpall PostgreSQL 实用工具。此实用工具可创建数据库的转储。这样,您就可以从转储创建时的时间点还原数据库的状态。pg_dumpall 实用工具可在 Polyspace Accesspolyspace-db 容器中找到。

您需要根据数据库的大小和使用频率来确定创建备份的频率。在执行数据库备份或还原时,用户无法与 Polyspace Access 交互。在开始备份或还原操作之前,请通知您的用户。

创建数据库备份

创建数据库备份时,pg_dumpall 实用工具会生成一系列在重建数据库时会用到的 SQL 命令。备份操作需要超级用户特权。这些特权是通过 PostgreSQL 设置的,并且与您的系统上的用户特权是分开的。例如,要生成数据库转储并将其保存为 backup_db.sql,请在托管 Database 服务的计算机上打开一个终端,然后按以下步骤操作。

  1. 为防止备份包含不完整或已损坏的数据,请在启动备份操作之前停止 ETLWeb Server 服务。在终端中,输入以下命令:

    docker stop polyspace-etl polyspace-web-server

    提示

    在 Windows Server® 2019 上使用 Cluster Operator (COP) 界面来停止 Polyspace Access 服务可能会导致响应较慢。在这种情况下,请改用以下命令来停止服务:

    docker exec -it polyspace-etl kill 1
    docker exec -it polyspace-web-server kill 1

  2. 生成数据库备份并将其保存到 backup_db.sql

    docker exec polyspace-db pg_dumpall -U postgres > backup_db.sql
    docker exec 命令在 polyspace-db 容器内运行 pg_dumpall 实用工具。-U 用于指定超级用户 postgres。然后,将 pg_dumpall 的输出保存为 backup_db.sql。请注意,对大型数据库使用 pg_dumpall 时生成的文件可能会超出某些操作系统上的最大文件大小限制,并且可能会很耗时。

  3. 重新启动 ETLWeb Server 服务。

    docker start polyspace-etl polyspace-web-server

从备份还原数据库

要从数据库备份恢复数据,请使用 psql 实用工具。此实用工具可在 polyspace-db 容器中找到。此操作可用于还原 Polyspace Access 工程的数据和用户权限。例如,您可以从存储在 backup_db.sql 文件中的备份还原数据库。某些步骤可在 COP 界面中完成。其他步骤需要使用托管 Database 服务的服务器上的终端。

  1. 创建一个数据库。在 COP 界面中,删除所有服务,然后点击左侧窗格中的 Settings。在 Database 设置下,点击 Data volume 字段旁的 create volume 来创建卷,然后从 Data volume 下拉列表中选择此卷。如果没有看到 create volume 链接,请在 Data volume 字段中指定一个新的文件夹路径。如果该文件夹路径不存在,COP 会创建它。保存更改。

  2. 返回到 Services 选项卡,点击 PROVISION,然后仅启动 Database 服务。

  3. backup_db.sql 还原数据库。在终端中,输入以下命令:

    docker exec -i polyspace-db psql -U postgres postgres <backup_db.sql
    如果您将备份存储在了一个压缩文件中,请解压缩该文件,然后通过使用管道符号将其内容传递给 docker exec 命令。例如,如果您使用 gzip,要从 backup_db.gz 文件还原数据库,请输入以下命令:
    gzip -cd backup_db.gz | docker exec -i polyspace-db psql -U postgres postgres

  4. 在 COP 界面中,点击 START ALL 以启动所有服务。

服务启动后,在 Web 浏览器中打开 Polyspace Access 界面,查看截至备份创建时数据库中存储的工程。

另外,您还可以依赖预写日志 (WAL) 文件来执行数据库的增量备份和恢复。WAL 会记录对数据库所做的所有更改。系统仅存储少量 WAL 文件并且会回收较旧的文件。

通过创建一个基础备份并存储所有后续 WAL 文件,您可以将 WAL 序列重播至基础备份创建时间与当前时间之间的任意时间点来恢复数据库。有关如何创建增量备份的示例,请参阅持续存档和时间点恢复 (PITR)

另请参阅

主题