便于说明,案1和案2的定义说明下
案1:需要在sqlserver端安装oracle客户端来实现移行的方案
案2:不需要在sqlserver端安装oracle客户端实现移行的方案
之前把实现中的技术难点,例如大数据量的表,包含blob字段的表等如何移行,基本上都说明了,接下来将实现案2的整体的架构,按照调用顺序说明,也就是不需要安装Oracle客户端的移行方法。
1,3个调用入口
01_Exec_Restore.bat:进行Sqlserer数据库的恢复,需要恢复或者sqlserver的DB不存在可以执行,不是必须执行
02_Exec_Oracle.bat:将Oracle的表数据导出到txt的文件中,这些数据文件将拷贝到Sqlserver服务器,准备导入到Sqlserever数据库
03_Exec_Sqlserver.bat:将导出的数据文件,导入到Sqlserver数据库。
主程序3个调用接口
可能你会有疑问,像案1那样,Master和业务数据单独移行在这里没有看到。为了调用的batch没有那么多,这部分放到02,03的batch内部,通过通过菜单的形式,让客户来选择。具体如下:
echo.
echo 操作確認:移行データ用のデータファイルを導出する
echo 1:マスタのみ
echo 2:トランのみ
echo 3:マスタとトラン
Set /P Choice="操作したい数字を入力して、Enterキーを押してください:"
然后根据变量Choice的值,来进行只处理Master数据,业务数据,或者都处理。
2,内部处理的结构,01~05
内部详细结构
01_Exec_Restore.bat恢复处理,调用01_DBMigrationV5_Restore.ps1,进行Sqlserver的恢复
02_Exec_Oracle.bat Oracle数据导出处理,主要调用04_1_DataExportFromOracle.ps1,进行表数据的导出,保存到export文件夹
03_Exec_Sqlserver.bat 数据导入处理,主要调用04_2_ImportDataToSqlServer.ps1,将export下的数据文件导入到sqlserver的对应表中
整体的结构就是这样,因为不能安装oracle客户端,所以导出和导入是分开处理的。和案1相比04的处理分为2部分。
鉴于篇幅限制,先介绍到这,接下来会陆续说明。有好的想法意见,可以关注联系我,谢谢