千家信息网

MySQL数据库管理--迁移表操作步骤

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,下面一起来了解下MySQL数据库管理--迁移表操作步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库管理--迁移表操作步骤这篇短内容是你想要的。通过复制InnoDB表的ibd文件,
千家信息网最后更新 2025年01月21日MySQL数据库管理--迁移表操作步骤

下面一起来了解下MySQL数据库管理--迁移表操作步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库管理--迁移表操作步骤这篇短内容是你想要的。

通过复制InnoDB表的ibd文件,实现将InnoDB表从源库迁移到目标库,类似Oracle TTS。传输表空间的限制:1,mysql 版本 5.6.6 及其以上,源和目标版本建议都是GA版并且大版本一样2,表引擎为innodb并且开启独立表空间(innodb_file_per_table=1)3,处于导出状态的表只允许读也就是"read_only"状态4,DISCARD TABLESPACE不支持分区表[5.6.17才支持] 并且当表上具有外键关系的时候需要将foreign_key_check设置为05,源和目标实例的page size必须大小一致6,ALTER TABLE ... IMPORT TABLESPACE不强制进行外键约束检查,所以需要将主表和子表都导出,然后在目标实例导入源库[root@wallet01 ~]# su - mysql[mysql@wallet01 ~]$ mysqldump -uroot -pabcd.1234 -d tpcc customer >customer.sql[mysql@wallet01 ~]$ scp customer.sql 192.168.1.202:/home/mysql[mysql@wallet01 ~]$ mysql -uroot -pabcd.1234mysql> use tpcc100Database changedmysql> select count(*) from customer;+----------+| count(*) |+----------+|  1500000 |+----------+1 row in set (0.33 sec)目标库[root@wallet02 ~]# su - mysql[mysql@wallet02 ~]$ mysql -uroot -pabcd.1234mysql> create database tpcc;Query OK, 1 row affected (0.05 sec)mysql> use tpccDatabase changedmysql> source customer.sqlQuery OK, 0 rows affected (0.01 sec)mysql>  alter table customer discard tablespace;Query OK, 0 rows affected (0.03 sec)源库mysql> flush table customer for export;Query OK, 0 rows affected (0.00 sec)[mysql@wallet01 ~]$ cd /usr/local/mysql/data/tpcc[mysql@wallet01 tpcc]$ scp customer.cfg 192.168.1.202:/usr/local/mysql/data/tpcc[mysql@wallet01 tpcc]$ scp customer.ibd 192.168.1.202:/usr/local/mysql/data/tpccmysql>  unlock tables;Query OK, 0 rows affected (0.03 sec)目标库mysql> alter table customer import tablespace; Query OK, 0 rows affected (11.52 sec)mysql> select count(*) from customer;+----------+| count(*) |+----------+|  1500000 |+----------+
1 row in set (0.37 sec)
看完MySQL数据库管理--迁移表操作步骤这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
0