一次较为完整的oracle数据库数据迁移过程

作为一个后端开发者, 需要处理的问题会非常多非常杂,不断的接触各方面的知识,总结心得才能有所提高。

最近我们将甲方的信披系统改造后并入了我们的系统,开发基本完成,接下来数据迁移就是一个大问题了。因为之前其它开发商系统的数据库设计极烂,所以这次数据迁移稍微显得麻烦,而数据迁移最大的要求就是保证数据的正确性。

在此把这次迁移的方式记录下来,也希望以后有所提升之后能有更好的方案。


总体的方案上  是先把原库的表导入到我们库,然后写存储过程,对重构的字段做对应,然后导入到我们的新表之中,最后删除老的表。


原库的表导入我们库  我们在这里用到的是oracle的 exp imp命令

注意exp imp命令直接在dos下运行就行  不需要进入sqlplus

下面是exp命令和imp命令

Exp disinfo2/disinfo2@disinfo2 log=disinfo_emp.log file=C:\Users\hundsun\Desktop\cbs信披改造迁移数据\dmp\disinfo.dmp 
tables =(TBL_INFO_DISCLOSUER_APPLY,TBL_DISCLOSUER_APPLY_FILE,TBL_FILE_PATH,TBL_FILE_INFO,TBL_INFO_DISCLOSUER_HANDLE_LOG,TBL_DISCLOSUER_LEAVENET_LOG,TBL_DIRECTIONAL_INVESTORS)

imp cfae_cbs/hundsun@1538CBS log=disinfo_imp.log file=C:\Users\hundsun\Desktop\cbs信披改造迁移数据\dmp\disinfo.dmp 
tables =(TBL_INFO_DISCLOSUER_APPLY,TBL_DISCLOSUER_APPLY_FILE,TBL_FILE_PATH,TBL_FILE_INFO,TBL_INFO_DISCLOSUER_HANDLE_LOG,TBL_DISCLOSUER_LEAVENET_LOG,TBL_DIRECTIONAL_INVESTORS)

意思应该都明确易懂, 用户名/密码 连接   日志输出地址  需要导入或导出的表。    文件做成bat或sh直接运行就可以了 非常的方便快捷。


这样所有我需要的表都转移到我们自己的库里面。

下一步就是写存储过程,重构对应字段了。


下面是主表的迁移存储过程  关键的地方我添加了注释解释一下

create or replace procedure sp_disinfo_apply_insert
as

--原信披库申请表中存储了所有历史数据  先改造成之前版本进入历史表  所以进入申请表的数据只为版本号最高的数据
cursor cur_infordis_apply is  --此处是游标 批量导入数据基本都需要用到  相当于把数据做成一个list 方便之后foreach的循环导入
         select t.* f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值