innodb 大表迁移

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
);
 

猜你喜欢

转载自blog.csdn.net/u012482502/article/details/82429475