1С:Предприятие 8 — Резервное копирование файловых БД
Для выполнения точного резервного копирования файловых БД 1С:Предприятие 8 предлагается использовать файл блокировки 1Cv8.cdn.
Используется в решении: Терминальный сервера на Debian с доступом по RDP
Для выполнения резервного копирования нужно запустить Backup Manager с параметрами заданными в файле backup-manager-1C.conf
/usr/sbin/backup-manager -c /usr/local/etc/backup-manager-1C.conf
Перед выполнением резервного копирования выполняется скрипт блокировки
с параметром 1
(блокировка), при этом поле создания файлов блокировки выдерживается пауза 60 секунд чтобы пользовательские сессии были закрыты.
После завершения процесса резервного копирования выполняется скрипт блокировки
с параметром 0
для снятия блокировки с баз данных.
Файл настройки Backup Manager
Здесь приведён пример файла настройки для Backup Manager
Файл backup-manager-1C.conf
Файл backup-manager-1C.conf
- /usr/local/etc/backup-manager-1C.conf
export BM_REPOSITORY_ROOT="/root/Backup/backup01/1C"
export BM_TEMP_DIR="/tmp"
export BM_REPOSITORY_SECURE="true"
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"
export BM_REPOSITORY_CHMOD="770"
export BM_ARCHIVE_CHMOD="660"
export BM_ARCHIVE_TTL="7"
export BM_REPOSITORY_RECURSIVEPURGE="false"
export BM_ARCHIVE_PURGEDUPS="true"
export BM_ARCHIVE_PREFIX="$HOSTNAME"
export BM_ARCHIVE_STRICTPURGE="true"
export BM_ARCHIVE_NICE_LEVEL="10"
export BM_ARCHIVE_METHOD="tarball-incremental"
export BM_ENCRYPTION_METHOD="false"
export BM_ENCRYPTION_RECIPIENT=""
export BM_TARBALL_NAMEFORMAT="long"
export BM_TARBALL_FILETYPE="tar.gz"
export BM_TARBALL_OVER_SSH="false"
export BM_TARBALL_DUMPSYMLINKS="false"
export BM_TARBALL_DIRECTORIES="/opt/1C /srv/1c/Account /srv/1c/HRM"
# declare -a BM_TARBALL_TARGETS
# export BM_TARBALL_TARGETS
export BM_TARBALL_BLACKLIST="/mnt/Backup DoNotCopy.txt 1Cv8.cdn"
export BM_TARBALL_SLICESIZE="1000M"
export BM_TARBALL_EXTRA_OPTIONS=""
export BM_TARBALLINC_MASTERDATETYPE="weekly"
export BM_TARBALLINC_MASTERDATEVALUE="1"
export BM_MYSQL_DATABASES="__ALL__"
export BM_MYSQL_SAFEDUMPS="true"
export BM_MYSQL_ADMINLOGIN="root"
export BM_MYSQL_ADMINPASS=""
export BM_MYSQL_HOST="localhost"
export BM_MYSQL_PORT="3306"
export BM_MYSQL_FILETYPE="bzip2"
export BM_MYSQL_EXTRA_OPTIONS=""
export BM_PGSQL_DATABASES="__ALL__"
export BM_PGSQL_ADMINLOGIN="root"
export BM_PGSQL_ADMINPASS=""
export BM_PGSQL_HOST="localhost"
export BM_PGSQL_PORT="5432"
export BM_PGSQL_FILETYPE="bzip2"
export BM_PGSQL_EXTRA_OPTIONS=""
export BM_SVN_REPOSITORIES=""
export BM_SVN_COMPRESSWITH="bzip2"
declare -a BM_PIPE_COMMAND
declare -a BM_PIPE_NAME
declare -a BM_PIPE_FILETYPE
declare -a BM_PIPE_COMPRESS
export BM_PIPE_COMMAND
export BM_PIPE_NAME
export BM_PIPE_FILETYPE
export BM_PIPE_COMPRESS
export BM_UPLOAD_METHOD="none"
export BM_UPLOAD_HOSTS=""
export BM_UPLOAD_DESTINATION="/var/archives/uploads"
# Uncomment the 'export ...' line below to activate the uploaded archives
#export BM_UPLOADED_ARCHIVES=${BM_REPOSITORY_ROOT}/${BM_ARCHIVE_PREFIX}-uploaded.list
export BM_UPLOAD_SSH_USER="bmngr"
export BM_UPLOAD_SSH_KEY=""
export BM_UPLOAD_SSH_HOSTS=""
export BM_UPLOAD_SSH_PORT=""
export BM_UPLOAD_SSH_DESTINATION=""
export BM_UPLOAD_SSH_PURGE="true"
export BM_UPLOAD_SSH_TTL=""
export BM_UPLOAD_SSHGPG_RECIPIENT=""
export BM_UPLOAD_FTP_SECURE="false"
export BM_UPLOAD_FTP_PASSIVE="true"
export BM_UPLOAD_FTP_TEST="false"
export BM_UPLOAD_FTP_USER=""
export BM_UPLOAD_FTP_PASSWORD=""
export BM_UPLOAD_FTP_HOSTS=""
export BM_UPLOAD_FTP_PURGE="true"
export BM_UPLOAD_FTP_TTL=""
export BM_UPLOAD_FTP_DESTINATION=""
export BM_UPLOAD_S3_DESTINATION=""
export BM_UPLOAD_S3_ACCESS_KEY=""
export BM_UPLOAD_S3_SECRET_KEY=""
export BM_UPLOAD_S3_PURGE="false"
export BM_UPLOAD_RSYNC_DIRECTORIES=""
export BM_UPLOAD_RSYNC_DESTINATION=""
export BM_UPLOAD_RSYNC_HOSTS=""
export BM_UPLOAD_RSYNC_DUMPSYMLINKS="false"
export BM_BURNING_METHOD="none"
export BM_LOGGER="true"
export BM_LOGGER_LEVEL="warning"
export BM_LOGGER_FACILITY="user"
export BM_PRE_BACKUP_COMMAND="/usr/local/sbin/1Cv8-cdn.sh 1"
export BM_POST_BACKUP_COMMAND="/usr/local/sbin/1Cv8-cdn.sh 0"
Скрипт блокировки
Скрипт для создания файла 1Cv8.cdn в папке файловой БД.
Список БД задаётся в переменной DB_PATH_LIST
Значение параметра скрипта:
1 установить блокировку
БД
-
- /usr/local/sbin/1Cv8-cdn.sh
#!/bin/bash
DB_PATH_LIST="/srv/1c/Account /srv/1c/HRM"
FILE_NAME=1Cv8.cdn
STRING='{1,0001010100000,00010101000000,"*** Резервное копирование ***","ПАРОЛЬ",""}'
if [[ $1 = 1 ]]; then
for DB_PATH in $DB_PATH_LIST
do
if [ -d $DB_PATH ]; then
echo $STRING >$DB_PATH/$FILE_NAME
chmod 644 $DB_PATH/$FILE_NAME
fi
done
sleep 60
fi
if [[ $1 = 0 ]]; then
for DB_PATH in $DB_PATH_LIST
do
if [ -f $DB_PATH/$FILE_NAME ]; then
rm $DB_PATH/$FILE_NAME
fi
done
fi
exit