您现在的位置是:首页
>
数据库迁移需要注意的问题 在异种机之间实现数据库迁移
在异种机之间实现数据库迁移 在异种机之间进行数据库迁移是一件麻烦的事 但有时候为了进行数据库升级或其他原因又必须进行这种操作 我在工作中就遇到了这种情况 要求是将原来在vax机 操作系统为o e
在异种机之间实现数据库迁移

在异种机之间进行数据库迁移是一件麻烦的事 但有时候为了进行数据库升级或其他原因又必须进行这种操作 我在工作中就遇到了这种情况 要求是将原来在vax机(操作系统为open vms)上的生产管理库procdb(sybase数据库)迁移到alpha机(操作系统为digital unix)上 借助syabse的power designer和unix的shell命令可以很方便地完成此项工作 具体过程如下 一 ALPHA服务器上建立新的数据库procdb .建立生产管理库procdb #isql Usa Pxxxxxxx >create database procdb >on data _dev= >log on data _dev= >with override >go .增加新用户 >use master >go >sp_addlogin sss xxxxxxxxxx procdb >go >use procdb >sp_changedbowner sss >go 二 生产管理库procdb的移植 .使用PowerDesigner 从vax上的procdb中移出数据库结构 * 运行PowerDesigner * 选择File菜单下的Reverse Engineering … * 连接到vax上的procdb数据库 * 迁移库结构 * 保存该文件 .将从vax获取的数据库结构移入alpha机的procdb数据库 * 连接到alpha上的procdb数据库 * 选择Database菜单下的Gernate Database 将数据库表结构写入alpha机的procdb数据库; * 执行Database菜单下的Gernate Trigger and Procedure 将存储过程和触发器写入alpha机的procdb数据库; .数据迁移 * 注册到unix机上 用select 语句选出Procdb数据库中的表并且输出到文件tabname txt中 #isql U sss P xxxxx o tabname txt > select name from sysobjects > where type = U > go * 建立awk out文件 用于产生从vax机上读取数据的bcp命令批 # vi awk out awk out { print bcp $ out $ dat U sss P xxxxx S vax_sybase c } * 产生读取数据的bcp文件bcp out #awk f awk out tabname txt >bcp out 产生的bcp out文件格式如下 bcp table out table dat U sss P xxxxx S vax_sybase c bcp table out table dat U sss P xxxxx S vax_sybase c bcp table out table dat U sss P xxxxx S vax_sybase c . . . * 建立awk in文件 用于产生写入数据到alpha机上的bcp命令批 awk in { print bcp $ in $ dat U sss P xxxxx S alpha_sybse c } * 建立用于插入数据的bcp文件bcp in #awk f awk in tabname txt >bcp in 产生的bcp out文件格式如下 bcp table in table dat U sss P xxxxx S vax_sybase c bcp table in table dat U sss P xxxxx S vax_sybase c bcp table in table dat U sss P xxxxx S vax_sybase c * 执行这两个bcp文件 #ksh bcp out #ksh bck in 自此 数据库迁移完成 以上代码在digital unix上运行通过 power designer在Win 上运行 lishixinzhi/Article/program/Oracle/201311/18975
很赞哦! (1060)