Уведомление о переводе ИИ
Эта документация была автоматически переведена ИИ.
pkg: '@nocobase/plugin-backups'
Управление резервными копиями
Введение
Плагин NocoBase «Менеджер резервных копий» предоставляет функции полного резервного копирования базы данных NocoBase и загруженных пользователями файлов, а также функции планирования, загрузки, удаления и восстановления резервных копий.
Warning
Плагин «Менеджер резервных копий» включен в версии Professional и Enterprise. Для пользователей Community и Standard версий вы можете напрямую создавать резервные копии базы данных; подробности см. здесь: Как создать резервную копию и восстановить NocoBase
Установка клиента базы данных
Менеджер резервных копий зависит от клиента соответствующей базы данных. Перед использованием, пожалуйста, посетите официальный сайт, чтобы загрузить клиент, соответствующий вашей версии базы данных:
Для версий Docker вы можете напрямую создать скрипт в директории ./storage/scripts:
mkdir ./storage/scripts
cd ./storage/scripts
vim install-database-client.sh
Содержимое файла install-database-client.sh следующее:
#!/bin/bash
# Check if pg_dump is installed
if [ ! -f /usr/bin/pg_dump ]; then
echo "pg_dump is not installed, starting PostgreSQL client installation..."
# Configure Aliyun mirrors
tee /etc/apt/sources.list > /dev/null <<EOF
deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm main contrib non-free
deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free
deb-src http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free
deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
EOF
# Install necessary tools and clean cache
rm -rf /etc/apt/sources.list.d/debian.sources && apt-get update && apt-get install -y --no-install-recommends wget gnupg \
&& rm -rf /var/lib/apt/lists/*
# Configure PostgreSQL source
echo "deb [signed-by=/usr/share/keyrings/pgdg.asc] http://mirrors.aliyun.com/postgresql/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O /usr/share/keyrings/pgdg.asc http://mirrors.aliyun.com/postgresql/repos/apt/ACCC4CF8.asc
# Install PostgreSQL client
apt-get update && apt-get install -y --no-install-recommends postgresql-client-16 \
&& rm -rf /var/lib/apt/lists/*
echo "PostgreSQL client installation completed."
else
echo "pg_dump is already installed, skipping PostgreSQL client installation."
fi
#!/bin/bash
if [ ! -f /usr/bin/mysql ]; then
echo "MySQL client is not installed, starting MySQL client installation..."
tee /etc/apt/sources.list > /dev/null <<EOF
deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm main contrib non-free
deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free
deb-src http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free
deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
EOF
echo "Updating package list and installing necessary tools..."
rm -rf /etc/apt/sources.list.d/debian.sources && apt-get update && apt-get install -y --no-install-recommends wget gnupg \
&& rm -rf /var/lib/apt/lists/*
wget --no-check-certificate https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-core_8.0.39-1debian12_amd64.deb && \
dpkg -x mysql-community-client-core_8.0.39-1debian12_amd64.deb /tmp/mysql-client && \
cp /tmp/mysql-client/usr/bin/mysqldump /usr/bin/ && \
cp /tmp/mysql-client/usr/bin/mysql /usr/bin/
echo "MySQL client installation completed."
else
echo "MySQL client is already installed, skipping installation."
fi
Затем перезапустите контейнер app
docker compose restart app
# Просмотр логов
docker compose logs app
Проверьте номер версии клиента базы данных, он должен совпадать с номером версии сервера базы данных.
docker compose exec app bash -c "pg_dump -V"
docker compose exec app bash -c "mysql -V"
Инструкции по использованию

Создание новой резервной копии
Нажмите кнопку «Создать резервную копию», чтобы создать новую резервную копию в соответствии с настройками и отобразить ее статус в списке резервных копий.

Восстановление резервной копии
Поддерживается восстановление резервных копий из списка или путем загрузки локального файла резервной копии.
Операции восстановления не допускаются в следующих случаях:
- Когда текущая версия NocoBase ниже версии NocoBase в файле резервной копии.
- Когда текущая база данных NocoBase несовместима со следующими конфигурациями в файле резервной копии:
- dialect (тип базы данных)
- underscored (конфигурация полей)
- table prefix (префикс таблицы)
- schema (структура таблицы)
- Если не включен режим
Tolerant mode (режим отказоустойчивости), и версия базы данных на момент создания резервной копии выше, чем текущая версия базы данных приложения.
Восстановление — это полная операция с базой данных. Рекомендуется создать резервную копию текущей базы данных перед восстановлением.
Восстановление из списка резервных копий
Нажмите кнопку Восстановить для элемента резервной копии в списке, в появившемся окне введите пароль шифрования файла резервной копии и нажмите «Подтвердить», чтобы восстановить резервную копию.
Для незашифрованных резервных копий пароль вводить не нужно.
Если вам необходимо восстановить резервную копию в базу данных более старой версии, вам нужно включить режим отказоустойчивости (Tolerant mode).
