Fix sync backups files master -> slave

pull/38/head
Emilien Mantel 2019-12-28 14:11:45 +01:00
parent 5d444eec07
commit f6f29132a5
3 changed files with 30 additions and 19 deletions

View File

@ -29,8 +29,6 @@ Role Variables
### Configuration ### Configuration
- `mariadb_root_password`: root password (should be protected with [vault](http://docs.ansible.com/playbooks_vault.html))
If you need a feature you can't configure, you can use this list. These config will go to `/etc/mysql/conf.d/01-extra`. If you need a feature you can't configure, you can use this list. These config will go to `/etc/mysql/conf.d/01-extra`.
- `mariadb_extra_config`: key/value hash see [default vars file](defaults/main.yml) - `mariadb_extra_config`: key/value hash see [default vars file](defaults/main.yml)

4
Vagrantfile vendored
View File

@ -21,11 +21,11 @@ Vagrant.configure("2") do |config|
# Default replication # Default replication
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['master'] }, { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['master'] },
# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] }, { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] },
# Upstream replication # Upstream replication
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['master'] }, { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['master'] },
# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] }, { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] },
# Galera Debian # Galera Debian
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] }, { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] },

View File

@ -5,24 +5,32 @@
host: "{{ mariadb_slave_import_from }}" host: "{{ mariadb_slave_import_from }}"
port: 22 port: 22
- name: COMMAND | Prepare backup another server - block:
command: mariabackup --backup {{ mariadb_backup_dir }}
args:
creates: "{{ mariadb_backup_dir }}"
delegate_to: "{{ mariadb_slave_import_from }}"
register: backup
- name: SHELL | Dump - name: FILE | Create backup directory
shell: "mariabackup --prepare {{ mariadb_backup_dir }}" file:
delegate_to: "{{ mariadb_slave_import_from }}" path: "{{ mariadb_backup_dir }}"
when: backup.changed state: directory
- name: COMMAND | Prepare backup another server
command: "mariabackup --backup -u root --target-dir={{ mariadb_backup_dir }}"
args:
creates: "{{ mariadb_backup_dir }}/xtrabackup_info"
register: backup
- name: SHELL | Dump
shell: "mariabackup --prepare --target-dir={{ mariadb_backup_dir }}"
when: backup.changed
register: prep
changed_when: "'This target seems to be not prepared yet' in prep.stderr"
- name: FILE | Remove mysql db from backup
file:
path: "{{ mariadb_backup_dir }}/mysql"
state: absent
when: backup.changed and not mariadb_slave_replicate_mysqldb
- name: FILE | Remove mysql db from backup
file:
path: "{{ mariadb_backup_dir }}/mysql"
state: absent
delegate_to: "{{ mariadb_slave_import_from }}" delegate_to: "{{ mariadb_slave_import_from }}"
when: backup.changed and not mariadb_slave_replicate_mysqldb
- name: MYSQL_VARIABLES | Get datadir - name: MYSQL_VARIABLES | Get datadir
mysql_variables: mysql_variables:
@ -52,6 +60,11 @@
group: mysql group: mysql
recurse: yes recurse: yes
- name: SHELL | Remove InnoDB redo logs
shell: "rm -f {{ mariadb_datadir }}/ib_logfile*"
args:
removes: "{{ mariadb_datadir }}/ib_logfile0"
- name: SERVICE | Start MariaDB - name: SERVICE | Start MariaDB
service: service:
name: mysql name: mysql