iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql如何实现数据迁移
  • 205
分享到

Mysql如何实现数据迁移

2024-04-02 19:04:59 205人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关Mysql如何实现数据迁移,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql迁移通常使用的有三种方法:1、数据库直接导出,拷贝文件到新服

这篇文章将为大家详细讲解有关Mysql如何实现数据迁移,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql迁移通常使用的有三种方法:
1、数据库直接导出,拷贝文件到新服务器,在新服务器上导入。
2、使用第三方迁移工具
3、数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的Mysql服务下。


第一种方案的优点:会重建数据文件,减少数据文件的占用空间,兼容性最好,导出导入很少发生问题,需求灵活。缺点:使用传统导出导入时间占用长。
第二种方案的优点:设置完成后传输无人值守,自动完成。缺点:不够灵活,设置繁琐,传输时间长,异常后很难从异常的位置继续传输。
第三种方案的优点:时间占用短,文件可断点传输,操作步骤少。缺点:新旧服务器中MySQL版本及配置必须相同,可能引起未知问题。


假如数据库迁移是因为业务瓶颈或项目改造等需要变动数据表结构的(比如分区分表),我们便只能使用第一种方法了。

我一般使用MySQL的 SELECT INTO OUTFILE 、LOAD DATA INFILE 快速导出导入数据
【导出导出工作准备】

导出前关闭日志,避免数据备份过程中频繁记录日志
删除主键,关闭自动增长。在该表中主键其实作用不大,自动增长是需要的(mysql中自动增长的一列一定要为key,所以设置为主键),等待数据转移结束后重新设置回来
删除表中索引。在插入数据时索引的存在会很大程度上影响速度,所以先关闭,转移后重新建立
Mysql系统参数调优,如下:(具体含义后面给出)
innodb_data_file_path           = ibdata1:1G:autoextend
innodb_file_per_table           = 1
innodb_thread_concurrency       = 20
innodb_flush_log_at_trx_commit  = 1
innodb_log_file_size            = 256M
innodb_log_files_in_group       = 3
innodb_max_dirty_pages_pct      = 50
innodb_lock_wait_timeout        = 120
key_buffer_size=400M
innodb_buffer_pool_size=4G
innodb_additional_mem_pool_size=20M
innodb_log_buffer_size=20M
query_cache_size=40M
read_buffer_size=4M
read_rnd_buffer_size=8M
tmp_table_size=16M
max_allowed_packet = 32M

【操作方法及结果】
(1)create table t2 as select * from t1
CREATE TABLE dn_location3   
PARTITION BY RANGE (UNIX_TIMESTAMP(UPLOADTIME)) 
 (   PARTITION p141109 VALUES LESS THAN (UNIX_TIMESTAMP('2014-11-09 00:00:00')), 
 PARTITION p141110 VALUES LESS THAN (UNIX_TIMESTAMP('2014-11-10 00:00:00')),    
PARTITION p141111 VALUES LESS THAN (UNIX_TIMESTAMP('2014-11-11 00:00:00')),    
PARTITION p141112 VALUES LESS THAN (UNIX_TIMESTAMP('2014-11-12 00:00:00'))  
)  
as select * from dn_location  
where uploadtime > '2014-08-04'; 
 
create table t2 as select * from dn_location2; 

as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引。
此方法效率较高,在前面的实验环境下,42min内将一张表内4600W的数据转到一张新的表中,在create新表时我添加了分区的操作,因此新表成功创建为分区表,这样一步到位的既转移了数据又创建了分区表。此方法平均速度:6570W条/h ,至于该方法其他需要注意的地方,暂时没有去了解。
(2)使用MySQL的 SELECT INTO OUTFILE、LOAD DATA INFILE
LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。当用户一前一后地使用SELECT ... INTO OUTFILE 和LOAD DATA INFILE 将数据从一个数据库写到一个文件中,然后再从文件中将它读入数据库中时,两个命令的字段和行处理选项必须匹配。否则,LOAD DATA INFILE 将不能正确地解释文件内容。
假设用户使用SELECT ... INTO OUTFILE 以逗号分隔字段的方式将数据写入到一个文件中:
SELECT * INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',' FROM table2;
为了将由逗号分隔的文件读回时,正确的语句应该是:
LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
如果用户试图用下面所示的语句读取文件,它将不会工作,因为命令LOAD DATA INFILE 以定位符区分字段值:
LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY '\t';
下面是我用来导入导出的命令:
select * into outfile 'DDD.txt' fields terminated by ',' from dn_location; 
load data infile 'ddd.txt' into table dn_location2  FIELDS TERMINATED BY ',';

通过该方法导出的数据,是将各字段(只有数据,不导出表结构)数据存在一个文件中,中间以逗号分隔,因为文件中并不包含数据库名或者表名,因此需要在导入导出的时候些明确。该方法在18分钟内导出1.6亿条记录,46min内导入6472W条记录,平均速度:8442W条/h。mysql官方文档也说明了,该方法比一次性插入一条数据性能快20倍

关于“Mysql如何实现数据迁移”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql如何实现数据迁移

