前序
对于用户自主创建的表,会采用此种模式,每个表由一个独立的表空间进行管理备份(速度相当的猛)
首先介绍一下文件
.ibd就被称之为独立表空间的数据文件
.frm就是元数据文件 就是创建表后生成的
独立表空间可以通过开关控制,默认状态查询一下
show
var
iables like
'%per_table%'
;
环境
实例
mysql1:
192.168
.
137.176
mysql2:
192.168
.
137.180
mysql版本
mysql
5.7
.
22
数据库/表
zskdb/cas_user
实践
137.180 原始数据(旧机器)
137.176 新数据(新机器)
目的: 把就机器的数据全部迁移到新机器176上面。
192.168.137.180
先导出数据表结构
[root@localhost cheng]
# mysqldump -u root -p123456 --add-locks -q -d zskdb > /home/cheng/cas_user.sql
2.备份cas_user.idb文件到相关目录
cp
/data/mysql/zskdb/cas_user
.ibd ./
3.把备份文件传输到137.176上面
[root@localhost cheng]
#
scp cas_user.* root@192.168.137.176:/home/cheng
192.168.137.176
1.验证
保证文件在传输过程中没有收到破坏。
2.创建数据库
CREATE DATABASE `zskdb` CHARACTER SET utf8 COLLATE utf8_general_ci;
3.导入表结构
source
/home/cheng/cas_user
.sql
表中是没有数据的,验证一下
mysql> show tables;
4.删除表空间
mysql> alter table zskdb.cas_user discard tablespace;
5.把刚才备份的idb文件丢上来(扔到当前数据库表目录文件夹), 授权用户/组
cp
cas_user.ibd
/data/mysql/zskdb/
;
chown
-R mysql:mysql
/data/mysql/zskdb/
6.重新赋予表空间
alter table zskdb.cas_user
import
tablespace;
7.现在数据已经全部扔进去了, 验证一下
mysql>
select
count(1) from zskdb.cas_user;
成功!!
发表评论