表空间文件迁移
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;
浙公网安备 33010602011771号