From abb4f675e07f96110775608b617433f7635dfcf4 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 17 Jan 2025 21:16:53 +0100 Subject: [PATCH] Add support of performance settings like 'SET GLOBAL max_allowed_packet=1073741824'. --- borg2-backup-nc.sh | 218 ++++++++++++++--- borg2-backup.sh | 181 +++++++++++++- conf/borg2-backup-nc.conf.sample | 25 ++ conf/borg2-backup.conf.BAK.backup.oopen.de | 268 +++++++++++++++++++++ conf/borg2-backup.conf.sample | 20 ++ 5 files changed, 679 insertions(+), 33 deletions(-) create mode 100644 conf/borg2-backup.conf.BAK.backup.oopen.de diff --git a/borg2-backup-nc.sh b/borg2-backup-nc.sh index 2b90b70..821dde9 100755 --- a/borg2-backup-nc.sh +++ b/borg2-backup-nc.sh @@ -210,6 +210,9 @@ DEFAULT_BORG_RSH='ssh -i /root/.ssh/id_ed25519-borg-backup' DEFAULT_NC_DB_BACKUP_DIR="/data/backup/sql" +DEFAULT_MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock" +DEFAULT_MYSQL_PERFORMANCE_SETTINGS=false + DEFAULT_BACKUP_OTHER_DIRECTORIES="/etc /home /root /var/spool/cron" DEFAULT_KEEP_DAILY=10 @@ -233,15 +236,17 @@ else fatal "No configuration file '$conf_file' present!" fi +[[ -z "${ADMIN_EMAIL}" ]] && ADMIN_EMAIL="${DEFAULT_ADMIN_EMAIL}" +[[ -z "${COMPANY}" ]] && COMPANY="${DEFAULT_COMPANY}" +[[ -z "${FROM_ADDRESS}" ]] && FROM_ADDRESS="${DEFAULT_FROM_ADDRESS}" + +[[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}" +[[ -z "${MYSQL_PERFORMANCE_SETTINGS}" ]] && MYSQL_PERFORMANCE_SETTINGS=${DEFAULT_MYSQL_PERFORMANCE_SETTINGS} # ------------- # - Job is already running? # ------------- -[[ -z "${ADMIN_EMAIL}" ]] && ADMIN_EMAIL="${DEFAULT_ADMIN_EMAIL}" -[[ -z "${COMPANY}" ]] && COMPANY="${DEFAULT_COMPANY}" -[[ -z "${FROM_ADDRESS}" ]] && FROM_ADDRESS="${DEFAULT_FROM_ADDRESS}" - # - If job already runs, stop execution.. # - if mkdir "$LOCK_DIR" 2> /dev/null ; then @@ -541,49 +546,143 @@ fi blank_line +if ${MYSQL_PERFORMANCE_SETTINGS}; then + + # - GET current (global) Autocommit value + # - + echononl "GET current (global) value \033[1mautocommit\033[m" + CUR_AUTOCOMMIT="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'autocommit'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'foreign_key_checks' + # - + echononl "GET current (global) value \033[1mforeign_key_checks\033[m" + CUR_FOREIGN_KEY_CHECKS="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'foreign_key_checks'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'unique_checks' + # - + echononl "GET current (global) value \033[1munique_checks\033[m" + CUR_UNIQUE_CHECKS="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'unique_checks'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'innodb_flush_log_at_trx_commit' + # - + echononl "GET current (global) value \033[1minnodb_flush_log_at_trx_commit\033[m" + CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'innodb_flush_log_at_trx_commit'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'max_allowed_packet' + # - + echononl "GET current (global) value \033[1mmax_allowed_packet\033[m" + CUR_MAX_ALLOWED_PACKET="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + + echononl "Set Autocommit to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL autocommit='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set foreign_key_checks to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL foreign_key_checks='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set unique_checks to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL unique_checks='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set innodb_flush_log_at_trx_commit to 2" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=2" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set max_allowed_packet to 1G" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL max_allowed_packet=1073741824" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + +fi + + # Create database backup # echononl "Create database backup .." mysql_max_allowed_packet="512M" cat << EOF >> ${BORG_LOG_FILE} -mysqldump \\ - --protocol=SOCKET \\ +mysqldump ${MYSQL_CREDENTIALS} \\ + --single-transaction \\ --max-allowed-packet=${mysql_max_allowed_packet} \\ - --skip-opt \\ - --add-drop-table \\ - --add-locks \\ - --create-options \\ - --quick \\ - --compress \\ - --set-charset \\ - --disable-keys \\ - --lock-tables \\ --routines \\ -h localhost \\ - -u${NC_DB_USER} \\ - -p${NC_DB_PASS} \\ -e ${NC_DB} > ${NC_DB_BACKUP_DIR}/${NC_DB}-${backup_date}.sql EOF -mysqldump \ - --protocol=SOCKET \ +mysqldump ${MYSQL_CREDENTIALS} \ + --single-transaction \ --max-allowed-packet=${mysql_max_allowed_packet} \ - --skip-opt \ - --add-drop-table \ - --add-locks \ - --create-options \ - --quick \ - --compress \ - --set-charset \ - --disable-keys \ - --lock-tables \ --routines \ -h localhost \ - -u${NC_DB_USER} \ - -p${NC_DB_PASS} \ -e ${NC_DB} > ${NC_DB_BACKUP_DIR}/${NC_DB}-${backup_date}.sql 2> ${log_file} + if [[ $? -gt 0 ]] ; then echo_failed error "$(cat "${log_file}")" @@ -591,6 +690,65 @@ else echo_ok fi +blank_line + + +if ${MYSQL_PERFORMANCE_SETTINGS}; then + + echononl "Set Autocommit to $CUR_AUTOCOMMIT" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL autocommit='$CUR_AUTOCOMMIT'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_AUTOCOMMIT="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set foreign_key_checks to $CUR_FOREIGN_KEY_CHECKS" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL foreign_key_checks='$CUR_FOREIGN_KEY_CHECKS'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_FOREIGN_KEY_CHECKS="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set unique_checks to $CUR_UNIQUE_CHECKS" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL unique_checks='$CUR_UNIQUE_CHECKS'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_UNIQUE_CHECKS="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set innodb_flush_log_at_trx_commit to $CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=$CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set max_allowed_packet to $CUR_MAX_ALLOWED_PACKET" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL max_allowed_packet=$CUR_MAX_ALLOWED_PACKET" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_MAX_ALLOWED_PACKET="" + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + +fi + echononl "Create borg backup.." diff --git a/borg2-backup.sh b/borg2-backup.sh index 2964bda..4eb0455 100755 --- a/borg2-backup.sh +++ b/borg2-backup.sh @@ -210,7 +210,9 @@ DEFAULT_KEEP_MONTHLY=6 DEFAULT_KEEP_YEARLY=1 DEFAULT_DB_TYPE="None" + DEFAULT_MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock" +DEFAULT_MYSQL_PERFORMANCE_SETTINGS=false DEFAULT_PSQL_SYSTEM_USER="postgres" @@ -314,7 +316,7 @@ fi declare -a db_type_arr=() -for _db_type in ${DB_TYPE}; do +for _db_type in ${DB_TYPE}; do if [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then db_type_arr+=("postgresql") else @@ -324,6 +326,7 @@ done if containsElement "mysql" "${db_type_arr[@]}" ; then [[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}" + [[ -z "${MYSQL_PERFORMANCE_SETTINGS}" ]] && MYSQL_PERFORMANCE_SETTINGS=${DEFAULT_MYSQL_PERFORMANCE_SETTINGS} fi if containsElement "postgresql" "${db_type_arr[@]}" ; then @@ -389,7 +392,7 @@ if $terminal ; then echo -e " DB_TYPE(s)...............: \033[33m${DB_TYPE}\033[m" echo "" - + declare -i index=0 for _dir in ${BACKUP_DIRECTORIES} ; do if [[ $index -lt 1 ]] ; then @@ -439,7 +442,7 @@ fi echo "# ----------" >> ${BORG_LOG_FILE} echo -e "# Running script '${script_name}' on $(date +%Y.%m.%d) at $(date +%H:%M) h .." >> ${BORG_LOG_FILE} echo "# ----------" >> ${BORG_LOG_FILE} - + echo "" >> ${BORG_LOG_FILE} echo "# Script parameter settings:" >> ${BORG_LOG_FILE} @@ -518,6 +521,122 @@ EOF echo_ok fi + blank_line + + if ${MYSQL_PERFORMANCE_SETTINGS} ; then + + # - GET current (global) Autocommit value + # - + echononl "GET current (global) value \033[1mautocommit\033[m" + CUR_AUTOCOMMIT="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'autocommit'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'foreign_key_checks' + # - + echononl "GET current (global) value \033[1mforeign_key_checks\033[m" + CUR_FOREIGN_KEY_CHECKS="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'foreign_key_checks'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'unique_checks' + # - + echononl "GET current (global) value \033[1munique_checks\033[m" + CUR_UNIQUE_CHECKS="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'unique_checks'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'innodb_flush_log_at_trx_commit' + # - + echononl "GET current (global) value \033[1minnodb_flush_log_at_trx_commit\033[m" + CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'innodb_flush_log_at_trx_commit'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + # - GET current (global) value for 'max_allowed_packet' + # - + echononl "GET current (global) value \033[1mmax_allowed_packet\033[m" + CUR_MAX_ALLOWED_PACKET="$(mysql ${MYSQL_CREDENTIALS} -N -s -e "SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'" \ + | awk '{print$2}')" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + + echononl "Set Autocommit to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL autocommit='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set foreign_key_checks to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL foreign_key_checks='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set unique_checks to OFF" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL unique_checks='OFF'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set innodb_flush_log_at_trx_commit to 2" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=2" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set max_allowed_packet to 1G" + mysql ${MYSQL_CREDENTIALS} -N -s -e "SET GLOBAL max_allowed_packet=1073741824" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + fi + + for _db in ${mysql_database_arr[@]} ; do echononl " Dump MySQL Database '${_db}'.." @@ -543,6 +662,62 @@ EOF fi done + + blank_line + + if ${MYSQL_PERFORMANCE_SETTINGS} ; then + echononl "Set Autocommit to $CUR_AUTOCOMMIT" + ${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_AUTOCOMMIT'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_AUTOCOMMIT="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set foreign_key_checks to $CUR_FOREIGN_KEY_CHECKS" + ${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL foreign_key_checks='$CUR_FOREIGN_KEY_CHECKS'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_FOREIGN_KEY_CHECKS="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set unique_checks to $CUR_UNIQUE_CHECKS" + ${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL unique_checks='$CUR_UNIQUE_CHECKS'" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_UNIQUE_CHECKS="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set innodb_flush_log_at_trx_commit to $CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" + ${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=$CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT="" + else + echo_failed + error "$(cat ${log_file})" + fi + + echononl "Set max_allowed_packet to $CUR_MAX_ALLOWED_PACKET" + ${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL max_allowed_packet=$CUR_MAX_ALLOWED_PACKET" >> ${log_file} 2>&1 + if [[ $? -eq 0 ]];then + echo_ok + CUR_MAX_ALLOWED_PACKET="" + else + echo_failed + error "$(cat ${log_file})" + fi + + blank_line + fi fi if containsElement "postgresql" "${db_type_arr[@]}" ; then diff --git a/conf/borg2-backup-nc.conf.sample b/conf/borg2-backup-nc.conf.sample index cf97c44..352daa9 100644 --- a/conf/borg2-backup-nc.conf.sample +++ b/conf/borg2-backup-nc.conf.sample @@ -114,6 +114,31 @@ #NC_DB_BACKUP_DIR="/data/backup/sql" +# --- +# DB related parameters +# --- + + +# MYSQL_PERFORMANCE_SETTINGS +# +# To increase performance, some global variables are changed before writing the database dump. +# +# Settings are: +# - SET GLOBAL autocommit='OFF' +# - SET GLOBAL foreign_key_checks='OFF' +# - SET GLOBAL unique_checks='OFF' +# - SET GLOBAL innodb_flush_log_at_trx_commit=2 +# SET GLOBAL max_allowed_packet=1073741824 +# +# After the databases have been backed up, the values are reset. +# +# Defaults to: +# +# MYSQL_PERFORMANCE_SETTINGS=false +# +#MYSQL_PERFORMANCE_SETTINGS=false + + # --- # Other Backups # --- diff --git a/conf/borg2-backup.conf.BAK.backup.oopen.de b/conf/borg2-backup.conf.BAK.backup.oopen.de new file mode 100644 index 0000000..1c95305 --- /dev/null +++ b/conf/borg2-backup.conf.BAK.backup.oopen.de @@ -0,0 +1,268 @@ +#----------------------------- +# Settings for script borg2-backup-nc.sh +#----------------------------- + +# SSH_USER +# +# The (remote) user under which the SSH session for the +# data transfer is running. +# +# Defaults to: +# +# SSH_USER="borg" +# +#BACKUP_USER="borg" + + +# SSH_PORT +# +# The port under which the SSH service is accessible +# +# Defaults to: +# +# SSH_PORT=22 +# +#SSH_PORT=22 + + +# BORG_HOST +# +# The (remote) host on which the backups are saved. +# +# !! No Defaults - this parameter is mandatory +# +#BORG_HOST="" +BORG_HOST="backup.warenform.de" + + +# BORG_RSH +# +# The command, which is used instead of ssh. +# +# This can be used to specify ssh options, such as a custom identity file +# ssh -i /path/to/private/key. See man ssh for other options. +# +# Using the --rsh CMD commandline option overrides the environment variable. +# +# Defaults to: +# BORG_RSH='ssh -i /root/.ssh/id_ed25519-borg-backup' +# +#BORG_RSH='ssh -i /root/.ssh/id_ed25519-borg-backup' + + +# BORG_PASSPHRASE +# +# Password of the Borg Repository (which was used while initializing) +# +# !! No Defaults - this parameter is mandatory +# +#BORG_PASSPHRASE='borg-password' +BORG_PASSPHRASE='aeHj7z5s/.j-_+gbSG/Zfz%4' + + +# BORG_REPO +# +# The repository location on the (remote) backup host. +# +# !! No Defaults - this parameter is mandatory +# +#BORG_REPO= +BORG_REPO="/backup/BORG-2/backup.oopen.de" + + +# BORG_LOG_DIR +# +# Log to this directory +# +# Defaults to: +# +# BORG_LOG_DIR="/var/log/borg" +# +#BORG_LOG_DIR="/var/log/borg" + + +# --- +# DB related parameters +# --- + +# DB_TYPE +# +# Which database ist installed? +# +# possible values: +# - MySQL +# - PostgreSQL or postgres or psql +# - None +# +# Defaults to: +# +# DB_TYPE="None" +# +# DB_TYPE="None" +DB_TYPE="MySQL" + + +# MYSQL_CREDENTIALS +# +# Giving password on command line is insecure an sind mysql 5.5 +# you will get a warning doing so. +# +# Reading username/password fro file ist also possible, using MySQL/MariaDB +# commandline parameter '--defaults-file'. +# +# Since Version 5.6, that method is considered as insecure. +# To avoid giving the password on command line, we use an +# encrypted option file +# +# Create (encrypted) option file: +# $ mysql_config_editor set --login-path=local --socket=/var/run/mysqld/mysqld.sock --user=backup --password +# $ Password: +# +# Use of option file: +# $ mysql --login-path=local ... +# +# Example +# MYSQL_CREDENTIALS="--login-path=local" +# MYSQL_CREDENTIALS="--defaults-file=/etc/mysql/debian.cnf" (Debian default) +# MYSQL_CREDENTIALS="--defaults-file=/usr/local/mysql/sys-maint.cnf" +# +# Defaults to: +# +# MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock" +# +#MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock" + + +# PSQL_SYSTEM_USER +# +# User who owns PostgreSQL services +# +# Defaults to: +# +# PSQL_SYSTEM_USER="postgres" +# +#PSQL_SYSTEM_USER="postgres" + + +# DB_BACKUP_DIR +# +# Directory in which current database dumps are stored (and transferred to the repository) +# +# Defaults to: +# +# DB_BACKUP_DIR="/data/backup/sql" +# +#DB_BACKUP_DIR="/data/backup/sql" + + +# --- +# Backups directories +# --- + +# BACKUP_DIRECTORIES +# +# Directories (or files) that should be backed up +# +# Defaults to: +# +# BACKUP_DIRECTORIES="/etc /home /root /var/spool/cron" +# +# - Blank separated list of directories - +# +#BACKUP_DIRECTORIES="/etc /home /root /var/spool/cron" +BACKUP_DIRECTORIES="/etc /home /root /var/spool/cron" + + +# KEEP_DAILY +# +# Number of daily archives to keep +# +# Defaults to: +# +# KEEP_DAILY=10 +# +#KEEP_DAILY=10 + + +# KEEP_WEEKLY +# +# Number of weekly archives to keep +# +# Defaults to: +# +# KEEP_WEEKLY=5 +# +#KEEP_WEEKLY=5 + + +# KEEP_MONTHLY +# +# Number of monthly archives to keep +# +# Defaults to: +# +# KEEP_MONTHLY=6 +# +#KEEP_MONTHLY=6 + + +# KEEP_YEARLY +# +# Number of yearly archives to keep +# +# Defaults to: +# +# KEEP_YEARLY=1 +# +#KEEP_YEARLY=1 + + +# --- +# Restore Parameters +# --- + +# BORG_FUSE_MOUNT_DIR +# +# Mountpoint where to mount an borg backup archiv as a FUSE filesystem. +# +# Defaults to: +# +# BORG_MOUNT_FUSE_DIR="/mnt/borg-fuse-mount" +# +#BORG_MOUNT_FUSE_DIR="/mnt/borg-fuse-mount" + + +# --- +# Alert Parameters +# --- + +# ADMIN_EMAIL +# +# Send Informations about the backup prozess to this e-mail address +# +# Defaults to: +# +# ADMIN_EMAIL="root" +# +#ADMIN_EMAIL="root" + + +# FROM_ADDRESS +# +# Defaults to: +# +# "borg-backup@$(hostname -f)" +# +#FROM_ADDRESS="" + + +# COMPANY +# +# DEFAULTS to +# Defaults to: +# +# COMPANY="O.OPEN" +# +#COMPANY="O.OPEN" +COMPANY="O.OPEN" + diff --git a/conf/borg2-backup.conf.sample b/conf/borg2-backup.conf.sample index fe7c0d8..781d82a 100644 --- a/conf/borg2-backup.conf.sample +++ b/conf/borg2-backup.conf.sample @@ -130,6 +130,26 @@ #MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock" +# MYSQL_PERFORMANCE_SETTINGS +# +# To increase performance, some global variables are changed before writing the database dump. +# +# Settings are: +# - SET GLOBAL autocommit='OFF' +# - SET GLOBAL foreign_key_checks='OFF' +# - SET GLOBAL unique_checks='OFF' +# - SET GLOBAL innodb_flush_log_at_trx_commit=2 +# SET GLOBAL max_allowed_packet=1073741824 +# +# After the databases have been backed up, the values are reset. +# +# Defaults to: +# +# MYSQL_PERFORMANCE_SETTINGS=false +# +#MYSQL_PERFORMANCE_SETTINGS=false + + # PSQL_SYSTEM_USER # # User who owns PostgreSQL services