T表举例子
1 在新库创建源表结构
use newdatabase;
CREATE TABLE `t` (
-> `id` int(11) NOT NULL,
-> `name` varchar(20) DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> FULLTEXT KEY `name_index` (`name`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
2 删除该表表空间
alter table t discard tablespace;
3 复制源表物理文件ibd到目标库路径
FLUSH TABLES t FOR EXPORT;
UNLOCK TABLES;
cp /appdata/mysql/test/t.ibd /appdata/mysql/copy/
4 修改目标文件权限
chown -R mysql. /appdata/mysql/copy/t.ibd
5 将物理数据加载到表空间
alter table t import tablespace;
问题点:
1 检查数据库是否开启独立表空间
2 查看表结构是否为一致性分区
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN MAXVALUE
);