dump: global/per-base schema along with data
This commit is contained in:
parent
81177d63f5
commit
a5b553ab99
|
@ -169,32 +169,29 @@ dump_mysql_global() {
|
||||||
log "LOCAL_TASKS - stop ${dump_file}"
|
log "LOCAL_TASKS - stop ${dump_file}"
|
||||||
|
|
||||||
## Schema only (no data) for each databases
|
## Schema only (no data) for each databases
|
||||||
databases=$(mysql_list_databases "${option_port}")
|
local error_file="${errors_dir}/mysqldump.schema.err"
|
||||||
for database in ${databases}; do
|
local dump_file="${dump_dir}/mysqldump.schema.sql"
|
||||||
local error_file="${errors_dir}/${database}.schema.err"
|
log "LOCAL_TASKS - start ${dump_file}"
|
||||||
local dump_file="${dump_dir}/${database}.schema.sql"
|
|
||||||
log "LOCAL_TASKS - start ${dump_file}"
|
|
||||||
|
|
||||||
declare -a options
|
declare -a options
|
||||||
options=()
|
options=()
|
||||||
options+=(--defaults-extra-file=/etc/mysql/debian.cnf)
|
options+=(--defaults-extra-file=/etc/mysql/debian.cnf)
|
||||||
options+=(--port="${option_port}")
|
options+=(--port="${option_port}")
|
||||||
options+=(--force)
|
options+=(--force)
|
||||||
options+=(--no-data)
|
options+=(--no-data)
|
||||||
options+=(--databases "${database}")
|
options+=(--all-databases)
|
||||||
|
|
||||||
mysqldump "${options[@]}" 2> "${error_file}" > "${dump_file}"
|
mysqldump "${options[@]}" 2> "${error_file}" > "${dump_file}"
|
||||||
|
|
||||||
local last_rc=$?
|
local last_rc=$?
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
if [ ${last_rc} -ne 0 ]; then
|
if [ ${last_rc} -ne 0 ]; then
|
||||||
log_error "LOCAL_TASKS - mysqldump to ${dump_file} returned an error ${last_rc}" "${error_file}"
|
log_error "LOCAL_TASKS - mysqldump to ${dump_file} returned an error ${last_rc}" "${error_file}"
|
||||||
GLOBAL_RC=${E_DUMPFAILED}
|
GLOBAL_RC=${E_DUMPFAILED}
|
||||||
else
|
else
|
||||||
rm -f "${error_file}"
|
rm -f "${error_file}"
|
||||||
fi
|
fi
|
||||||
log "LOCAL_TASKS - stop ${dump_file}"
|
log "LOCAL_TASKS - stop ${dump_file}"
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
@ -245,6 +242,12 @@ dump_mysql_per_base() {
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
local dump_dir="${LOCAL_BACKUP_DIR}/mysql-per-base-${option_port}"
|
||||||
|
local errors_dir=$(errors_dir_from_dump_dir "${dump_dir}")
|
||||||
|
rm -rf "${dump_dir}" "${errors_dir}"
|
||||||
|
# shellcheck disable=SC2174
|
||||||
|
mkdir -p -m 700 "${dump_dir}" "${errors_dir}"
|
||||||
|
|
||||||
declare -a options
|
declare -a options
|
||||||
options=()
|
options=()
|
||||||
options+=(--defaults-extra-file=/etc/mysql/debian.cnf)
|
options+=(--defaults-extra-file=/etc/mysql/debian.cnf)
|
||||||
|
@ -255,12 +258,6 @@ dump_mysql_per_base() {
|
||||||
|
|
||||||
databases=$(mysql_list_databases "${option_port}")
|
databases=$(mysql_list_databases "${option_port}")
|
||||||
for database in ${databases}; do
|
for database in ${databases}; do
|
||||||
local dump_dir="${LOCAL_BACKUP_DIR}/mysql-per-base-${option_port}"
|
|
||||||
local errors_dir=$(errors_dir_from_dump_dir "${dump_dir}")
|
|
||||||
rm -rf "${dump_dir}" "${errors_dir}"
|
|
||||||
# shellcheck disable=SC2174
|
|
||||||
mkdir -p -m 700 "${dump_dir}" "${errors_dir}"
|
|
||||||
|
|
||||||
local error_file="${errors_dir}/${database}.err"
|
local error_file="${errors_dir}/${database}.err"
|
||||||
local dump_file="${dump_dir}/${database}.sql.gz"
|
local dump_file="${dump_dir}/${database}.sql.gz"
|
||||||
log "LOCAL_TASKS - start ${dump_file}"
|
log "LOCAL_TASKS - start ${dump_file}"
|
||||||
|
@ -277,6 +274,34 @@ dump_mysql_per_base() {
|
||||||
fi
|
fi
|
||||||
log "LOCAL_TASKS - stop ${dump_file}"
|
log "LOCAL_TASKS - stop ${dump_file}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
## Schema only (no data) for each databases
|
||||||
|
databases=$(mysql_list_databases "${option_port}")
|
||||||
|
for database in ${databases}; do
|
||||||
|
local error_file="${errors_dir}/${database}.schema.err"
|
||||||
|
local dump_file="${dump_dir}/${database}.schema.sql"
|
||||||
|
log "LOCAL_TASKS - start ${dump_file}"
|
||||||
|
|
||||||
|
declare -a options
|
||||||
|
options=()
|
||||||
|
options+=(--defaults-extra-file=/etc/mysql/debian.cnf)
|
||||||
|
options+=(--port="${option_port}")
|
||||||
|
options+=(--force)
|
||||||
|
options+=(--no-data)
|
||||||
|
options+=(--databases "${database}")
|
||||||
|
|
||||||
|
mysqldump "${options[@]}" 2> "${error_file}" > "${dump_file}"
|
||||||
|
|
||||||
|
local last_rc=$?
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
if [ ${last_rc} -ne 0 ]; then
|
||||||
|
log_error "LOCAL_TASKS - mysqldump to ${dump_file} returned an error ${last_rc}" "${error_file}"
|
||||||
|
GLOBAL_RC=${E_DUMPFAILED}
|
||||||
|
else
|
||||||
|
rm -f "${error_file}"
|
||||||
|
fi
|
||||||
|
log "LOCAL_TASKS - stop ${dump_file}"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
Loading…
Reference in a new issue