数据库迁移_数据库迁移方案 - CSDN
精华内容
参与话题
  • 数据库迁移常见的四种方法

    千次阅读 2019-10-20 23:11:07
    数据的迁移就像搬家,基本每个用过手机的人都做过数据迁移,将旧智能手机中的电话号码、照片、微信聊天记录导入到另一台新的智能手机。...今天我们来讲三种常用的云数据库迁移方法。 一、为什么做云迁...

            数据的迁移就像搬家,基本每个用过手机的人都做过数据迁移,将旧智能手机中的电话号码、照片、微信聊天记录导入到另一台新的智能手机。因此数据迁移并不神秘。在上云的过程中,因数据的量更大、数据重要性更大、专业性更强,因此在公有云上诞生了“云迁移”这项目服务,在公有云市场也有上百个云服务商专业做“云迁移”服务。今天我们来讲三种常用的云数据库迁移方法。

     

            一、为什么做云迁移?

            1、更换服务器、更换云服务商。如,某台服务器故障,需要更换为新服务器;从私有云环境更换为公有云环境。

            2、应用的数据器升级、更换类型。如,将oracle更换为mysql。

            可以说做云迁移,就像更换手机一样,发生的概率还是挺高的,我们有必须要掌握必要的迁移技能。

     

            二、云迁移里面最重要的是数据迁移

            1、数据价值最高,不能丢失。应用服务器里不带有价值的数据,可以直接采用重新安装或整盘拷贝的方式迁移,难度不大。但数据库服务器的数据可以说是整个企业的财产关键。

            2、数据迁移的难度最大。数据库的版本升级将可以带来应用的不可用,因此迁移至新服务器,如果使用了云服务商的RDS,版本不一致,应用无法使用的概率挺大。

     

            三、数据库迁移总体有三种方法

            我们今天以mysql为例,讲讲数据库迁移的四种方法。

            1、将数据库倒出为sql文件,再重新导入(推荐)

            首先将mysql数据库锁定,并将内存中的数据写入磁盘。

            用mysqldump将test数据库导出为sql文件。

            在新的数据库服务器上,新建test数据库,再将sql文件导入。

            该方法因采用sql命令进行数据库迁移,兼容性最好,准确性最高,但速率最慢。

     

            2、将数据库的文件存档目录直接拷贝至新主机

            可以直接将mysql存储数据的目录copy下来,用ftp等方式上传至新主机的对应存储数据的目录下。该操作需要关闭两端的数据库服务,否则将产生错误。

            该方法只支持myql的MyIASM的表引擎。该方法迁移速度快,但因Mysql默认采用inno引擎,适用场景少,且数据库版本升级后出错率高。

     

            3、使用第三方数据库迁移工具

            mysql有很多第三方的数据库迁移工具,如mysqlhotcopy。此类工具一般支持热迁移(不中断业务,实时写数据),支持物理copy。

            该方法迁移速度快,对业务中断时间短,但建议迁移多进行模拟测试,避免意外事件。

            甚至有一些第三方的迁移工具支持异构数据库的迁移。

     

            4、使用整盘迁移工具

            采用云主机的第三方迁移工具,将整个磁盘文件直接进行迁移。

            该方法迁移速度快,对业务中断时间短,但成本高,一般为收费工具。

     

            四、小结

            迁移就像搬家,如何保证搬家时间短、搬家途中不损坏或遗失物品、搬家过程更安全,产生了不同的迁移方法。

            根据你家里资产的情况,根据不同场景选择搬家的方法,迁移也就是这回事。大家感觉如何?

     

       更多内容实时更新,请访问公众号。    

     

    展开全文
  • 数据库数据迁移方法

    千次阅读 2019-09-27 16:11:45
    1.从旧数据库中将数据迁移到全新的数据库 2.有两个数据库A和B,A中需迁移表的结构和B一样,A和B中都有各自的数据,现在要同步两个数据库 方法: 通过单表查询插入SQL语句 通过写数据库存储过程 通过写程序(...

    转载请注明:https://blog.csdn.net/a714530833/article/details/90199162

    本文使用的数据库:SQLSERVER

    场景:

    1.从旧数据库中将数据迁移到全新的数据库

    2.有两个数据库A和B,A中需迁移表的结构和B一样,A和B中都有各自的数据,现在要同步两个数据库

    方法:

    1. 通过单表查询插入SQL语句
    2. 通过写数据库存储过程
    3. 通过写程序(这里采用java语言),将数据查询出来后,插入新数据库

    注:主要介绍第一种方式,2和3简单介绍下思路,具体实现需后面再研究。1和2不一样的地方是,第二种方式存储过程实现的基本思路,是通过写语句,在迁移一条主表数据的时候,同时迁移其关联子表数据。而第一种方法,是一个表一个表的迁移,在有关联表的存在,所以要先迁移主表,后迁移子表。

    实现:

    一、通过单表查询插入SQL语句:

    两个语句:

    select * into TABLE_A from [192.168.0.110].reliability.dbo.TABLE_B where 条件1 nad 条件2

    该语句会将TABLE_B中满足条件的数据拷贝到TABLE_A(TABLE_A在原数据库中不能存在,是脚本自动生成的表),注意此方法只能将数据进行拷贝,表结构不会保留(字段一样,单主键,外键,字段属性设置等都会丢失,可以理解成将查询出来的数据,进行简单保存)

    set identity_insert TABLE_A ON /**如果表主键设置自增长且要主动设置指定值,需将此开关打开**/
    INSERT INTO [reliability].[dbo].TABLE_A 
    			([PKID],
    			[CCP_ID]
               ,[cum_yes])
     select		[PKID]
    		   ,[CCP_ID]
               ,[cum_yes]
     from [192.168.0.110].reliability.dbo.TABLE_B
     WHERE 条件
     set identity_insert TABLE_A OFF

    该方式需将要拷贝的表先在新数据库中生成(可用客户端拷贝旧表的表结构),且要拷贝的字段信息需都指明。如果主键没设置自增长,则set identity_insert TABLEL_A ON不要加。

    注:

    • 如果要迁移数据库在两个不同服务器上,则要在新数据库上配置链接服务器,将旧数据库配置到新数据库上,新数据库就能通过[IP].数据库名.dbo.表名的形式,访问到旧数据库的数据
    • 对于要同步新旧数据库数据(两个数据库都有各自的数据),会存在一个问题,待迁移主表主键为自增长,旧数据库待迁移数据的主键在新数据库中可能已经被占用。所以不能简单的直接将原本的主键拷贝过去。而且也不能令拷过去的数据主键自增长,因为这样其关联的子表就会不知道其关联的主表主键是多少。解决方式有几种思路:1.在新数据库中新增一个临时字段,记录旧表中的主键数据,子表迁移的时候根据该字段更新外键数据,最后在删除该字段(修改到表结构,有风险,自己评估)。2.通过写程序或存储过程的方式实现(较麻烦)。3.给待迁移的数据主键加上某个指定的值,令其主键大于现有最大值,保证其不会重复,然后子表迁移时,外键也加上该值。(需评估数据主键的范围是否满足)

    二、存储过程

    由于本人了解有限,并未深入学习存储过程,这边只简单介绍大体思路,具体实现还待验证。

    通过游标进行对旧数据库查询结果的遍历,并取出每次遍历中各字段的值。对每次遍历进行新数据库的插入。然后再根据主键,查询出关联子表,同理查询出子表数据进行插入(关联外键可在插入时直接更新)。子表操作完之后,再进行主表的下一轮循环。最后摧毁游标。(如果不是必要,建议不要采用存储过程,毕竟存储过程实现较难,且不易排查问题)

    三、通过java程序

    这里对于该方法,只介绍思路和新旧数据库的数据源切换方法。

    首先,在项目中配置读和写的数据源

    配置mapper映射(使用mybatis实现)

     

    自定义注解,用于读写数据源的切换:

    利用Spring AOP切面编程实现对自定义注解的解析

    通过重写determineCurrentLookupKey动态切换数据源(看不明白的请自行百度Spring动态切换数据源)。以上就是整个数据迁移项目的核心,剩下的就是一些mybatis的查询和插入语句,在这就不做过多的描述。

    转载请注明:https://blog.csdn.net/a714530833/article/details/90199162

    展开全文
  • 数据库整体迁移

    千次阅读 2018-06-22 15:36:08
    1.迁移方法概述: 使用Navicat Premium 分别与源数据库和目标数据库建立连接,然后...其实跟从MySQL数据库迁移到oracle数据库是一个套路. O(∩_∩)O~ 听起来,是不是很简单,其实就是很简单!下边我就讲一下具体实现...

    1.迁移方法概述:

    使用Navicat Premium 分别与源数据库和目标数据库建立连接,然后借助Navicat Premium自带的数据传输功能,实现Oracle数据库的迁移.其实跟从MySQL数据库迁移到oracle数据库是一个套路.

    O(∩_∩)O~ 听起来,是不是很简单,其实就是很简单!下边我就讲一下具体实现的细节流程:

    2.实现步骤:

    第一步:在目标数据库中创建表空间和用户

    这点我再次向对Oracle数据库不熟悉的同学强调一下,对于Oracle数据库不像mysql中,一个用户可以管理多个数据库,对Oracle来说,一个用户只对应一个数据库,而新创建的用户是没有任何资源和权限的,所以需要管理员用户为其分配资源权限.

    在控制台以管理员权限登录建立连接:
    sqlplus system/admin@192.168.10.112:1521/orcl
    conn /as sysdba;
    • 1
    • 2
    • 1
    • 2
    • 1
    • 2

    如果你不小心忘记了密码,可以参考我的另外一篇专门将创建表空间和用户的博文:Oracle数据库创建表空间和用户及删除数据库(用户)

    建立连接

    创建表空间与用户:
    <!-- 创建表空间 datafile为你oracle安装文件的路径,其中casic_smart.dbf是自己随便命名的 -->
    create tablespace casic_smart datafile 'E:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m;
    <!-- 创建用户 并为其指定表空间 -->
    create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;
    <!-- 授予权限 -->
    grant all privileges to tianzhi_smart;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    创建表空间与用户名

    第二步:使用Navicat Premium 分别与源数据库和目标数据库建立连接

    使用Navicat Premium连接Oracle数据库时,可能会报出如下错误:
    连接异常信息展示
    具体解决方案,可参考我的另外一篇博文: Navicat 提示Cannot create oci environment 解决方案

    数据库连接成功后如下图:

    连接数据库

    进行数据输出:

    这里写图片描述
    这里写图片描述
    这里写图片描述

    3.其他方法:

    如果这种方法迁移不成功,那就来试试一个更简单的方法:使用Oracel数据库的imp,exp语句.详见我的另外一篇博文:Oracle使用exp,imp迁移数据库

    声明:请尊重作者辛劳整理,转载请注明出处:http://blog.csdn.net/javaee_sunny/article/details/52995013

            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
                </div>
    
    展开全文
  • 数据库间数据迁移常见工具和方法

    万次阅读 2017-07-25 23:21:08
    项目需要对oracle数据迁移到MySQL中,搜集了一些方法和工具,现在做一个汇总和总结,较好的有以下几种: 1、SQLyog(https://link.zhihu.com/?target=https%3A//www.webyog.com/product/sqlyog) SQLyog是世界著名的...

    项目需要对oracle数据迁移到MySQL中,搜集了一些方法和工具,现在做一个汇总和总结,较好的有以下几种:

    1SQLyog(https://link.zhihu.com/?target=https%3A//www.webyog.com/product/sqlyog)

    SQLyog是世界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog,可以快速直观地让我们从世界上任何角落通过网络来维护远端的MySQL数据库。

    2intelligent-converters oracle-to-mysql (https://link.zhihu.com/?target=http%3A//www.convert-in.com/)

    外国软件,官网说法一般的i7可达2/秒。

    3DB2DB(https://link.zhihu.com/?target=http%3A//www.szmesoft.com/DB2DB)

    国内深圳的软件,官网介绍说在大数据情况下(千万级别以上),处理速度比国内外同类软件要高出300%以上。

    4MySQL Migration Toolkit免费

    MySQL Migration Toolkit是一款很不错的将其他数据源转换成mysql的工具。这个 Mysql官方提供的工具

    5、Navicat Premium

    这个不多做介绍,都知道的。

    6、kettle等ETL工具

    很多ETL工具带有从一个数据库读取写入另一个数据库的功能

    7、自己编写

    利用JAVA、Rpython等编写程序进行数据转移。

     

    限制迁移的速度中除了工具性能外,估计在网络速度方面也会有较大限制;按照每秒可以达到10M(万条数据左右)的网络传输速度,1T需要1024*1024/3600*1030小时,实际估计还没有这么快。具体的方法工具使用网上有比较多的教程。

    展开全文
  • 例如:开发好的银行系统进行迁移 1&amp;amp;amp;gt;分离附加法(常当前数据库中分离) 前提:该数据库不处于被访问状态 1&amp;amp;amp;gt;打开要分离的数据库文件位置 右击数据库属性–文件–复制...
  • 数据库迁移

    千次阅读 2018-02-17 21:01:55
    首先要确保你的oracle和mysql连接没有问题,我的oracle10g和mysql5.2,工具是mysql-gui-tools-5.0-r17-win32.msi 叫MySQL Migration Tookit 然后安装这个MySQL Migration Tookit,下载地址是...
  • 数据迁移常用方法

    万次阅读 2018-08-24 15:21:13
    SQL SERVER几种数据迁移/导出导入的实践 SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel、数据库与文本文件、数据库数据库之间的导出导入)。 (一)数据库与Excel...
  • 以前的工作迁移过oracle到Informix、oracle和SQLSERVER、oracle到mysql。 在目前的公司又因为去o的关系,做了大量的迁移工作,栽了不少坑,所以和大家交流一下在迁移的过程中的一些实践。 因为成本预算等多方面的...
  • mysql的数据库迁移到另一个机器上

    万次阅读 2018-05-28 11:38:31
    将你要迁移数据库文件放到这里如下:然后打开my.ini:找到datadir,然后将你的Data文件路径复制到下面,你要启动哪一个Data文件就用那个文件的地址,只能存在一个。如下:然后在重启MySQL服务...
  • 数据库迁移 在说到数据库迁移方面,像很多开发工作一样,简单有简单的做法,复杂有复杂的做法,就看怎么做了。那么什么样子的数据库迁移方式才是最优的,在这里是没有准确的定义的。但是我这边分享一个比较简单而言...
  • 各种数据库之间数据迁移工具

    万次阅读 2017-03-29 08:43:24
    前阶段需要把sqlserver上的数据迁移到mysql上,找到了非常好用的工具DB2DB。 下载地址:http://www.szmesoft.com/DB2DB DB2DB 是目前经过测试速度最快、最稳定实现多种数据库之间进行数据转换的工具。支持 SQL ...
  • 其实跟从mysql数据库迁移到Oracle数据库是一个套路.O(∩_∩)O~ 听起来,是不是很简单,其实就是很简单!下边我就讲一下具体实现的细节流程:2.实现步骤:第一步:在目标数据库中创建表空间和用户这点我再次向对Orac
  • mysql数据库数据迁移方法

    万次阅读 2015-08-04 14:55:07
    说明:这里不讨论命令行...mysql坏掉了,不管是linux还是windows版本,mysql有个数据库文件目录data目录,如下图: (注意linux版上面的是my.cnf差不多) 然后data目录里面类似这样: 通过观察可以知道里面
  • 系统环境:Windows 7 Pro damengban
  • Django的数据库使用(配置和迁移

    千次阅读 2018-08-23 21:24:32
    配置和迁移 Django项目默认 sqlite3 数据库, 生成的数据库名为 db.sqlite3 sqlite3 仅供测试使用,可以通过配置修改为使用 mysql 一、配置使用MySQL数据库 1、手动创建mysql数据库,例如db_Django03 create ...
  • SQL server数据库迁移方式

    千次阅读 热门讨论 2019-01-28 20:51:53
    (1):起初仅仅是为了测试用,所以迁移的时候不必把数据库中的数据全部迁移过去,仅仅需要数据库的架构即可; (2):某些时候需要更换服务器,那么此时已经在内部存储了大量数据了,此时只能把架构+数据全部迁移...
  • SQL Server 数据库迁移方法——备份还原 博主在将自己电脑的sql server数据库迁移到云服务器上时,一时摸不到头脑,但最后还是用备份还原的方式来完成了数据库的迁移。 比如要把A主机的数据库qqq迁移到B主机。我们...
  • Linux下MySQL数据库迁移

    千次阅读 2019-04-23 22:36:35
    默认安装的MySQL数据库数据库目录为:/var/lib/mysql,使用一段时间后发现硬盘空间已经不能满足我们的使用需求,所以需要迁移数据库到磁盘空间更大的目录下,具体过程如下: 1、备份数据库 虽然迁移理论上不会出现...
  • mysql数据库转达梦数据库方法

    万次阅读 热门讨论 2018-09-12 11:33:13
    因为公司要求mysql数据库数据需要转到达梦数据库,对于达梦数据库的了解尚且不多,所以周周转转,寻找度娘以及贴吧,有推荐spoon工具的,有第三方数据迁移工具的。进行使用时发现实在是麻烦,而且对数据的类型太不...
1 2 3 4 5 ... 20
收藏数 197,231
精华内容 78,892
关键字:

数据库迁移