Welcome 微信登录

首页 / 数据库 / MySQL / MySQL数据复制、迁移、转换

本文总结各种场景下的mysql数据复制、迁移、转换。1、导入、导出利用mysqldump命令将数据文件导出成一个文本文件,这在不同场景下具有更高的安全性。如:表引擎改变。数据导出:mysqldump -uroot -p dbname  > dbname.sql (包含表结构和表数据)数据导入:mysql -uroot -p dbname < dbname.sql注意:导出的sql文件包含旧表信息,请修改其中的create table语句。在create之前会有一个DROP table 操作。如果没有注意到这点,原数据就会被删除。这种情况可以用下列的sql操作:只导出:数据:mysqldump -uroot -p -t dbname > dbname.sql只导出表结构:mysqldump -uroot -p -d dbname > dbname.sql 2、将一张表的数据转换到另一张表、并且更新表结构a、以下sql适用于小量数据,速度快。
  1. mysql>create table innodb_table like myisam_table;  
  2. mysql>alter table innodb_table engine=innodb; 
  3. mysql>insert into innodb_table select * from myisam_table; 
b、更高效的办法是增量的填充表,在填充每个增量数据块时都提交事务,这样就不会导致撤销日志过大,假设id是主键,可以重复运行一下查询(每次逐渐增大x和y值)直到所有数据都复制到新表。
  1. mysql>start transaction; 
  2. mysql>insert into innodb_table select * from myisam_table where id between x and y;  
  3. mysql>commit;  
转移操作完成后,源表仍会保留,可以在完成操作后DROP它,注意:如有必要,在转换时加锁源表,防止在转换时数据不一致。Oracle 返回偶数个数据行将Oracle 11g的表导出并导入到10g中相关资讯      MySQL教程 
  • 30分钟带你快速入门MySQL教程  (02月03日)
  • MySQL教程:关于I/O内存方面的一些  (01月24日)
  • CentOS上开启MySQL远程访问权限  (01/29/2013 10:58:40)
  • MySQL教程:关于checkpoint机制  (01月24日)
  • MySQL::Sandbox  (04/14/2013 08:03:38)
  • 生产环境MySQL 5.5.x单机多实例配  (11/02/2012 21:02:36)
本文评论 查看全部评论 (0)
表情: 姓名: 字数