论数据迁移
2015 年 5 月,我参加了 X 市公安局数据中心支撑平台建设项目,其主要目的是构建一
个通用的警务框架平台。由于该项目是交钥匙工程,我们在开发了数据中心支撑平台后,
实施了数据迁移工作。首先,我们与用户充分沟通分析了其对旧数据的需求和新旧系统的
区别,确定了数据迁移对象和工作量,并制定了“分析-实施-测试维护”的分段迁移工作方案。
在实施数据迁移时,我们采用 RMAN 的 Convert 工具进行异构环境下的数据迁移,为了避
免出现异常,选择了版本一致的目标数据库和源数据库;采用 impdp/expdp 工具进行同构
环境下的数据迁移,并设置了合适的并行度以提高迁移速度;同时,我们采用 dblink+脚本
方式进行了数据迁移测试。
正文
2015 年 5 月,我所在的公司通过公开招标竞标方式获得了 X 市公安局数据中心支撑平
台建设项目,工期 240 天,公司组建了由 11 人组成的项目开发团队。我担任系统分析师,
主要负责系统分析和设计工作。
X 市公安局信息化建设起步较早,经过多年的建设,已取得了丰富的成果,各业务警
种的信息化水平得到明显的提升。随着警务信息化建设的不断深入,传统的警务业务系统
已经出现疲态,技术瓶颈逐步显现,相关的情报研判和案情分析的响应速度越来越慢,甚
至有些场景已经完全不能支撑。为了实现警务信息化的“深入建设”和“深度应用”,在公安部、
省公安厅的部署下,X 市公安局决定尽快实施数据中心支撑平台建设,充分发挥现有资源
的作用和新技术的优势,形成具有公安特色、满足警务业务需求的数据中心支撑平台。在
项目建设过程中,我们建设了统一的公安数据处理平台、可再生的公安数据服务平台、开
放式的公安数据应用平台和健全的安全与运维监控平台,构建了统一、高扩展性和高集成
性的警务信息支撑平台。由于该项目是交钥匙工程,为了能够将新开发的数据支撑平台平
稳地上线和支持警务业务,我们实施了数据迁移工作。
系统转换时的数据迁移主要方法有系统切换前通过工具迁移、系统切换前手工录入以
及系统切换后新系统生成,为保证公安机关业务系统的高可用性和数据迁移的效率,我们
采取了系统切换前通过工具迁移数据的方法来进行数据迁移。
一、系统分析
我们针对系统原有业务进行分析,了解到 X 市公安局现有信息化建设成果分散在刑侦、
经济、户籍、交警、消防、治安和出入境管理等众多业务部门中,各个业务系统间的数据
交互和共享比较困难,往往需要借助第三方工具来实现,效率低、安全性差。通过新旧系
统的分析我们发现了二者在数据使用和业务系统交互等方面存在较明显的差异,在与用户
充分沟通的基础上,我们确定了数据转换和迁移的工作量、工作流程和进度。
在系统分析阶段,我们与用户进行了充分的沟通,明确了用户对旧有系统的要求,确
定了数据转换和迁移的对象,避免了盲目性的进行全部数据转换和迁移。在此基础上,我
们对需要迁移的业务系统的功能模块、业务流程、数据格式以及运行环境进行了统计、分
类和汇总,针对需要跨平台迁移的业务系统我们采用 RMAN 工具来实现,针对 Oracle 数据
库内的特定表的迁移我们采用 impdb/expdb 工具来实现,采用“分析-实施-测试维护”的总体
思路分阶段迁移数据,并制定了数据迁移的应急方案以保证数据迁移的可靠性。
二、数据迁移的实施
在 X 市公安局数据中心支撑平台项目建设过程中,我们不仅开发了新系统而且需要集
成和迁移大量的业务系统。根据原有系统的业务流程、数据格式、运行环境以及迁移工作
量,针对不同的场景,我们采用了不同的方式来实现,主要有整库迁移、表空间迁移和
impdp/expdp 工具迁移,并在局域网内通过 dblink+脚本方式迁移一定量的数据表进行测试。
1、异构环境下迁移数据