MariaDB backup: Difference between revisions

From Notes to self
Jump to navigation Jump to search
No edit summary
No edit summary
Line 18: Line 18:


* To restore full backup:
* To restore full backup:
:* # <code>mkdir /root/backupdb</code>
:* <code># mkdir /root/backupdb</code>
:* # <code>gunzip -c /usr/local/mysqlbackups/backup-XXXXXXXX.xb.gz | mbstream -x -C /root/backupdb</code>
:* <code># gunzip -c /usr/local/mysqlbackups/backup-XXXXXXXX.xb.gz | mbstream -x -C /root/backupdb</code>
:* # <code>mariabackup --prepare --target-dir=/root/backupdb</code>
:* <code># mariabackup --prepare --target-dir=/root/backupdb</code>
:* # <code>Ensure that the datadir (/var/lib/mysql) is empty</code>
:* <code># Ensure that the datadir (/var/lib/mysql) is empty</code>
:* # <code>/etc/rc.d/rc.mysqld stop</code>
:* <code># /etc/rc.d/rc.mysqld stop</code>
:* # <code>mariabackup --copy-back --target-dir=/root/backupdb</code>
:* <code># mariabackup --copy-back --target-dir=/root/backupdb</code>
:* # <code>chown -R mysql:mysql /var/lib/mysql</code>
:* <code># chown -R mysql:mysql /var/lib/mysql</code>
:* # <code>/etc/rc.d/rc.mysqld sta</code>
:* <code># /etc/rc.d/rc.mysqld sta</code>


* To restore a single database or even a single table, see [https://mariadb.com/resources/blog/how-to-restore-a-single-database-from-mariadb-backup/ here].
* To restore a single database or even a single table, see [https://mariadb.com/resources/blog/how-to-restore-a-single-database-from-mariadb-backup/ here].


[[Category:Linux]]
[[Category:Linux]]

Revision as of 18:20, 20 October 2022

  • /usr/local/sbin/mysql-backup
#!/bin/bash

TS=$(date '+%Y%m%d')
/usr/bin/mariabackup --user=root --backup --stream=xbstream \
    | gzip > /usr/local/mysqlbackups/backup-$TS.xb.gz || exit 1

TS=$(date -d "10 days ago" '+%Y%m%d')
rm -f /usr/local/mysqlbackups/backup-$TS.xb.gz
  • root's crontab:
# Run mysql backup at 4:00 every day
0 4 * * * chronic /usr/local/sbin/mysql-backup
  • To restore full backup:
  • # mkdir /root/backupdb
  • # gunzip -c /usr/local/mysqlbackups/backup-XXXXXXXX.xb.gz | mbstream -x -C /root/backupdb
  • # mariabackup --prepare --target-dir=/root/backupdb
  • # Ensure that the datadir (/var/lib/mysql) is empty
  • # /etc/rc.d/rc.mysqld stop
  • # mariabackup --copy-back --target-dir=/root/backupdb
  • # chown -R mysql:mysql /var/lib/mysql
  • # /etc/rc.d/rc.mysqld sta
  • To restore a single database or even a single table, see here.