aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorabraden <C-Albert.Braden@charter.com>2020-10-15 19:02:43 +0000
committerRadosław Piliszek <radoslaw.piliszek@gmail.com>2020-10-23 19:31:33 +0000
commitccfe65b5f7fe437141f342421488c176038fddb0 (patch)
treecca433098ce00996af9c242cc6749902afe83cba
parent2e094adbbb128c06fdd32fea4c06ef86db1490d6 (diff)
downloadkolla-ccfe65b5f7fe437141f342421488c176038fddb0.tar.gz
kolla-ccfe65b5f7fe437141f342421488c176038fddb0.zip
mariadb: Fixes incremental backup failure when full not created today
backup_full() saves the history name in $BACKUP_DIR/last_full_date. backup_incremental() attempts to read from $BACKUP_DIR/last_full_date into $LAST_FULL_DATE. After the read attempt; if $LAST_FULL_DATE is zero length then $(date +%d-%m-%Y) is used. Change-Id: I4172b814d5d95ae3debbc1cf3feaeee2e2bec9bd Closes-bug: 1897948
-rw-r--r--docker/mariadb/mariadb-server/backup.sh14
-rw-r--r--docker/mariadb/mariadb/backup.sh14
-rw-r--r--releasenotes/notes/bug-1897948-a0eb6d890eea8061.yaml6
3 files changed, 28 insertions, 6 deletions
diff --git a/docker/mariadb/mariadb-server/backup.sh b/docker/mariadb/mariadb-server/backup.sh
index e56450171..30796fa4e 100644
--- a/docker/mariadb/mariadb-server/backup.sh
+++ b/docker/mariadb/mariadb-server/backup.sh
@@ -6,23 +6,31 @@ set -o pipefail
# Execute a full backup
backup_full() {
echo "Taking a full backup"
+ LAST_FULL_DATE=$(date +%d-%m-%Y)
mariabackup \
--defaults-file=/etc/mysql/my.cnf \
--backup \
--stream=xbstream \
- --history=$(date +%d-%m-%Y) | gzip > \
+ --history=$LAST_FULL_DATE | gzip > \
$BACKUP_DIR/mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz
+ echo $LAST_FULL_DATE > $BACKUP_DIR/last_full_date
}
# Execute an incremental backup
backup_incremental() {
echo "Taking an incremental backup"
+ if [ -r $BACKUP_DIR/last_full_date ]; then
+ LAST_FULL_DATE=$(cat $BACKUP_DIR/last_full_date)
+ fi
+ if [ -z $LAST_FULL_DATE ]; then
+ LAST_FULL_DATE=$(date +%d-%m-%Y)
+ fi
mariabackup \
--defaults-file=/etc/mysql/my.cnf \
--backup \
--stream=xbstream \
- --incremental-history-name=$(date +%d-%m-%Y) \
- --history=$(date +%d-%m-%Y) | gzip > \
+ --incremental-history-name=$LAST_FULL_DATE \
+ --history=$LAST_FULL_DATE | gzip > \
$BACKUP_DIR/incremental-$(date +%H)-mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz
}
diff --git a/docker/mariadb/mariadb/backup.sh b/docker/mariadb/mariadb/backup.sh
index e56450171..30796fa4e 100644
--- a/docker/mariadb/mariadb/backup.sh
+++ b/docker/mariadb/mariadb/backup.sh
@@ -6,23 +6,31 @@ set -o pipefail
# Execute a full backup
backup_full() {
echo "Taking a full backup"
+ LAST_FULL_DATE=$(date +%d-%m-%Y)
mariabackup \
--defaults-file=/etc/mysql/my.cnf \
--backup \
--stream=xbstream \
- --history=$(date +%d-%m-%Y) | gzip > \
+ --history=$LAST_FULL_DATE | gzip > \
$BACKUP_DIR/mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz
+ echo $LAST_FULL_DATE > $BACKUP_DIR/last_full_date
}
# Execute an incremental backup
backup_incremental() {
echo "Taking an incremental backup"
+ if [ -r $BACKUP_DIR/last_full_date ]; then
+ LAST_FULL_DATE=$(cat $BACKUP_DIR/last_full_date)
+ fi
+ if [ -z $LAST_FULL_DATE ]; then
+ LAST_FULL_DATE=$(date +%d-%m-%Y)
+ fi
mariabackup \
--defaults-file=/etc/mysql/my.cnf \
--backup \
--stream=xbstream \
- --incremental-history-name=$(date +%d-%m-%Y) \
- --history=$(date +%d-%m-%Y) | gzip > \
+ --incremental-history-name=$LAST_FULL_DATE \
+ --history=$LAST_FULL_DATE | gzip > \
$BACKUP_DIR/incremental-$(date +%H)-mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz
}
diff --git a/releasenotes/notes/bug-1897948-a0eb6d890eea8061.yaml b/releasenotes/notes/bug-1897948-a0eb6d890eea8061.yaml
new file mode 100644
index 000000000..353130204
--- /dev/null
+++ b/releasenotes/notes/bug-1897948-a0eb6d890eea8061.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixes MariaDB incremental backup failure when full
+ backup was not created the same day.
+ `LP#1897948 <https://launchpad.net/bugs/1897948>`__