可以使用Xtrabackup工具僅僅對某幾張表進(jìn)行數(shù)據(jù)恢復(fù)。
10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有確山免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
實(shí)驗(yàn)場景:
端口3306的實(shí)例上有一張表t3,而端口3308的實(shí)例上沒有。實(shí)驗(yàn)?zāi)康膶⒍丝?306的t3表恢復(fù)到端口3308的實(shí)例上。
步驟:
1、確保端口3306的實(shí)例的配置文件my.cnf中有設(shè)置如下參數(shù):
InnoDB_FAST_SHUTDOWN = 0 --此參數(shù)MySQL在關(guān)閉的時(shí)候,需要完成所有的full purge和merge insert buffer操作.
InnoDB_File_Per_Table = ON --此參數(shù)修改InnoDB為獨(dú)立表空間模式,每個(gè)數(shù)據(jù)庫的每個(gè)表都會(huì)生成一個(gè)數(shù)據(jù)空間.
2、備份
a) innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=root --socket=/usr/local/mysql/mysql.sock --include='lxm.t3' --export /tmp/backup/
命令執(zhí)行結(jié)束后,查看備份文件
[root@single1 lxm]# pwd
/tmp/backup/2016-08-30_16-34-50/lxm
[root@single1 lxm]# ls -l
total 108
-rw-r-----. 1 root root 10684 Aug 30 16:34 t3.frm
-rw-r-----. 1 root root 98304 Aug 30 16:34 t3.ibd
b) 備份完成之后應(yīng)用日志使備份保持一致性
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=root --socket=/usr/local/mysql/mysql.sock --apply-log --export /tmp/backup/2016-08-30_16-34-50/
命令執(zhí)行結(jié)束后,查看備份文件
[root@single1 lxm]# pwd
/tmp/backup/2016-08-30_16-34-50/lxm
[root@single1 lxm]# ls -l
total 128
-rw-r--r--. 1 root root 3378 Aug 30 16:36 t3.cfg
-rw-r-----. 1 root root 16384 Aug 30 16:36 t3.exp
-rw-r-----. 1 root root 10684 Aug 30 16:34 t3.frm
-rw-r-----. 1 root root 98304 Aug 30 16:34 t3.ibd
可以看出多了兩個(gè)文件:t3.cfg和t3.exp。exp文件適用于percona server,cfg適用于mariadb和mysql。mariadb 10.0可以直接通過ibd和frm文件import。mysql 5.6之后可以不使用cfg來進(jìn)行import,cfg如果存在會(huì)被用來做表結(jié)構(gòu)的驗(yàn)證。
3、在目標(biāo)實(shí)例上創(chuàng)建一個(gè)和源實(shí)例中的t3表一模一樣的表
源實(shí)例查看t3表的表結(jié)構(gòu)創(chuàng)建語句:
mysql -S /usr/local/mysql/mysql.sock -P 3306 -uroot -p
mysql> show create table t3\G;
*************************** 1. row ***************************
Table: t3
Create Table: CREATE TABLE `t3` (
`Host` char(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
。。。。。。。。。省略。。。。。。。。。。。。。
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.14 sec)
目標(biāo)實(shí)例創(chuàng)建表t3:
mysql -S /usr/local/mysql3308/mysql.sock -P 3308 -uroot -p
mysql> use lxm;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> CREATE TABLE `t3` (
-> `Host` char(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
-> `User` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
-> `Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-> 。。。。。。。。。。省略。。。。。。。。。。。。。
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.05 sec)
4、目標(biāo)實(shí)例 discard表空間
在 discard表空間之前,mysql3308的 t3 表數(shù)據(jù)文件如下:
[root@single1 lxm]# ls -l
total 112
-rw-rw----. 1 mysql mysql 61 Aug 30 17:09 db.opt
-rw-rw----. 1 mysql mysql 10684 Aug 30 17:09 t3.frm
-rw-rw----. 1 mysql mysql 98304 Aug 30 17:09 t3.ibd
discard表空間:
mysql -S /usr/local/mysql3308/mysql.sock -P 3308 -uroot -p
mysql> ALTER TABLE t3 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+---------------+
| Tables_in_lxm |
+---------------+
| t3 |
+---------------+
1 row in set (0.00 sec)
在 discard 表空間之后,mysql3308的 t3 表數(shù)據(jù)文件如下:
[root@single1 lxm]# ls -l
total 16
-rw-rw----. 1 mysql mysql 61 Aug 30 17:09 db.opt
-rw-rw----. 1 mysql mysql 10684 Aug 30 17:09 t3.frm
5、將備份文件中的 t3.idb 和 t3.cfg 文件拷貝到目標(biāo)實(shí)例的數(shù)據(jù)文件路徑中:
cp -r /tmp/backup/2016-08-30_16-34-50/lxm/t3.cfg /usr/local/mysql3308/data/lxm/
cp -r /tmp/backup/2016-08-30_16-34-50/lxm/t3.ibd /usr/local/mysql3308/data/lxm/
修改 t3.idb 和 t3.cfg 文件的屬組為mysql:
chown mysql:mysql t3.cfg
chown mysql:mysql t3.ibd
6、import表
mysql -S /usr/local/mysql3308/mysql.sock -P 3308 -uroot -p
mysql> ALTER TABLE t3 IMPORT TABLESPACE;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+---------------+
| Tables_in_lxm |
+---------------+
| t3 |
+---------------+
1 row in set (0.00 sec)
mysql> select count(1) from t3;
+----------+
| count(1) |
+----------+
| 14 |
+----------+
1 row in set (0.00 sec)
備注:有三種方式可以指定要備份的表。
1、--include:設(shè)置正則表達(dá)式的格式,匹配的就備份。該選項(xiàng)傳遞給xtrabackup --tables,對每個(gè)庫中的每個(gè)表逐一匹配。
2、--table-file:在文件中指定要備份的表,然后通過這個(gè)選項(xiàng)傳入文件。該選項(xiàng)傳遞給xtrabackup --tables-file,與--table選項(xiàng)不同,只有要備份的表的庫才會(huì)被創(chuàng)建。
3、--database:指定數(shù)據(jù)庫列表。:--databasees選項(xiàng)只會(huì)對非innodb引擎表和frm文件產(chǎn)生影響,對于innodb數(shù)據(jù)文件總是備份的。
文章名稱:XtraBackup部分備份
文章來源:http://www.rwnh.cn/article6/gopgig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制開發(fā)、、網(wǎng)頁設(shè)計(jì)公司、電子商務(wù)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)