本文链接: https://www.lsjlt.com/news/62322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql如何实现数据迁移
    这篇文章将为大家详细讲解有关Mysql如何实现数据迁移,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL迁移通常使用的有三种方法:1、数据库直接导出,拷贝文件到新服...
    99+
    2022-10-18
  • MySQL数据如何实现迁移
    下文给大家带来有关MySQL数据如何实现迁移内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL数据如何实现迁移你一定会有所收获。   ...
    99+
    2022-10-18
  • 如何实现MySQL数据库的无缝迁移
    这篇文章主要介绍如何实现MySQL数据库的无缝迁移,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL数据库的无缝迁移问题?问:在平时的开始过程中,由于经常“需求理解,架构设计,...
    99+
    2022-10-19
  • 如何实现迁移RDS for MySQL数据到本地 MySQL
    不知道大家之前对类似如何实现迁移RDS for MySQL数据到本地 MySQL的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完如何实现迁移RDS for MySQ...
    99+
    2022-10-18
  • 如何迁移MySQL 5.7数据库
    这篇文章主要介绍如何迁移MySQL 5.7数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在源库用mysqldump备份数据库:mysqldump -uroot -p --def...
    99+
    2022-10-18
  • 如何快速迁移MySQL数据
    本篇内容主要讲解“如何快速迁移MySQL数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何快速迁移MySQL数据”吧! 我们通常...
    99+
    2023-02-02
    mysql
  • Oracle数据迁移MySQL
    前言: 现今,Oracle数据迁移MySQL的需求已经越来越普遍,主要的迁移场景大致可以分为三类,第一类是涉及小表以及少量表的一次性迁移,无需进行增量同步,第二类是涉及大表以及多表的一次性迁移,第三类是涉及增量实时同步,而对于数据的迁移方法...
    99+
    2023-09-26
    oracle mysql 数据库 运维 dba
  • mysql数据库迁移
    目录 背景迁移数据库 背景 公司有个项目,刚开始数据量不是大的时候,数据库和服务上的所有应用数据都放在一个旧小盘中,随着项目数据的增长,旧的磁盘被占满了,导致系统无法写入数据,我和同事排查了很长时间,最终确定是磁盘被占满导致的一...
    99+
    2023-08-23
    数据库 mysql
  • Mysql存储过程如何实现历史数据迁移
    目录Mysql迁移历史数据需求陈述心路历程最终实现总结Mysql迁移历史数据 记录一下工作中由于业务需要以及系统的数据库模型变更,导致需要做一下历史数据迁移的解决办法 需求陈述 一共...
    99+
    2023-01-28
    Mysql存储过程 Mysql历史数据迁移 Mysql数据迁移
  • MySQL数据迁移过程
    本篇内容主要讲解“MySQL数据迁移过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据迁移过程”吧!     因为...
    99+
    2022-10-18
  • Entity Framework实现数据迁移
    一、合并和迁移 1、合并 合并是指“新的实体模型映射到数据库中,更新其结构”,例如:新增了实体类,表现在数据库中就是新增加实体类对应的数据表。删除了实体类,表...
    99+
    2022-11-13
  • 如何实现oracle数据迁移到db2数据库
    这篇文章将为大家详细讲解有关如何实现oracle数据迁移到db2数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、表结构迁移在plsql中选择表----->d...
    99+
    2022-10-18
  • 数据库迁移系列之--Oracle迁移到Mysql
    敬请期待......
    99+
    2017-12-07
    数据库迁移系列之--Oracle迁移到Mysql
  • 如何快速完成mysql数据迁移
    这篇文章主要介绍“如何快速完成mysql数据迁移”,在日常操作中,相信很多人在如何快速完成mysql数据迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何快速完成mysq...
    99+
    2022-10-18
  • 【数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践
    在之前这一篇中我们分享过使用chameleon工具完成MySQL到openGauss的全量数据复制、实时在线复制。9.30新发布的openGauss 3.1.0版本 ,工具的全量迁移和增量迁移的性能不但有了全面提升,而且支持数据库对象视图、...
    99+
    2023-08-17
    数据库 mysql bash 云原生
  • mysql数据库怎么迁移
    本篇内容主要讲解“mysql数据库怎么迁移”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库怎么迁移”吧!上面是测试人员的要求,可以提取出2条有用的...
    99+
    2022-10-18
  • django数据库迁移migration实现
    在django中,ORM(对象关系映射器—object-relational mapper)任务是:模型化数据库,创建数据库由另外一个系统负责(迁移–migr...
    99+
    2022-11-13
  • MySQL到DB2: 如何实现数据迁移和转化的自动化?
    MySQL到DB2: 如何实现数据迁移和转化的自动化?引言:随着信息技术的不断发展,许多企业需要将数据库从一个平台迁移到另一个平台。本文将重点介绍如何实现MySQL到DB2的数据库迁移和数据转化的自动化过程。一、方案选择和准备:在开始自动化...
    99+
    2023-10-22
    数据迁移 DB 关键词:MySQL
  • 如何使用RMAN实现Oracle数据库迁移
    这篇文章主要介绍了如何使用RMAN实现Oracle数据库迁移,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.打开RMAN[oracle@E...
    99+
    2022-10-19
  • Linux系统中如何迁移MySQL数据库
    这篇文章将为大家详细讲解有关Linux系统中如何迁移MySQL数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一步 – 执行MySQL转储在将数据库文件传输到新的VPS之前,我们...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作