mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-24 06:28:16 +01:00
Release 2.3.0 - See CHANGELOG.md
This commit is contained in:
@@ -41,6 +41,10 @@ case "$dbtype" in
|
||||
dbport=${DB_PORT:-3306}
|
||||
[[ ( -n "${DB_PASS}" ) || ( -n "${DB_PASS_FILE}" ) ]] && file_env 'DB_PASS'
|
||||
;;
|
||||
"mssql" | "MSSQL" | "microsoftsql" | "MICROSOFTSQL")
|
||||
dbtype=mssql
|
||||
dbport=${DB_PORT:-1433}
|
||||
;;
|
||||
"postgres" | "postgresql" | "pgsql" | "POSTGRES" | "POSTGRESQL" | "PGSQL" )
|
||||
dbtype=pgsql
|
||||
dbport=${DB_PORT:-5432}
|
||||
@@ -128,30 +132,6 @@ backup_couch() {
|
||||
move_backup
|
||||
}
|
||||
|
||||
backup_mysql() {
|
||||
if var_true "$SPLIT_DB" ; then
|
||||
DATABASES=$(mysql -h ${dbhost} -P $dbport -u$dbuser --batch -e "SHOW DATABASES;" | grep -v Database|grep -v schema)
|
||||
|
||||
for db in $DATABASES; do
|
||||
if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] ; then
|
||||
print_notice "Dumping MariaDB database: $db"
|
||||
target=mysql_${db}_${dbhost}_${now}.sql
|
||||
compression
|
||||
mysqldump --max-allowed-packet=512M -h $dbhost -P $dbport -u$dbuser ${EXTRA_OPTS} --databases $db | $dumpoutput > ${tmpdir}/${target}
|
||||
exit_code=$?
|
||||
generate_md5
|
||||
move_backup
|
||||
fi
|
||||
done
|
||||
else
|
||||
compression
|
||||
mysqldump --max-allowed-packet=512M -A -h $dbhost -P $dbport -u$dbuser ${EXTRA_OPTS} | $dumpoutput > ${tmpdir}/${target}
|
||||
exit_code=$?
|
||||
generate_md5
|
||||
move_backup
|
||||
fi
|
||||
}
|
||||
|
||||
backup_influx() {
|
||||
if [ "${COMPRESSION}" = "NONE" ] || [ "${COMPRESSION}" = "none" ] || [ "${COMPRESSION}" = "FALSE" ] || [ "${COMPRESSION}" = "false" ] ; then
|
||||
:
|
||||
@@ -182,6 +162,35 @@ backup_mongo() {
|
||||
move_backup
|
||||
}
|
||||
|
||||
backup_mssql() {
|
||||
target=mssql_${dbname}_${dbhost}_${now}.bak
|
||||
/opt/mssql-tools/bin/sqlcmd -E -C -S ${dbhost}\,${dbport} -U ${dbuser} -P ${dbpass} –Q "BACKUP DATABASE \[${dbname}\] TO DISK = N'${tmpdir}/${target}' WITH NOFORMAT, NOINIT, NAME = '${dbname}-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
|
||||
}
|
||||
|
||||
backup_mysql() {
|
||||
if var_true "$SPLIT_DB" ; then
|
||||
DATABASES=$(mysql -h ${dbhost} -P $dbport -u$dbuser --batch -e "SHOW DATABASES;" | grep -v Database|grep -v schema)
|
||||
|
||||
for db in $DATABASES; do
|
||||
if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] ; then
|
||||
print_notice "Dumping MariaDB database: $db"
|
||||
target=mysql_${db}_${dbhost}_${now}.sql
|
||||
compression
|
||||
mysqldump --max-allowed-packet=512M -h $dbhost -P $dbport -u$dbuser ${EXTRA_OPTS} --databases $db | $dumpoutput > ${tmpdir}/${target}
|
||||
exit_code=$?
|
||||
generate_md5
|
||||
move_backup
|
||||
fi
|
||||
done
|
||||
else
|
||||
compression
|
||||
mysqldump --max-allowed-packet=512M -A -h $dbhost -P $dbport -u$dbuser ${EXTRA_OPTS} | $dumpoutput > ${tmpdir}/${target}
|
||||
exit_code=$?
|
||||
generate_md5
|
||||
move_backup
|
||||
fi
|
||||
}
|
||||
|
||||
backup_pgsql() {
|
||||
if var_true $SPLIT_DB ; then
|
||||
export PGPASSWORD=${dbpass}
|
||||
@@ -268,6 +277,14 @@ check_availability() {
|
||||
(( COUNTER+=5 ))
|
||||
done
|
||||
;;
|
||||
"mssql" )
|
||||
COUNTER=0
|
||||
while ! (nc -z ${dbhost} ${dbport}) ; do
|
||||
sleep 5
|
||||
(( COUNTER+=5 ))
|
||||
print_warn "MSSQL Host '${dbhost}' is not accessible, retrying.. ($COUNTER seconds so far)"
|
||||
done
|
||||
;;
|
||||
"pgsql" )
|
||||
COUNTER=0
|
||||
export PGPASSWORD=${dbpass}
|
||||
@@ -434,6 +451,10 @@ print_debug "Backup routines Initialized on $(date)"
|
||||
check_availability
|
||||
backup_influx
|
||||
;;
|
||||
"mssql" )
|
||||
check_availability
|
||||
backup_mssql
|
||||
;;
|
||||
"mysql" )
|
||||
check_availability
|
||||
backup_mysql
|
||||
|
||||
Reference in New Issue
Block a user