Merge "Introduce Percona XtraBackup image"
This commit is contained in:
commit
9b0f15bf4c
|
@ -63,15 +63,17 @@ COPY yum.conf /etc/yum.conf
|
|||
'influxdb.repo',
|
||||
'nfs_ganesha.repo',
|
||||
'opendaylight.repo',
|
||||
'td.repo',
|
||||
'rabbitmq_rabbitmq-server.repo'
|
||||
'percona-release.repo',
|
||||
'rabbitmq_rabbitmq-server.repo',
|
||||
'td.repo'
|
||||
] %}
|
||||
|
||||
{% set base_yum_repo_keys = [
|
||||
'https://artifacts.elastic.co/GPG-KEY-elasticsearch',
|
||||
'https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana',
|
||||
'https://repos.influxdata.com/influxdb.key',
|
||||
'https://packagecloud.io/gpg.key',
|
||||
'https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana',
|
||||
'https://www.percona.com/downloads/RPM-GPG-KEY-percona',
|
||||
'https://packages.treasuredata.com/GPG-KEY-td-agent'
|
||||
] %}
|
||||
{% endif %}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
# Lower the priority of packages from Percona's repos
|
||||
Package: *
|
||||
Pin: origin repo.percona.com
|
||||
Pin-Priority: 100
|
|
@ -2,3 +2,8 @@
|
|||
Package: ceph* *cephfs* librbd* *rados* python-rbd librgw*
|
||||
Pin: version 13.*
|
||||
Pin-Priority: -1
|
||||
|
||||
# Lower the priority of packages from Percona's repos
|
||||
Package: *
|
||||
Pin: origin repo.percona.com
|
||||
Pin-Priority: 100
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
[percona-release-$basearch]
|
||||
name = Percona-Release YUM repository - $basearch
|
||||
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
|
||||
enabled = 0
|
||||
gpgcheck = 1
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
|
||||
|
||||
[percona-release-noarch]
|
||||
name = Percona-Release YUM repository - noarch
|
||||
baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
|
||||
enabled = 0
|
||||
gpgcheck = 1
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
|
|
@ -15,3 +15,7 @@ deb [arch=amd64] https://artifacts.elastic.co/packages/5.x/apt stable main
|
|||
|
||||
# main docker repo
|
||||
deb https://download.docker.com/linux/debian stretch stable
|
||||
|
||||
# Percona XtraBackup repo
|
||||
deb http://repo.percona.com/apt stretch main
|
||||
|
||||
|
|
|
@ -35,3 +35,6 @@ deb http://ppa.launchpad.net/odl-team/carbon/ubuntu xenial main
|
|||
|
||||
# rabbitmq repo
|
||||
deb https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu/ xenial main
|
||||
|
||||
# Percona XtraBackup repo
|
||||
deb http://repo.percona.com/apt bionic main
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
|
||||
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
|
||||
|
||||
{% block xtrabackup_header %}{% endblock %}
|
||||
|
||||
{% import "macros.j2" as macros with context %}
|
||||
|
||||
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
|
||||
RUN yum-config-manager --enable percona\*
|
||||
{% endif %}
|
||||
|
||||
{% if base_distro in ['centos', 'oraclelinux', 'rhel', 'ubuntu', 'debian'] %}
|
||||
{% set xtrabackup_packages = ['percona-xtrabackup-24', 'qpress'] %}
|
||||
{% endif %}
|
||||
|
||||
{{ macros.install_packages(xtrabackup_packages | customizable("packages")) }}
|
||||
|
||||
COPY backup.sh /usr/local/bin/kolla_mariadb_backup.sh
|
||||
RUN chmod 755 /usr/local/bin/kolla_mariadb_backup.sh
|
||||
|
||||
CMD /usr/local/bin/kolla_mariadb_backup.sh
|
||||
|
||||
{% block xtrabackup_footer %}{% endblock %}
|
||||
{% block footer %}{% endblock %}
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eu
|
||||
|
||||
# Execute a full backup
|
||||
backup_full() {
|
||||
echo "Taking a full backup"
|
||||
innobackupex --defaults-file=/etc/mysql/my.cnf \
|
||||
--no-timestamp \
|
||||
--stream=xbstream \
|
||||
--compress \
|
||||
--history=$(date +%d-%m-%Y) ./ > \
|
||||
$BACKUP_DIR/mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs
|
||||
}
|
||||
|
||||
# Execute an incremental backup
|
||||
backup_incremental() {
|
||||
echo "Taking an incremental backup"
|
||||
innobackupex --defaults-file=/etc/mysql/my.cnf \
|
||||
--no-timestamp \
|
||||
--stream=xbstream \
|
||||
--compress \
|
||||
--incremental \
|
||||
--incremental-history-name=$(date +%d-%m-%Y) \
|
||||
--history=$(date +%d-%m-%Y) ./ > \
|
||||
$BACKUP_DIR/incremental-$(date +%H)-mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs
|
||||
}
|
||||
|
||||
BACKUP_DIR=/backup/
|
||||
cd $BACKUP_DIR
|
||||
|
||||
if [ -n $BACKUP_TYPE ]; then
|
||||
case $BACKUP_TYPE in
|
||||
"full")
|
||||
backup_full
|
||||
;;
|
||||
"incremental")
|
||||
backup_incremental
|
||||
;;
|
||||
*)
|
||||
echo "Only full or incremental options are supported."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "You need to specify either full or incremental backup options."
|
||||
exit 1
|
||||
fi
|
||||
|
Loading…
Reference in New Issue