一个简单的数据迁移工具

本文介绍了一个通用配置化的数据迁移工具,适用于系统改造或升级时的数据迁移。工具支持多种数据源,包含同库单表、同库多表和多库多表的迁移任务配置。通过配置文件定义数据源、属性和任务,实现数据的转换和迁移。允许自定义扩展以满足特殊需求,提供了获取数据、转换数据和插入目标表的核心步骤,并提供了代码仓库链接供参考。
摘要由CSDN通过智能技术生成

数据工具


最近在一个系统改造的项目工作,在项目开发之前,进行设计的时候,总是要考虑一件事,就是新系统上线前,需要将老系统的数据迁移到系统的数据库中;因为项目比较大,不同的项目组,都自行写了一套数据迁移的代码;最近又处于相对的空闲,花了点时间写了一个比较通用配置化的数据迁移的工具。

  • 需求
  • 设计思路
  • 配置文件说明
  • 扩展说明

需求


在进行系统改造或系统升级的时候,会有将旧系统的数据迁移到新系统中的需求;对这需求的进行细分会有以下几种:

  1. 源数据的表与目标表的表结构是一样,只是单纯的将数据从A表COPY到B表;
  2. 源数据的表与目标数据的表的表结构有不一样,比如字段的属性从Integer 到 String 之类的变化;
  3. 目标表的数据是有俩张或多张表中抽取出来的,并且字段的属性可能有变化,这些数据表都是来自同一个库
  4. 基于第三种情况,目标表的数据可能来自于不同数据库的不同表;
  5. 除上述情况,需要有自定义的扩展以满足特殊要求

设计思路


从配置文件中读取配置信息,生成一个运行上下文及任务集合,然后丢到一个运行容器中进行执行任务。
执行容器有俩个功能:

  1. 执行迁移任务
  2. 输出错误数据的日记;

这里写图片描述

配置文件说明


执行容器的上下文是根据配置文件生成的,有数据源,类型装唤起,自定义的属性,还有最核心的,迁移任务配置;

  • 数据源配置

    <dataSources>
        <dataSource id="targetDB" dbType="mysql">
            <url>jdbc:mysql://192.168.31.108:3306/test</url>
            <username>xxx</username>
            <password>xxxx</password>
            <driverClass>com.mysql.jdbc.Driver</driverClass>
        </dataSource>
        <dataSource id="srcDB" dbType="mysql">
            <url>jdbc:mysql://192.168.31.108:3306/testA</url>
            <username>xxx</username>
            <password
因服务器部署,需将原2000 SERVER上的共享文件转移到另一2003 SERVER中,因文件夹权限设置比较复杂,故从微软官方网站下载了FSMT工具,安装要求得先安装.NET Framework 2.0以上版本,然后就是安装FSMT工具了,将FSMT安装在2003 SERVER中,完成之后运行FSMT,新建项目,指定存储记录的位置,省略DFS,指定迁移的目标位置(如E:),然后是加入服务器,输入2000 SERVER名称确定,此时2000 SERVER下的共享文件夹就都出来了,选择要转移的共享文件夹,然后是继续,一直到文件迁移完成,还可以查看迁移过程中有没错误。当然还可以使用备份的方法(Backup Exce、BES)DFS……例如:用NTBackup备份后再恢复至目标盘上,文件权限也不改变,具体操作我没实际操作过,感觉所花费的时间相对FSMT要长些。 成功案例、具体操作如下:网上转接 目的:把在DC上的文件服务器,迁移到一台成员服务器. 环境如下: 先在DC上创建用户a,建立共享文件夹share,在共享文件夹的子文件夹赋与a权限做成个人文件夹. 在share文件夹上给everyone共享权限是更改,NTFS权限如图.子文件夹权限也如下 目的是用于验让权限的转移. a文件夹放一些文件.建立完了一个文件服务器,接下来就是把权限内容转移到成员服务器啦. 现在到成员服务器以administrator的身份登录,安装FSMT工具包. 输入使用信息,安装类型. 安装成功. 打开FSMT用于迁移文件服务器的工具,还可用于DFS,在这里我就不详细介绍. 打开以后,如图,弹出一个欢迎向导,创建一个用于保存转移文件服务器日志的位置,名称. 去掉DFS按钮,因为我没用到DFS. 输入保存文件服务器的新位置,会以DC的FQDN作为文件夹,完成向导. 这时候就可以做转移的操作啦,选择要转移的服务器,转移的文件夹. 就是DC的FQDN名称,共享文件夹share. 接着按继续,执行下一步的操作. 检查完,准备复制. 最后签定,弹出警告信息,说之前的共享将会被停掉,进行转移工作. 成功转移,按报告可以看到更多信息 结果如下:在C盘生成文件夹. 权限验证. 子文件夹权限以及文件. Ok,到这里就结束了,一切看起来都很美妙。不过需要注意的是,此工具迁移域环境下的文件服务器,其他环境不实用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值