mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 21:33:28 +01:00
feat - Add Support for MSSQL Transaction logs - Closes #200
This commit is contained in:
@@ -263,6 +263,7 @@ If these are set and no other defaults or variables are set explicitly, they wil
|
|||||||
| Variable | Description | Default | `_FILE` |
|
| Variable | Description | Default | `_FILE` |
|
||||||
| -------------- | ------------------ | ------- | ------- |
|
| -------------- | ------------------ | ------- | ------- |
|
||||||
| `DEFAULT_PORT` | Microsoft SQL Port | `1433` | x |
|
| `DEFAULT_PORT` | Microsoft SQL Port | `1433` | x |
|
||||||
|
| `DEFAULT_MSSQL_MODE` | Backup `DATABASE` or `TRANSACTION` logs | `DATABASE` |
|
||||||
|
|
||||||
###### MongoDB
|
###### MongoDB
|
||||||
|
|
||||||
@@ -513,6 +514,7 @@ Otherwise, override them per backup job. Additional backup jobs can be scheduled
|
|||||||
| Variable | Description | Default | `_FILE` |
|
| Variable | Description | Default | `_FILE` |
|
||||||
| ----------- | ------------------ | ------- | ------- |
|
| ----------- | ------------------ | ------- | ------- |
|
||||||
| `DB01_PORT` | Microsoft SQL Port | `1433` | x |
|
| `DB01_PORT` | Microsoft SQL Port | `1433` | x |
|
||||||
|
| `DB01_MSSQL_MODE` | Backup `DATABASE` or `TRANSACTION` logs | `DATABASE` |
|
||||||
|
|
||||||
###### MongoDB
|
###### MongoDB
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ DEFAULT_MYSQL_STORED_PROCEDURES=${DEFAULT_MYSQL_STORED_PROCEDURES:-"TRUE"}
|
|||||||
DEFAULT_MYSQL_TLS_CA_FILE=${DEFAULT_MYSQL_TLS_CA_FILE:-"/etc/ssl/cert.pem"}
|
DEFAULT_MYSQL_TLS_CA_FILE=${DEFAULT_MYSQL_TLS_CA_FILE:-"/etc/ssl/cert.pem"}
|
||||||
DEFAULT_MYSQL_TLS_VERIFY=${DEFAULT_MYSQL_TLS_VERIFY:-"FALSE"}
|
DEFAULT_MYSQL_TLS_VERIFY=${DEFAULT_MYSQL_TLS_VERIFY:-"FALSE"}
|
||||||
DEFAULT_MYSQL_TLS_VERSION=${DEFAULT_MYSQL_TLS_VERSION:-"TLSv1.1,TLSv1.2,TLSv1.3"}
|
DEFAULT_MYSQL_TLS_VERSION=${DEFAULT_MYSQL_TLS_VERSION:-"TLSv1.1,TLSv1.2,TLSv1.3"}
|
||||||
|
DEFAULT_MSSQL_MODE=${DEFAULT_MSSQL_MODE:-"database"}
|
||||||
DEFAULT_PARALLEL_COMPRESSION_THREADS=${DEFAULT_PARALLEL_COMPRESSION_THREADS:-"$(nproc)"}
|
DEFAULT_PARALLEL_COMPRESSION_THREADS=${DEFAULT_PARALLEL_COMPRESSION_THREADS:-"$(nproc)"}
|
||||||
DEFAULT_S3_CERT_SKIP_VERIFY=${DEFAULT_S3_CERT_SKIP_VERIFY:-"TRUE"}
|
DEFAULT_S3_CERT_SKIP_VERIFY=${DEFAULT_S3_CERT_SKIP_VERIFY:-"TRUE"}
|
||||||
DEFAULT_S3_PROTOCOL=${DEFAULT_S3_PROTOCOL:-"https"}
|
DEFAULT_S3_PROTOCOL=${DEFAULT_S3_PROTOCOL:-"https"}
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ bootstrap_variables() {
|
|||||||
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_KEY_FILE backup_job_mysql_tls_key_file
|
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_KEY_FILE backup_job_mysql_tls_key_file
|
||||||
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_VERIFY backup_job_mysql_tls_verify
|
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_VERIFY backup_job_mysql_tls_verify
|
||||||
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_VERSION backup_job_mysql_tls_version
|
transform_backup_instance_variable "${backup_instance_number}" MYSQL_TLS_VERSION backup_job_mysql_tls_version
|
||||||
|
transform_backup_instance_variable "${backup_instance_number}" MSSQL_MODE backup_job_mssql_mode
|
||||||
transform_backup_instance_variable "${backup_instance_number}" NAME backup_job_db_name
|
transform_backup_instance_variable "${backup_instance_number}" NAME backup_job_db_name
|
||||||
transform_backup_instance_variable "${backup_instance_number}" NAME_EXCLUDE backup_job_db_name_exclude
|
transform_backup_instance_variable "${backup_instance_number}" NAME_EXCLUDE backup_job_db_name_exclude
|
||||||
transform_backup_instance_variable "${backup_instance_number}" PARALLEL_COMPRESSION_THREADS backup_job_parallel_compression_threads
|
transform_backup_instance_variable "${backup_instance_number}" PARALLEL_COMPRESSION_THREADS backup_job_parallel_compression_threads
|
||||||
@@ -445,19 +446,38 @@ backup_mongo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
backup_mssql() {
|
backup_mssql() {
|
||||||
prepare_dbbackup
|
case "${backup_job_mssql_mode,,}" in
|
||||||
target=mssql_${backup_job_db_name,,}_${backup_job_db_host,,}_${now}.bak
|
db|database )
|
||||||
ltarget=mssql_${backup_job_db_name,,}_${backup_job_db_host,,}
|
prepare_dbbackup
|
||||||
compression
|
target=mssql_${backup_job_db_name,,}_${backup_job_db_host,,}_${now}.bak
|
||||||
pre_dbbackup "${backup_job_db_name}"
|
ltarget=mssql_${backup_job_db_name,,}_${backup_job_db_host,,}
|
||||||
write_log notice "Dumping MSSQL database: '${DB_NAME}'"
|
compression
|
||||||
silent run_as_user /opt/mssql-tools18/bin/sqlcmd -C -S ${backup_job_db_host}\,${backup_job_db_port} -U ${backup_job_db_user} -P ${backup_job_db_pass} -Q "BACKUP DATABASE [${backup_job_db_name}] TO DISK = N'${TEMP_PATH}/${target}' WITH NOFORMAT, NOINIT, NAME = '${backup_job_db_name}-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
|
pre_dbbackup "${backup_job_db_name}"
|
||||||
exit_code=$?
|
write_log notice "Dumping MSSQL database: '${DB_NAME}'"
|
||||||
check_exit_code backup $target
|
silent run_as_user /opt/mssql-tools18/bin/sqlcmd -C -S ${backup_job_db_host}\,${backup_job_db_port} -U ${backup_job_db_user} -P ${backup_job_db_pass} -Q "BACKUP DATABASE [${backup_job_db_name}] TO DISK = N'${TEMP_PATH}/${target}' WITH NOFORMAT, NOINIT, NAME = '${backup_job_db_name}-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
|
||||||
generate_checksum
|
exit_code=$?
|
||||||
move_dbbackup
|
check_exit_code backup $target
|
||||||
check_exit_code move $target
|
generate_checksum
|
||||||
ppost_dbbackup "${backup_job_db_name}"
|
move_dbbackup
|
||||||
|
check_exit_code move $target
|
||||||
|
post_dbbackup "${backup_job_db_name}"
|
||||||
|
;;
|
||||||
|
trn|transaction )
|
||||||
|
prepare_dbbackup
|
||||||
|
target=mssql_${backup_job_db_name,,}_${backup_job_db_host,,}_${now}.trn
|
||||||
|
ltarget=mssql_${backup_job_db_name,,}_trn_${backup_job_db_host,,}
|
||||||
|
compression
|
||||||
|
pre_dbbackup "${backup_job_db_name}"
|
||||||
|
write_log notice "Dumping MSSQL database: '${DB_NAME}'"
|
||||||
|
silent run_as_user /opt/mssql-tools18/bin/sqlcmd -C -S ${backup_job_db_host}\,${backup_job_db_port} -U ${backup_job_db_user} -P ${backup_job_db_pass} -Q "BACKUP LOG [${backup_job_db_name}] TO DISK = N'${TEMP_PATH}/${target}' WITH NOFORMAT, NOINIT, NAME = '${backup_job_db_name}-log', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
|
||||||
|
exit_code=$?
|
||||||
|
check_exit_code backup $target
|
||||||
|
generate_checksum
|
||||||
|
move_dbbackup
|
||||||
|
check_exit_code move $target
|
||||||
|
post_dbbackup "${backup_job_db_name}"
|
||||||
|
;;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
backup_mysql() {
|
backup_mysql() {
|
||||||
|
|||||||
Reference in New Issue
Block a user