MySQL Innodb表空间卸载和迁移案例
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,需求:两台服务器A(192.168.1.1)和服务器B(192.168.1.2)数据目录都为:/usr/local/mysql/data现在想把A服务器上/usr/local/mysql/data下的
千家信息网最后更新 2025年11月08日MySQL Innodb表空间卸载和迁移案例需求:
两台服务器A(192.168.1.1)和服务器B(192.168.1.2)
数据目录都为:/usr/local/mysql/data
现在想把A服务器上/usr/local/mysql/data下的chenfeng数据库迁移到B服务器上,只迁移chenfeng库,其他数据库不动。
步骤如下:
在服务器B上:
建库:
mysql> create database chenfeng;
Query OK, 1 row affected (0.02 sec)
创建和服务器A上一模一样的表:
mysql>use chenfeng
mysql> CREATE TABLE `accident` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `accidentContent` varchar(4000) DEFAULT NULL COMMENT '事故全称',
-> `accidentDate` datetime DEFAULT NULL COMMENT '事故发生时间',
-> `accidentType` int(2) DEFAULT NULL COMMENT '事故类型(1. 火灾事故 2. 爆炸事故 3. 中毒和窒息事故 4. 灼伤事故 5. 泄漏事故 6. 其它危化品事故)',
-> `accidentLevel` int(11) DEFAULT NULL COMMENT '事故等级(1. 一般事故 2. 较大事故 3. 重大事故 4. 特别重大事故)',
-> `companyId` int(11) DEFAULT NULL COMMENT '涉事企业id',
-> `accidentLocation` varchar(255) DEFAULT NULL COMMENT '事故发生位置(省、市、县)',
-> `accidentHarm` varchar(255) DEFAULT NULL COMMENT '事故伤亡(X人死亡,Y人受伤,Z人失踪)',
-> `accidentCause` varchar(255) DEFAULT NULL COMMENT '事故原因',
-> `lng` double(22,7) DEFAULT NULL COMMENT '经度',
-> `lat` double(22,7) DEFAULT NULL COMMENT '纬度',
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;
卸载chenfeng表空间文件:
mysql> alter table accident discard tablespace;
Query OK, 0 rows affected (0.15 sec)
警告:这个语句删除当前.ibd文件。
在服务器A上:
锁表:
mysql(mdba@localhost:chenfeng 06:57:27)>flush tables accident for export;
Query OK, 0 rows affected (0.00 sec)
备注:此命令使.ibd文件保持一致的状态
复制数据文件:
把A服务器表的表空间(ibd)所有文件复制到B服务器的相应数据目录,只有文件处于一致的状态我们才可以复制它:
[root@localhost data]# scp -r chenfeng root@192.168.1.2:/usr/local/mysql/data
accident.frm 100% 21KB 24.1MB/s 00:00
db.opt 100% 61 320.5KB/s 00:00
accident.ibd 100% 128KB 87.6MB/s 00:00
在服务器B上:
修改复制过来的文件权限:
[root@nginx data]# cd /usr/local/mysql/data
[root@nginx data]# chown -R mysql:mysql chenfeng
登录数据库并导入表空间:
mysql> alter table accident import tablespace;
Query OK, 0 rows affected, 1 warning (0.47 sec)
备注:当导入表空间时,目的库的页尺寸要和源库的页尺寸相匹配,另外需要注意两边的tablespace id得一致,否则会报错。
验证数据:
mysql> show tables;
+--------------------+
| Tables_in_chenfeng |
+--------------------+
| accident |
+--------------------+
1 row in set (0.00 sec)
mysql> select * from accident;
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| id | accidentContent | accidentDate | accidentType | accidentLevel | companyId | accidentLocation | accidentHarm | accidentCause | lng | lat |
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| 1 | 临近年关都注意安全 峄城棠阴东一轿车发生事故 | 2017-01-27 00:00:00 | 2 | 1 | 1 | 山东省枣庄市峄城县 | 0人死亡,0人受伤,0人失踪 | 据市民潘先生反映,他在去台儿庄路上路过峄城区,棠阴东一辆车发生事故。所幸车上三名人员没大碍,两人被送医院救治。发生事故的车辆为黑色轿车,据潘先生介绍,导致此次车祸的原因是该轿车超车 | 120.7725010 | 29.7305020 |
| 2 | 临近年关都注意安全 峄城棠阴东一轿车发生事故 | 2017-02-27 00:00:00 | 2 | 1 | 1 | 山东省枣庄市峄城县 | 0人死亡,0人受伤,0人失踪 | 据市民潘先生反映,他在去台儿庄路上路过峄城区,棠阴东一辆车发生事故。所幸车上三名人员没大碍,两人被送医院救治。发生事故的车辆为黑色轿车,据潘先生介绍,导致此次车祸的原因是该轿车超车
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
至此,Innodb表空间迁移完毕。
两台服务器A(192.168.1.1)和服务器B(192.168.1.2)
数据目录都为:/usr/local/mysql/data
现在想把A服务器上/usr/local/mysql/data下的chenfeng数据库迁移到B服务器上,只迁移chenfeng库,其他数据库不动。
步骤如下:
在服务器B上:
建库:
mysql> create database chenfeng;
Query OK, 1 row affected (0.02 sec)
创建和服务器A上一模一样的表:
mysql>use chenfeng
mysql> CREATE TABLE `accident` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `accidentContent` varchar(4000) DEFAULT NULL COMMENT '事故全称',
-> `accidentDate` datetime DEFAULT NULL COMMENT '事故发生时间',
-> `accidentType` int(2) DEFAULT NULL COMMENT '事故类型(1. 火灾事故 2. 爆炸事故 3. 中毒和窒息事故 4. 灼伤事故 5. 泄漏事故 6. 其它危化品事故)',
-> `accidentLevel` int(11) DEFAULT NULL COMMENT '事故等级(1. 一般事故 2. 较大事故 3. 重大事故 4. 特别重大事故)',
-> `companyId` int(11) DEFAULT NULL COMMENT '涉事企业id',
-> `accidentLocation` varchar(255) DEFAULT NULL COMMENT '事故发生位置(省、市、县)',
-> `accidentHarm` varchar(255) DEFAULT NULL COMMENT '事故伤亡(X人死亡,Y人受伤,Z人失踪)',
-> `accidentCause` varchar(255) DEFAULT NULL COMMENT '事故原因',
-> `lng` double(22,7) DEFAULT NULL COMMENT '经度',
-> `lat` double(22,7) DEFAULT NULL COMMENT '纬度',
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;
卸载chenfeng表空间文件:
mysql> alter table accident discard tablespace;
Query OK, 0 rows affected (0.15 sec)
警告:这个语句删除当前.ibd文件。
在服务器A上:
锁表:
mysql(mdba@localhost:chenfeng 06:57:27)>flush tables accident for export;
Query OK, 0 rows affected (0.00 sec)
备注:此命令使.ibd文件保持一致的状态
复制数据文件:
把A服务器表的表空间(ibd)所有文件复制到B服务器的相应数据目录,只有文件处于一致的状态我们才可以复制它:
[root@localhost data]# scp -r chenfeng root@192.168.1.2:/usr/local/mysql/data
accident.frm 100% 21KB 24.1MB/s 00:00
db.opt 100% 61 320.5KB/s 00:00
accident.ibd 100% 128KB 87.6MB/s 00:00
在服务器B上:
修改复制过来的文件权限:
[root@nginx data]# cd /usr/local/mysql/data
[root@nginx data]# chown -R mysql:mysql chenfeng
登录数据库并导入表空间:
mysql> alter table accident import tablespace;
Query OK, 0 rows affected, 1 warning (0.47 sec)
备注:当导入表空间时,目的库的页尺寸要和源库的页尺寸相匹配,另外需要注意两边的tablespace id得一致,否则会报错。
验证数据:
mysql> show tables;
+--------------------+
| Tables_in_chenfeng |
+--------------------+
| accident |
+--------------------+
1 row in set (0.00 sec)
mysql> select * from accident;
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| id | accidentContent | accidentDate | accidentType | accidentLevel | companyId | accidentLocation | accidentHarm | accidentCause | lng | lat |
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| 1 | 临近年关都注意安全 峄城棠阴东一轿车发生事故 | 2017-01-27 00:00:00 | 2 | 1 | 1 | 山东省枣庄市峄城县 | 0人死亡,0人受伤,0人失踪 | 据市民潘先生反映,他在去台儿庄路上路过峄城区,棠阴东一辆车发生事故。所幸车上三名人员没大碍,两人被送医院救治。发生事故的车辆为黑色轿车,据潘先生介绍,导致此次车祸的原因是该轿车超车 | 120.7725010 | 29.7305020 |
| 2 | 临近年关都注意安全 峄城棠阴东一轿车发生事故 | 2017-02-27 00:00:00 | 2 | 1 | 1 | 山东省枣庄市峄城县 | 0人死亡,0人受伤,0人失踪 | 据市民潘先生反映,他在去台儿庄路上路过峄城区,棠阴东一辆车发生事故。所幸车上三名人员没大碍,两人被送医院救治。发生事故的车辆为黑色轿车,据潘先生介绍,导致此次车祸的原因是该轿车超车
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
至此,Innodb表空间迁移完毕。
事故
服务
服务器
数据
文件
轿车
峄城
空间
先生
棠阴
一致
原因
数据库
重大
安全
人员
医院
备注
大碍
尺寸
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术求职信格式
祖国的网络技术发达
全套数据库视频教程下载地址
英国软件开发兼职
网络安全兼职的正规平台
软件开发国有企业
数据库的思想和技术
方舟手游如何快速升级服务器
网络安全抽考
数据库可以开发交互界面
网吧如何落实 网络安全法
怎样打开服务器端口
网络安全第五空间会议
对于软件开发职业的认识
移动网络安全保护的内容
网络安全监管检测趋势
广州浠津网络技术
软件开发流程图鱼骨图
电视剧讲网络安全大赛
网络安全科技产品
C语言 手写数据库源码
慈溪软件开发图片
湖南ai人脸识别软件开发
网络安全360回归a股
大学生活网络安全
学软件开发学多久
我的世界服务器手机版地址大全
软件开发流程图鱼骨图
sql命令查看数据库版本
数据库课程表选课表关系