数据迁移笔记

[数据迁移前的准备]

1.将两个数据库中对应的表的基本数据一一对应,总结在excel文档中--映射关系表。

(1).对于某些特殊数据,新旧系统的处理方式可能不一致,如flg类字段的0,1,2...分别对应的值是否一致;旧系统多个字段对应新系统一个字段的情况。

(2).对于某些数据,在旧系统中需要关联多张表才可以获取数据,将关联到的表登记下来。

(3).[前处理]在新旧系统中的字段类型不同,如日期,可以做相应的转换;字段大小不同,先将新系统中的字段扩大。

(4).[前处理]有些数据在新旧系统的页面都不再展示,但数据却仍然希望保留,需先在新系统表中增添相应字段

2.通过映射关系中的对应关系写出对应数据的sql.

[数据迁移的实施]

3.迁移数据   [可先在测试环境试迁移,得出低bug的sql,再到实际环境中执行]

(1).将映射关系表文档中涉及到的表数据从旧系统中导出,在新数据库中建立相同表并将数据导入其中。

(2).直接执行对应sql.

(3).执行过程中一般会出现如下问题:

[不能插入null],[原因:系统数据默认值处理不同].

[字段值过大],[原因:新系统数据未扩大; Date型数据没有处理,需加TO_CHAR]

[非法的number],[这个数据库不会告诉你是哪个字段,很恶心。原因:某个字段旧系统中是char或varchar型,新系统为number型;某个number型字段处理默认值null时,NVL函数中的默认值写了空格‘ ‘;DATE型数据看看是否未处理完]

[数据迁移后的校验]

4.导入数据后由于数据量增多,需添加相应的索引,提高页面的查询效率,[对于查询条件,表关联条件]

CREATE INDEX  I1_CMMTPCOP ON CMMTPCOP (REGION_ID);

建立索引时,虽然有些数据作为查询条件,但是取值单一,不应该作为索引,如只有(0,1)值的状态类字段。

5.对于新系统的新的处理方式做相应的数据修改,这次案例主要有生效日期和失效日期的数据补全

6.编码问题

此次案例为日本的项目,客户的环境为Shift-JIS编码格式,我们将数据在远程全部正常导入后,页面仍然出现问题,报错为:JSON数据异常。查看后台日志打印的ETF树数据后,发现仍然有很多数据为?,被后台解析为乱码的正是一些特殊字符,如全角的-,带圈数字,株式会社的(株) 的特殊字符 、(有)等等,后台的编码已经改为Shift-JIS,半角片假名也可以识别,但是这些字符,还不能识别,具体原因暂未得知。我们的小组长将这些字符在数据库中都替换为普通字符串后,页面正常显示。

7.对于特殊数据的验证

对于系统中敏感重要的数据如[手续费率]需要验证

原创:http://www.cnblogs.com/wulouhua/p/4528554.html

时间: 2024-10-29 19:06:27

数据迁移笔记的相关文章

MS SQL到Oracle的数据迁移笔记

MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能够在新系统中使用或查询.另外,新系统的实施人员并不清楚旧系统的数据结构,且两个新旧两个系统的使用的数据结构有较大的差异.为了叙述方便,将旧系统维护人员简称为A,新系统实施人员简称为B. 二.总体思路 1.  A与B根据各自了解的信息,一起制定中间表: 2.  A从MS SQL Server提取数据,

redis 数据迁移笔记

老服务器上内存一直报警,所以要把一部分redis数据迁移到新服务器上去. 迁移的方式有两种,一种是停服务器,搬迁数据:另一种通过主从同步转移. 停服务器,搬迁数据 首先在原服务器上执行redis-cli shutdown命令,该命令会触发保证写RDB文件以及将AOF文件写入磁盘,不会丢失数 停服务器,搬迁数据 首先在原服务器上执行redis-cli shutdown命令,该命令会触发保证写RDB文件以及将AOF文件写入磁盘,不会丢失数据. 如果是kill -9 pid就会丢失数据. 然后将RDB

Code First Migrations更新数据库结构(数据迁移) 【转】

背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的旧数据库中包含一些测试数据时,当持久化更新后,原数据将全部丢失,故我们可以引入EF的数据迁移功能来完成. 要求 已安装NuGet 过程示例 [csharp] view plaincopyprint? //原model //原model [csharp] view plaincopyprint? us

数据迁移,iis的各种坑

最近在搞iis发布  本来在家里实验过很多次 都是可以的 觉得很容易!但是到客户现场去试的时候发现各种坑 在这里给大家说说  望大家注意点哈! 首先:数据迁移先是备份数据库,然后再还原  这个地方一定要注意数据库版本问题,比如你如果在sqlserver2012上备份的,到sqlserver2008版本上还原就不行,因为这是高版本还原到低版本了 就不兼容,但是低版本还原到高版本就可以! 第二步:还原好了数据库,vs代码要配置服务器了,也要注意个问题:因为vs配置的是sqlserver的sql认证账

EF数据迁移,未将对象引用设置到对象实例

现象: 执行Enable-Migrations -force时就报"未将对象引用设置到对象实例"的异常: DbProviderServicesExtensions.GetProviderManifestTokenChecked 原因: 1.项目启动项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串信息 2.项目启动项配置错误,应该选择有entityFramework节

SQL SERVER几种数据迁移/导出导入的实践

SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel.数据库与文本文件.数据库与数据库之间的导出导入). (一)数据库与Excel 方法1: 使用数据库客户端(SSMS)的界面工具.右键选择要导出数据的数据库,选择“任务”——“导出数据”,下图1,按照向导一步一步操作即可.而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等.当然在可以在向导进行修改.需要注意的是如果标题不是

mysql5.1.33到mysql5.5.33数据迁移的过程中要注意的问题

背景:公司要把测试库mysql5.1.33上面的数据迁移到mysql5.5.33上面,5.1上面的表大都是myisam表,为了尽量让数据一致,用了--lock-all-table选项 注意事项: 1,可以先导权限表,这样就可以把业务迁移到已经导成功的那一部份库上面 2,导之前要先把binlog禁掉,这样导入的速度会快一些,set global sql_log_bin=OFF,没有禁用binlog的情况下每小时大约只能导1G多的数据.禁用binlog后每个小时大概可以导入20G的数据 3,选择in

Django模型修改及数据迁移

Migrations Django中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行同步修改,也不处理数据模型的删除. 如果你新增或修改数据模型里的字段,或是删除了一个数据模型,你需要手动在数据库里进行相应的修改或者使用South.Django 1.7中已经集成了South的代码,提供了3个新命令: migrate: 用于执行迁移动作,具有syncdb的功能 makemigrations: 基于当前的model创建新的迁移策略文件 sql

mysql数据迁移

一. 数据迁移简介所谓的数据迁移,就是指将原有的数据库系统迁移到另外一个业务系统上数据迁移的原因是多种多样的,有可能是业务变更.硬件升级.平台切换或升级mysql数据库 迁移的注意事项:(1).相同版本可以迁移(2).注意版本可以使用的引擎(3).低版本可以向高版本进行数据迁移,高版本一般兼容低版本的特性(4).高版本的数据不能向低版本进行数据迁移,会出现数据不兼容的情况(5).迁移是请注意导出数据和备份数据,出现迁移失败时,立即启动备份方案,保证公司业务的正常运行(6).在数据迁移时,要选择用