频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在异种机之间实现数据库迁移

来源: 作者: 出处:巧巧读书 2006-07-31 进入讨论组

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

   巧巧读书:http://www.qqread.com/oracle/2006/08/e843189052.html

更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章