日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DBA(二):percona软件、innobackupex备份与恢复

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DBA(二):percona软件、innobackupex备份与恢复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

percona軟件介紹

MySQL備份工具

常用的MySQL備份工具
  • 物理備份的缺點
  • 跨平臺性差
  • 備份時間長、冗余備份、浪費存儲空間
  • mysqldump備份的缺點
  • 效率較低、備份和還原速度慢、鎖表
  • 備份過程中,數據插入和更新操作被阻塞
XtraBackup工具
  • 開源,是一款強大的在線熱備份工具
  • 備份過程中不鎖庫表,適合生產環境
  • 由專業組織Percona提供(改進MySQL分支)
  • 主要包含兩個組件
  • xtrabackup:C程序,支持InnoDB/XtraDB
  • innobackupex:以Perl腳本封裝xtrabackup,還支持MyISAM
安裝percona

libev軟件
提取碼:mrt8
percona軟件包
提取碼:wnmo
libev軟件包可以直接使用rpm命令安裝
percona軟件要到下載軟件的目錄進行yum安裝,解決依賴

[root@host51 ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm [root@host51 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm [root@host51 ~]# which innobackupex /usr/bin/innobackupex
  • 查看安裝列表
[root@host51 ~]# rpm -ql percona-xtrabackup-24 /usr/bin/innobackupex //備份innodb、xtrdb、myisam引擎的表 /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup //備份innodb、xtrdb引擎的表 /usr/share/doc/percona-xtrabackup-24-2.4.7 /usr/share/doc/percona-xtrabackup-24-2.4.7/COPYING /usr/share/man/man1/innobackupex.1.gz /usr/share/man/man1/xbcrypt.1.gz / usr/share/man/man1/xbstream.1.gz /usr/share/man/man1/xtrabackup.1.gz
  • 查看命令幫助
[root@host51 ~]# innobackupex --help //常用選項 [root@host51 ~]# man innobackupex //詳細幫助
innobackupex命令
  • 常用選項
常用選項含義
–host主機名
–user用戶名
–port端口號
–password密碼
–databases數據庫名
–no-timestamp不用日期命名備份文件存儲的子目錄名
–redo-only日志合并
–apply-log準備恢復數據
–copy-log拷貝數據
–incremental 目錄名增量備份
–increment-basedir=目錄名增量備份時,制定上一次備份數據存儲的目錄名
–increment-dir=目錄名準備恢復數據時,指定增量備份數據存儲的目錄名
–export導出表信息
import導入表空間
--databases="庫名" //1個庫 --databases="庫1 庫2" //多個庫 --databases="庫1.表" //1張表
  • 命令格式
  • 完全備份
[root@host51 ~]# innobackupex --user 用戶名 --password 密碼 備份目錄名 --no-timestamp
  • 完全恢復
[root@host51 ~]# innobackupex --apply-log 目錄名 //準備恢復數據 [root@host51 ~]# innobackupex --copy-log 目錄名 //恢復數據
  • 增量備份
[root@host51 ~]# innobackupex --user 用戶名 --password 密碼 --incremental 增量目錄 --increment-basedir=目錄名 --no-timestamp
  • 增量恢復
[root@host51 ~]# innobackupex --apply-log --redo-only 目錄名 --no-timestamp //準備恢復數據 [root@host51 ~]# innobackupex --copy-back 目錄名 //恢復數據

innobackupex備份與恢復

完全備份與恢復

應用示例:在host51主機將所有信息備份,在host52主機做完全恢復,在備份的過程中不會對備份的表加鎖,但是要求必須在空庫下進行備份

準備環境: 首先!實驗的所有主機都一定要有percona軟件以及libev軟件 實驗將host51主機的庫還原成初始狀態的庫 創建一個新的用于實驗的庫 創建兩個存儲數據的表,分別瘋狂的寫入數據 在51主機上 mysql> drop database db1 ; drop database db2 ; drop database db3; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> create database gamedb; mysql> create table gamedb.a(id int); mysql> create table gamedb.b(name char(10)); mysql> insert into gamedb.a values(10); #多創建幾個 mysql> insert into gamedb.b values("bob"); #多創建幾個 mysql> select count(*) from gamedb.a ; +----------+ | count(*) | +----------+ | 10 | +----------+ 1 row in set (0.01 sec)mysql> select count(*) from gamedb.b ; +----------+ | count(*) | +----------+ | 11 | +----------+ 1 row in set (0.00 sec)mysql> select * from gamedb.a; +------+ | id | +------+ | 10 | | 11 | | 12 | | 100 | | 500 | | 566 | | 43 | | 4455 | | 4457 | | 3552 | +------+ 10 rows in set (0.00 sec)mysql> select * from gamedb.b; +--------+ | name | +--------+ | tian | | bob | | aaa | | bbb | | ccc | | sss | | ddd | | eee | | ffff | | gjkgjk | | fffghh | +--------+ 11 rows in set (0.00 sec)innobackupex --user root --password 123456 /fullbakrm -rf /fullbak/ innobackupex --user root --password 123456 /fullbak --no-timestamp ls /fullbak[root@host51 ~]# cat /fullbak/xtrabackup_checkpoints 記錄當前備份數據的類型和范圍 backup_type = full-backuped from_lsn = 0 to_lsn = 3010832 last_lsn = 3010841 compact = 0 recover_binlog_info = 0 [root@host51 ~]# scp -r /fullbak/ 192.168.4.52:/root在52主機上進行數據恢復,在52主機上也要有兩個軟件包 恢復數據的步驟: 1.關閉mysqld服務 2.刪除數據庫目錄下的所有,恢復數據時要求目錄為空 3.準備恢復數據 4.恢復數據 5.修改當前數據庫目錄的擁有者和所屬組為mysql 6.重啟服務 7.以root用戶登錄數據庫查看數據是否恢復成功 [root@host52 ~]# systemctl stop mysqld //關閉服務 [root@host52 ~]# rm -rf /var/lib/mysql/* //清空目錄下的所有,注意不要寫成mysql*,這樣會刪除兩個重要文件/mysql-files以及/mysql-keyring,這樣會導致后面的數據庫進不去喲!!!! [root@host52 ~]# ls /var/lib/mysql #此時該目錄下是空的 [root@host52 ~]# cat /root/fullbak/xtrabackup_checkpoints //該文件可以看到備份文件的類型以及備份的范圍 backup_type = full-backuped from_lsn = 0 to_lsn = 3010832 last_lsn = 3010841 compact = 0 recover_binlog_info = 0 [root@host52 ~]# ls /root/fullbak/ backup-my.cnf ib_logfile0 performance_schema xtrabackup_checkpoints gamedb ib_logfile1 sys xtrabackup_info ib_buffer_pool ibtmp1 xtrabackup_binlog_info xtrabackup_logfile ibdata1 mysql xtrabackup_binlog_pos_innodb [root@host52 ~]#innobackupex --apply-log /root/fullbak/ 準備恢復數據 [root@host52 ~]#cat /root/fullbak/xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 3010832 last_lsn = 3010841 compact = 0 recover_binlog_info = 0 [root@host52 ~]#ls /var/lib/mysql #此時是空的 [root@host52 ~]# innobackupex --copy-back /root/fullbak/ //恢復數據 [root@host52 ~]#ls /var/lib/mysql gamedb ib_logfile0 mysql xtrabackup_binlog_pos_innodb ib_buffer_pool ib_logfile1 performance_schema xtrabackup_info ibdata1 ibtmp1 sys [root@host52 ~]# ls -l /var/lib/mysql 總用量 122920 drwxr-x---. 2 root root 72 2月 19 17:24 gamedb -rw-r-----. 1 root root 480 2月 19 17:24 ib_buffer_pool -rw-r-----. 1 root root 12582912 2月 19 17:24 ibdata1 -rw-r-----. 1 root root 50331648 2月 19 17:24 ib_logfile0 -rw-r-----. 1 root root 50331648 2月 19 17:24 ib_logfile1 -rw-r-----. 1 root root 12582912 2月 19 17:24 ibtmp1 drwxr-x---. 2 root root 4096 2月 19 17:24 mysql drwxr-x---. 2 root root 8192 2月 19 17:24 performance_schema drwxr-x---. 2 root root 8192 2月 19 17:24 sys -rw-r-----. 1 root root 17 2月 19 17:24 xtrabackup_binlog_pos_innodb -rw-r-----. 1 root root 482 2月 19 17:24 xtrabackup_info [root@host52 ~]#chown -R mysql:mysql /var/lib/mysql [root@host52 ~]# ls -l /var/lib/mysql 總用量 122920 drwxr-x---. 2 mysql mysql 72 2月 19 02:46 gamedb -rw-r-----. 1 mysql mysql 480 2月 19 02:46 ib_buffer_pool -rw-r-----. 1 mysql mysql 12582912 2月 19 02:46 ibdata1 -rw-r-----. 1 mysql mysql 50331648 2月 19 02:46 ib_logfile0 -rw-r-----. 1 mysql mysql 50331648 2月 19 02:46 ib_logfile1 -rw-r-----. 1 mysql mysql 12582912 2月 19 02:46 ibtmp1 drwxr-x---. 2 mysql mysql 4096 2月 19 02:46 mysql drwxr-x---. 2 mysql mysql 8192 2月 19 02:46 performance_schema drwxr-x---. 2 mysql mysql 8192 2月 19 02:46 sys -rw-r-----. 1 mysql mysql 17 2月 19 02:46 xtrabackup_binlog_pos_innodb -rw-r-----. 1 mysql mysql 482 2月 19 02:46 xtrabackup_info[root@host52 ~]#systemctl restart mysqld [root@host52 ~]# mysql -uroot -p123456 mysql>show databases; +--------------------+ | Database | +--------------------+ | information_schema | | gamedb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.01 sec)mysql>select * from gamedb.a; +------+ | id | +------+ | 10 | | 11 | | 12 | | 100 | | 500 | | 566 | | 43 | | 4455 | | 4457 | | 3552 | +------+ 10 rows in set (0.07 sec)mysql>select * from gamedb.a; +--------+ | name | +--------+ | tian | | bob | | aaa | | bbb | | ccc | | sss | | ddd | | eee | | ffff | | gjkgjk | | fffghh | +--------+ 11 rows in set (0.01 sec) mysql> select count(*) from gamedb.b; +----------+ | count(*) | +----------+ | 11 | +----------+ 1 row in set (0.00 sec)mysql> select count(*) from gamedb.a; +----------+ | count(*) | +----------+ | 10 | +----------+ 1 row in set (0.00 sec)
恢復單張表
  • 操作步驟:
    1.刪除表空間
    2.導出表信息
    3.拷貝表信息文件到數據庫目錄下
    4.修改表信息文件的所有者以及組用戶為mysql
    5.導入表空間, 表空間:存儲數據的表文件(表名.ibd)
    6.刪除數據庫目錄下的表信息文件
    7.查看表記錄
  • 相關命令
mysql > alter table 庫名.表名 discard tablespace; //刪除表空間 ]# innobackupex --apply-log --export 數據庫完全備份目錄 //導出表信息 ]# cp 數據完全備份目錄/數據庫名目錄/表名.{ibd,cfg,exp} 數據庫目錄/庫名目錄 //拷貝信息文件 ]# chown mysql:mysql 數據庫目錄/庫名 //修改所有者所屬組 mysql > alter table 庫名.表名 import tablespace; //導入表空間 mysql > select * from 庫名.表名; //查看表記錄 ]# rm -rf 數據庫目錄/庫名/表名.{cfg,exp} //刪除表信息文件 在host52主機上模擬不小心刪除了gamedb庫下的b表,在host51主機上備份還原回數據 [root@host52 ~]# mysql -uroot -p123456mysql> select * from gamedb.b; +--------+ | name | +--------+ | tian | | bob | | aaa | | bbb | | ccc | | sss | | ddd | | eee | | ffff | | gjkgjk | | fffghh | +--------+ 11 rows in set (0.00 sec)mysql> delete from gamedb.b; Query OK, 11 rows affected (0.06 sec)mysql> select * from gamedb.b; Empty set (0.00 sec)mysql> show tables; +------------------+ | Tables_in_gamedb | +------------------+ | a | | b | | c | +------------------+ 3 rows in set (0.00 sec)[root@host52 ~]# mysql -uroot -p123456 mysql> delete from gamedb.b; #如果不小心將整個表drop掉了,一定要先重建一個同樣的表,以及同樣的表結構 Query OK, 11 rows affected (0.06 sec)mysql> select * from gamedb.b; Empty set (0.00 sec)mysql> create table gamedb.c(name char(10) ,sex enum("boy","girl")); Query OK, 0 rows affected (0.02 sec)[root@host52 ~]# ls /var/lib/mysql/gamedb a.frm a.ibd b.frm b.ibd c.frm c.ibd db.opt[root@host52 ~]# ls /root/fullbak/ backup-my.cnf ib_logfile0 performance_schema xtrabackup_checkpoints gamedb ib_logfile1 sys xtrabackup_info ib_buffer_pool ibtmp1 xtrabackup_binlog_info xtrabackup_logfile ibdata1 mysql xtrabackup_binlog_pos_innodb[root@host52 ~]# mysql -uroot -p123456 mysql> alter table gamedb.b discard tablespace; Query OK, 0 rows affected (0.00 sec)mysql> select * from gamedb.b; #提示沒有gamedb的b表的表空間 ERROR 1814 (HY000): Tablespace has been discarded for table 'b'[root@host52 ~]# cd /root/fullbak/ [root@host52 fullbak]# ls backup-my.cnf ib_logfile0 performance_schema xtrabackup_checkpoints gamedb ib_logfile1 sys xtrabackup_info ib_buffer_pool ibtmp1 xtrabackup_binlog_info xtrabackup_logfile ibdata1 mysql xtrabackup_binlog_pos_innodb [root@host52 fullbak]# ls gamedb/ a.frm a.ibd b.frm b.ibd db.opt [root@host52 fullbak]# innobackupex --apply-log --export /root/fullbak[root@host52 fullbak]# ls gamedb/ a.cfg a.exp a.frm a.ibd b.cfg b.exp b.frm b.ibd db.opt [root@host52 fullbak]# ls /var/lib/mysql auto.cnf ibdata1 ibtmp1 mysql.sock.lock xtrabackup_binlog_pos_innodb gamedb ib_logfile0 mysql performance_schema xtrabackup_info ib_buffer_pool ib_logfile1 mysql.sock sys [root@host52 fullbak]# cp /root/fullbak/gamedb/b.{cfg,exp,ibd} /var/lib/mysql/gamedb/[root@host52 fullbak]# ls -l /var/lib/mysql/gamedb/b.* -rw-r--r--. 1 root root 372 2月 19 18:16 /var/lib/mysql/gamedb/b.cfg -rw-r-----. 1 root root 16384 2月 19 18:16 /var/lib/mysql/gamedb/b.exp -rw-r-----. 1 mysql mysql 8560 2月 19 17:24 /var/lib/mysql/gamedb/b.frm -rw-r-----. 1 root root 98304 2月 19 18:16 /var/lib/mysql/gamedb/b.ibd[root@host52 fullbak]# chown mysql:mysql /var/lib/mysql/gamedb/b.*[root@host52 fullbak]# ls -l /var/lib/mysql/gamedb/b.* -rw-r--r--. 1 mysql mysql 372 2月 19 18:16 /var/lib/mysql/gamedb/b.cfg -rw-r-----. 1 mysql mysql 16384 2月 19 18:16 /var/lib/mysql/gamedb/b.exp -rw-r-----. 1 mysql mysql 8560 2月 19 17:24 /var/lib/mysql/gamedb/b.frm -rw-r-----. 1 mysql mysql 98304 2月 19 18:16 /var/lib/mysql/gamedb/b.ibd[root@host52 ~]# mysql -uroot -p123456 mysql> select * from gamedb.b; #此時依舊提示沒有gamedb的b表的表空間 ERROR 1814 (HY000): Tablespace has been discarded for table 'b'mysql> alter table gamedb.b import tablespace; Query OK, 0 rows affected (0.11 sec)mysql> select * from gamedb.b; +--------+ | name | +--------+ | tian | | bob | | aaa | | bbb | | ccc | | sss | | ddd | | eee | | ffff | | gjkgjk | | fffghh | +--------+ 11 rows in set (0.00 sec)[root@host52 fullbak]# rm -rf /var/lib/mysql/gamedb/b.exp [root@host52 fullbak]# rm -rf /var/lib/mysql/gamedb/b.cfg #要刪除.exp以及.cfg為結尾的文件,否則如果要刪除該表時會報錯數據庫目錄下有.cfg、.frm、.ibd、 .ibd 記錄數據的文件,存儲表記錄 .frm 存儲表結構 .exp、.cfg 存儲數據的備份信息,是二進制文件,是執行innobackupex生成的文件 每張表都一定會有表結構以及表記錄文件
增量備份與恢復
  • 增量備份:備份上次備份后,所有新產生的數據
  • 1.如何判斷所有的數據里,哪些是新產生的數據?
  • 2.從哪里開始備份新產生的數據?
  • 原理:
  • 每一個備份目錄下都會有一個xtrabackup_checkpoints記錄備份的類型和范圍,innobackupex在執行備份時,會對比完全備份后備份目錄中的last_lsn和當前的last_lsn進行對比,如果數據變大,則是新產生的數據
假如我們每天都會產生新的數據,可以在周一的時候做完全備份,周二至周日可以用mysqldump做增量備份或者差異備份,但mysqldump備份時會鎖表,不建議進行此操作,我們可以用innobackupex做增量備份,不會鎖表,但如果數據丟失,在進行恢復時一定要確保數據庫目錄是空的 模擬實驗環境,在host51上面做完全備份以及增量備份,在host54(192.168.4.54)上面做數據恢復做完全備份: [root@host51 ~]# innobackupex --user root --password 123456 /allbak --no-timestamp[root@host51 ~]# ls /allbak/ backup-my.cnf ibdata1 sys xtrabackup_info gamedb mysql xtrabackup_binlog_info xtrabackup_logfile ib_buffer_pool performance_schema xtrabackup_checkpoints [root@host51 ~]# cat /allbak/xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 3013326 last_lsn = 3013335 compact = 0 recover_binlog_info = 0 #LSN 日志序列號 #ib_logfile0 ib_logfile1 日志文件 #to_lsn是第一次備份后備份目錄下最后的值 #last_lsn是數據庫目錄下備份最后的值在host51上多寫入些記錄 mysql> select count(*) from gamedb.b; +----------+ | count(*) | +----------+ | 11 | +----------+ 1 row in set (0.00 sec)mysql> select count(*) from gamedb.a; +----------+ | count(*) | +----------+ | 10 | +----------+ 1 row in set (0.00 sec)mysql> insert into gamedb.a values(113); Query OK, 1 row affected (0.00 sec) mysql> insert into gamedb.b values("xxxx"); Query OK, 1 row affected (0.00 sec) mysql> select count(*) from gamedb.a; +----------+ | count(*) | +----------+ | 20 | +----------+ 1 row in set (0.00 sec)mysql> select count(*) from gamedb.b; +----------+ | count(*) | +----------+ | 22 | +----------+ 1 row in set (0.00 sec)mysql> show create table gamedb.b \G #默認是innodb存儲引擎 *************************** 1. row ***************************Table: b Create Table: CREATE TABLE `b` (`name` char(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)在host51上開始做增量備份: [root@host51 ~]# innobackupex --user root --password 123456 --incremental /onedir --incremental-basedir=/allbak --no-timestamp //進行增量備份 #--no-timestamp 不在指定的備份文件夾內創建子文件夾 [root@host51 ~]# ls /allbak/ backup-my.cnf ibdata1 sys xtrabackup_info gamedb mysql xtrabackup_binlog_info xtrabackup_logfile ib_buffer_pool performance_schema xtrabackup_checkpoints [root@host51 ~]# ls /onedir/ backup-my.cnf ibdata1.delta performance_schema xtrabackup_checkpoints gamedb ibdata1.meta sys xtrabackup_info ib_buffer_pool mysql xtrabackup_binlog_info xtrabackup_logfile[root@host51 ~]# cat /allbak/xtrabackup_checkpoints #查看此時備份的類型為完全備份 backup_type = full-backuped from_lsn = 0 to_lsn = 3013326 last_lsn = 3013335 compact = 0 recover_binlog_info = 0[root@host51 ~]# cat /onedir/xtrabackup_checkpoints #備份的開始是完全備份的結尾數據,類型是增量 backup_type = incremental from_lsn = 3013326 to_lsn = 3025984 last_lsn = 3025993 compact = 0 recover_binlog_info = 0[root@host51 ~]# innobackupex --user root --password 123456 --incremental /twodir --incremental-basedir=/onedir --no-timestamp #再次在host51上面寫數據,然后再次進行增量備份到twodir目錄 mysql> select count(*) from gamedb.a; +----------+ | count(*) | +----------+ | 30 | +----------+ 1 row in set (0.00 sec)mysql> select count(*) from gamedb.b; +----------+ | count(*) | +----------+ | 33 | +----------+ 1 row in set (0.00 sec)[root@host51 ~]# cat /onedir/xtrabackup_checkpoints backup_type = incremental from_lsn = 3013326 to_lsn = 3025984 last_lsn = 3025993 compact = 0 recover_binlog_info = 0 [root@host51 ~]# cat /twodir/xtrabackup_checkpoints backup_type = incremental from_lsn = 3025984 to_lsn = 3038542 last_lsn = 3038551 compact = 0 recover_binlog_info = 0增量恢復,在host54上做恢復 此時host54主機擁有allback+onedir+twodir首先停止數據庫服務 清空數據庫目錄 準備恢復數據 合并數據 把數據拷貝到數據庫目錄下 修改文件所有者用戶為mysql 啟動服務 管理員登錄查看數據[root@host51 ~]# scp -r /allbak/ root@192.168.4.54:/root [root@host51 ~]# scp -r /onedir/ root@192.168.4.54:/root [root@host51 ~]# scp -r /twodir/ root@192.168.4.54:/root [root@host54 ~]# ls allbak onedir twodir [root@host54 ~]# ss -nutlp | grep 3306 tcp LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=1095,fd=30)) [root@host54 ~]# systemctl stop mysqld[root@host54 ~]# rm -rf /var/lib/mysql/*[root@host54 ~]# ls /var/lib/mysql[root@host54 ~]# innobackupex --apply-log --redo-only /root/allbak [root@host54 ~]# cat /root/allbak/xtrabackup_checkpoints backup_type = log-applied from_lsn = 0 to_lsn = 3013326 last_lsn = 3013335 compact = 0 recover_binlog_info = 0 [root@host54 ~]# innobackupex --apply-log --redo-only /root/allbak/ --incremental-dir=/root/onedir [root@host54 ~]# cat /root/allbak/xtrabackup_checkpoints backup_type = log-applied from_lsn = 0 to_lsn = 3025984 last_lsn = 3025993 compact = 0 recover_binlog_info = 0 [root@host54 ~]# cat /root/onedir/xtrabackup_checkpoints backup_type = incremental from_lsn = 3013326 to_lsn = 3025984 last_lsn = 3025993 compact = 0 recover_binlog_info = 0 [root@host54 ~]# innobackupex --apply-log --redo-only /root/allbak/ --incremental-dir=/root/twodir [root@host54 ~]# cat /root/allbak/xtrabackup_checkpoints backup_type = log-applied from_lsn = 0 to_lsn = 3038542 last_lsn = 3038551 compact = 0 recover_binlog_info = 0 [root@host54 ~]# cat /root/twodir/xtrabackup_checkpoints backup_type = incremental from_lsn = 3025984 to_lsn = 3038542 last_lsn = 3038551 compact = 0 recover_binlog_info = 0[root@host54 ~]# innobackupex --copy-back /root/allbak/[root@host54 ~]# ls /var/lib/mysql gamedb ib_logfile0 performance_schema xtrabackup_info ib_buffer_pool ib_logfile1 sys ibdata1 mysql xtrabackup_binlog_pos_innodb[root@host54 ~]# ls -l /var/lib/mysql 總用量 110632 drwxr-x---. 2 root root 72 2月 19 21:33 gamedb -rw-r-----. 1 root root 587 2月 19 21:33 ib_buffer_pool -rw-r-----. 1 root root 12582912 2月 19 21:33 ibdata1 -rw-r-----. 1 root root 50331648 2月 19 21:33 ib_logfile0 -rw-r-----. 1 root root 50331648 2月 19 21:33 ib_logfile1 drwxr-x---. 2 root root 4096 2月 19 21:33 mysql drwxr-x---. 2 root root 8192 2月 19 21:33 performance_schema drwxr-x---. 2 root root 8192 2月 19 21:33 sys -rw-r-----. 1 root root 18 2月 19 21:33 xtrabackup_binlog_pos_innodb -rw-r-----. 1 root root 532 2月 19 21:33 xtrabackup_info[root@host54 ~]# chown -R mysql:mysql /var/lib/mysql[root@host54 ~]# ls -l /var/lib/mysql 總用量 110632 drwxr-x---. 2 mysql mysql 72 2月 19 21:33 gamedb -rw-r-----. 1 mysql mysql 587 2月 19 21:33 ib_buffer_pool -rw-r-----. 1 mysql mysql 12582912 2月 19 21:33 ibdata1 -rw-r-----. 1 mysql mysql 50331648 2月 19 21:33 ib_logfile0 -rw-r-----. 1 mysql mysql 50331648 2月 19 21:33 ib_logfile1 drwxr-x---. 2 mysql mysql 4096 2月 19 21:33 mysql drwxr-x---. 2 mysql mysql 8192 2月 19 21:33 performance_schema drwxr-x---. 2 mysql mysql 8192 2月 19 21:33 sys -rw-r-----. 1 mysql mysql 18 2月 19 21:33 xtrabackup_binlog_pos_innodb -rw-r-----. 1 mysql mysql 532 2月 19 21:33 xtrabackup_info [root@host54 ~]# systemctl start mysqld [root@host54 ~]# mysql -uroot -p123456 mysql> select count(*) from gamedb.a; +----------+ | count(*) | +----------+ | 30 | +----------+ 1 row in set (0.02 sec)mysql> select count(*) from gamedb.b; +----------+ | count(*) | +----------+ | 33 | +----------+ 1 row in set (0.00 sec)

總結

以上是生活随笔為你收集整理的DBA(二):percona软件、innobackupex备份与恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。