hangkk2008

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

表空间文件迁移
  1.alter table xx discard tablespace;
  2.alter table xx import tablespace;
  要求:表结构务必一致 

  参考:http://imysql.cn/2008_12_17_migrate_innodb_tablespace_smoothly

  案例: 

当前服务器安装了3个实例
# ps -ef |grep mysql
mysql     3555     1  0 Jan07 ?        00:01:09 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3316/my3316.cnf
mysql     3578     1  0 Jan07 ?        00:01:11 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3317/my3317.cnf
mysql     4677     1  0 13:39 pts/1    00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3318/my3318.cnf

  

实例3316
# mysql -uroot -p -S /tmp/mysql3316.sock 
use db3316;
CREATE TABLE `course` (
  `cno` int(11) NOT NULL AUTO_INCREMENT,
  `cname` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into course(cname) values('c01'),('c02');

mysql> select * from course;
+-----+-------+
| cno | cname |
+-----+-------+
|   1 | c01   |
|   2 | c02   |
+-----+-------+

当前session 对course表只读,其他表不可读不可写;
其他session 对course表只读,对其他表可读可写,;
mysql> flush tables  course for export;
锁表的概念同 flush  tables  course  with read lock;
# ll /data/mysql/mysql3316/data/pttest/
-rw-rw----. 1 mysql mysql   393 1月   8 14:13 course.cfg #多了一个cfg文件
-rw-rw----. 1 mysql mysql  8590 1月   8 14:08 course.frm
-rw-rw----. 1 mysql mysql 98304 1月   8 14:11 course.ibd
-rw-rw----. 1 mysql mysql    61 1月   7 16:42 db.opt

 

实例3318
# mysql -uroot -p -S /tmp/mysql3318.sock 
Use db3318;
CREATE TABLE `course` (
  `cno` int(11) NOT NULL AUTO_INCREMENT,
  `cname` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

# 删除course表空间,会删除表ibd文件
mysql> alter table course discard tablespace;
# ll /data/mysql/mysql3318/data/db3318/
-rw-rw----. 1 mysql mysql 8590 1月   8 14:18 course.frm
-rw-rw----. 1 mysql mysql   61 12月 28 11:14 db.opt

# 拷贝实例3316 course.{ibd,cfg} 到 实例3318
# cp /data/mysql/mysql3316/data/pttest/course.{ibd,cfg}  /data/mysql/mysql3318/data/db3318/
# ll /data/mysql/mysql3318/data/db3318/
-rw-r-----. 1 root  root    393 1月   8 14:21 course.cfg
-rw-rw----. 1 mysql mysql  8590 1月   8 14:18 course.frm
-rw-r-----. 1 root  root  98304 1月   8 14:21 course.ibd
-rw-rw----. 1 mysql mysql    61 12月 28 11:14 db.opt
#修改权限
# chown mysql.mysql *
#重新导入表空间
mysql> alter  table course import tablespace;
[db3318]>select * from course;
+-----+-------+
| cno | cname |
+-----+-------+
|   1 | c01   |
|   2 | c02   |
+-----+-------+
实例3316 解锁
mysql> unlock tables;

 

 

posted on 2016-06-15 18:16  鱼儿也疯狂  阅读(302)  评论(0)    收藏  举报