使用每表單個表空間
在使用xtrabackup之前,我們需要查看我們當前mysql是否是使用每表單個表空間,如果不是則必須將其修改爲每表單獨表空間
mysql> show global variables like '%innodb_file_p%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF |
+-----------------------+-------+
1 row in set (0.00 sec)
這裏是關閉狀態,由此我們要啓動這個功能,將來一旦要用到xtrabackup或各種高級功能的話建議剛安裝mysql的時候直接將默認配置去寫進配置文件,中途再更改的話會非常麻煩,好在我們是測試環境,需能將數據導出更改配置再進行導入
[root@test2 ~]#mysqldump -uroot --lock-all-tables --all-databases --master-data=2 --events> ./1.sql
關閉數據庫
[root@test2 ~]#/etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
編輯配置文件加入以下參數
[root@test2 ~]# vim/etc/my.cnf
innodb_file_per_table= 1
而後刪除數據文件並重新初始化
[root@test2 data]#pwd
/mydata/data
刪除所有數據文件
[root@test2 data]# rm -fr *
初始化mysql
[root@test mysql]#pwd
/usr/local/mysql
[root@test mysql]# scripts/mysql_install_db --user=mysql--datadir=/mydata/data/ --basedir=/usr/local/mysql/
[root@test mysql]#/etc/init.d/mysqld start
再次查看是否是每表單獨表空間
mysql> showglobal variables like '%innodb_file_per%';
+-----------------------+-------+
|Variable_name | Value |
+-----------------------+-------+
|innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00sec)
恢復數據
m ysql> source~/1.sql
[root@test2 data]#ll wpdb/
total 220
-rw-r--r--. 1 mysqlmysql 61 Apr 6 11:05 db.opt
-rw-r--r--.1 mysql mysql 8646 Apr 6 11:05 students.frm
-rw-r--r--.1 mysql mysql 98304 Apr 6 11:05students.ibd
-rw-r--r--. 1 mysql mysql 8556 Apr 6 11:05 tb4.frm
-rw-r--r--. 1 mysql mysql 98304 Apr 6 11:05 tb4.ibd
如上所示每個表都有單獨對應的表空間了