跳转至
For the complete DHIS2 documentation index, see llms.txt.

如何备份和还原 DHIS2(基于 LXD 的设置){ #how-to-backup-and-restore-dhis2-lxd-based-setup }

本指南将简单介绍在使用 LXD 容器时如何备份和还原 DHIS2 数据库。 数据库的方法。备份是使用由 dhis2-server-tools项目提供的脚本进行自动备份。


您需要了解的信息{ #what-you-need-to-know }

  • ** 备份可在服务器崩溃或损坏时保护您的数据**。
  • **在 LXD 容器内还原**数据库有点复杂,但还原脚本简化了这一过程。

备份说明{ #backup-instructions }

1.自动备份脚本{ #1-automated-backup-script }

系统已包含一个脚本: /usr/local/bin/dhis2-backup

它的功能如下

  • 运行每日备份。
  • /var/pgbackups 中存储转储。
  • 不包括与分析有关的表格。
  • 转储并截断 audit 表。
  • 支持加密备份

2.它支持什么{ #2-what-it-backs-up }

  • 常规数据库表(分析除外)
  • 审计表(并在备份后将其截断)

3.备份去向{ #3-where-the-backups-go }

  • 所有备份都保存在 /var/pgbackups/db-backup/`/var/pgbackups/audit-backup/`

  • 加密备份(可选)的存储方式与此类似。

4.工作原理(简化版){ #4-how-it-works-simplified }

  • 设置加载自 /usr/local/etc/dhis/dhis2-env`。
  • 对于每个数据库,它

  • 删除审计表。

  • 截断审计表。
  • 转存主数据库(不包括分析)。
  • 可选择加密转储。

恢复说明{ #restore-instructions }

1.还原脚本{ #1-restore-script }

使用此脚本: /usr/local/bin/dhis2-restoredb

您需要

  • .sql.gz "文件(您的备份)
  • 数据库名称

2.脚本的作用{ #2-what-the-script-does }

  • 删除旧数据库(在 LXD 容器内)
  • 以正确的所有者身份重新创建数据库
  • 恢复转储,忽略所有权问题
  • 重新分配剩余的 "根 "所有对象

3.如何运行{ #3-how-to-run-it }

sudo /usr/local/bin/dhis2-restoredb /var/pgbackups/db-backup/mybackup.sql.gz dhis2

确保

  • PostgreSQL 在名为 "postgres "的 LXD 容器中运行
  • 数据库用户与数据库名称一致(在 DHIS2 中通常如此)

还原逻辑示例{ #sample-restore-logic }

sudo lxc exec postgres dropdb dhis2
sudo lxc exec postgres -- createdb -O dhis2 dhis2
zcat mybackup.sql.gz | grep -v 'ALTER .* OWNER' | sudo lxc exec postgres -- psql dhis2
echo "REASSIGN OWNED BY root TO dhis2" | sudo lxc exec postgres -- psql dhis2

最佳做法{ #best-practices }

  • 使用专用的 PostgreSQL 用户进行备份。
  • 为敏感备份加密。
  • 保护备份文件夹:"chmod 750 "用于目录,"chmod 600 "用于文件。

摘要{ #summary }

使用 dhis2-server-tools 的 DHIS2 部署预配置了备份和还原脚本:

  • 每天**次自动备份。
  • 备份保存在 /var/pgackups
  • 还原是通过一个脚本完成的,该脚本在 LXD 内部处理权限和所有权。

即使在复杂的 LXD 环境中,这些工具也能使 PostgreSQL 的备份和还原变得可靠而简单。