使用每表单个表空间
在使用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
如上所示每个表都有单独对应的表空间了