xtrabackup備份mysql以及建立自動定時任務
安裝依賴關係
wget -O /etc/yum.repos.d/epel.repo yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
下載軟體包,並安裝軟體
wget yum -y install percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
建立備份帳號
grant all on *.* to smile@'localhost' identified by '123456';
FLUSH PRIVILEGES;
建立備份目錄
mkdir /data/mysqlbackup -p
備份
先進行第一次全備
innobackupex --defaults-file=/etc/my.cnf --user=smile --password=123456 --socket=/data/mysql/mysql.sock --no-timestamp /data/mysqlbackup/xfull
第一次增備
innobackupex --user=smile --password=123456 --incremental --no-timestamp --incremental-basedir=/data/mysqlbackup/xfull /data/mysqlbackup/xinc1
第二次增備
innobackupex --user=smile --password=123456 --incremental --no-timestamp --incremental-basedir=/data/mysqlbackup/xinc1 /data/mysqlbackup/xinc2
引數說明:
--incremental:開啟增量備份功能
--incremental-basedir:上一次備份的路徑
恢復準備
恢復前準備
恢復資料前的準備(合併xtabackup_log_file和備份的物理檔案)
將redo進行重做,已提交的寫到資料檔案,未提交的使用undo回滾,模擬CSR的過程
第一步:先應用全備日誌(--apply-log,在全備中apply-log時,只應用redo,不應用undo)
innobackupex --apply-log --redo-only /data/mysqlbackup/xfull/
第二步:合併增量到全備中xinc1到full中,並且apply-log,只應用redo,不應用undo
innobackupex --apply-log --redo-only --incremental-dir=/data/mysqlbackup/xinc1 /data/mysqlbackup/xfull/
第三步:合併增量到全備中xinc2到full中,redo和undo都應用
innobackupex --apply-log --incremental-dir=/data/mysqlbackup/xinc2 /data/mysqlbackup/xfull/
第四步:整體full執行apply-log,redo和undo都應用
innobackupex --apply-log /data/mysqlbackup/xfull/
使用innobackupex命令進行恢復
innobackupex --copy-back /data/mysqlbackup/xfull/
授權:chown -R mysql:mysql /data/mysql
啟動資料庫
systemctl start mysqld
如果啟動時出現如下兩種報錯:
錯誤1:
2019-06-10T11:42:10.068237+08:00 0 [ERROR] InnoDB: Unable to open undo tablespace './/undo001'.
2019-06-10T11:42:10.068267+08:00 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-06-10T11:42:10.668794+08:00 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-06-10T11:42:10.668841+08:00 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-06-10T11:42:10.668848+08:00 0 [ERROR] Failed to initialize builtin plugins.
2019-06-10T11:42:10.668862+08:00 0 [ERROR] Aborting
2019-06-10T11:42:10.033459+08:00 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.7.26-log) starting as process
錯誤2:
2019-06-10T11:42:10.068237+08:00 0 [ERROR] InnoDB: Unable to open undo tablespace './/undo001'.
2019-06-10T11:42:10.068267+08:00 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-06-10T11:42:10.668794+08:00 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-06-10T11:42:10.668841+08:00 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-06-10T11:42:10.668848+08:00 0 [ERROR] Failed to initialize builtin plugins.
2019-06-10T11:42:10.668862+08:00 0 [ERROR] Aborting
到資料目錄下刪除redo undo日誌
rm -f ib_*
rm -f ibdata1 ibtmp1
如果不想這樣可以在my.cnf中加入如下配置,但加入需要重新初始化:
innodb_max_undo_log_size = 128M
innodb_undo_log_truncate = ON
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_purge_rseg_truncate_frequency = 10
做完如上配置後,如果你的資料庫不大,可以每天進行一次全備份,備份指令碼如下:
[root@db ~]# cat /server/script/mysql_full_backup.sh
time="$(date +"back_%Y-%m-%d-%H-%M-%S")"
innobackupex --defaults-file=/etc/my.cnf --user=mha --host=172.x.x.4 --password=123456 --socket=/server/mysql/mysqldir/mysql.sock --no-timestamp /server/mysqlbackup/xfull_${time} &>/dev/null
自動備份任務:
[root@db ~]# crontab -l
0 1 * * * sh /server/script/mysql_full_backup.sh
每天凌晨1點整執行備份指令碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000068/viewspace-2773034/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL定時任務-定時清除備份資料MySql
- Linux下Mysql定時自動備份LinuxMySql
- MySQL:xtrabackup備份MySql
- RMAN自動備份任務新增
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- MySQL 定時備份MySql
- 使用Xtrabackup遠端備份MysqlMySql
- mysql 建立定時任務MySql
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- xtrabackup備份mysql“ib_logfile0 is ofMySql
- MySQL 定時增量備份MySql
- MYSQL定時備份(一)MySql
- 如何建立systemd定時任務
- Linux自動備份MySQLLinuxMySql
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- 【MySQL】xtrabackup 2.4.12備份觸發的bugMySql
- MySQL Backup--Xtrabackup備份限速問題MySql
- Xtrabackup增量備份
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 【Xtrabackup】Xtrabackup備份基礎知識
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- 定時備份MySQL資料庫MySql資料庫
- gitlab自動定時備份檔案,備份失敗傳送郵件Gitlab
- Laravel 定時任務以及 cronrab 安裝Laravel
- Laravel 定時任務以及 crontab 安裝Laravel
- Xtrabackup全量備份
- Go實戰準備工作---建立攜程池和定時任務Go
- Go實戰準備工作---建立協程池和定時任務Go
- Mysql資料庫自動備份MySql資料庫
- Mysql定時備份資料指令碼MySql指令碼
- 實戰-MySQL定時增量備份(2)MySql
- 如何使用Choerodon LDAP以及配置定時任務LDA
- MySQL運維實戰之備份和恢復(8.1)xtrabackup全量備份MySql運維
- 【RMAN】同時建立多個備份(建立多重備份)
- 備份任務實戰
- 用友U8設定了自動備份,備份失效
- 實戰-MySQL定時全量備份(1)MySql
- linux mysql定時備份指令碼記錄LinuxMySql指令碼