在异种机之间进行数据库迁移是一件麻烦的事,但有时候为了进行数据库升级或其他原因又必须进行这种操作,我在工作中就遇到了这种情况,要求是将原来在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上运行。
- 用Photoshop给漂亮的烫发MM抠图
- Photoshop透明婚纱抠图大法
- Photoshop:让MM做个“变色龙”
- 用Photoshop来制作一款精美的宝宝照片墙
- Photoshop绝色美女通道抠图法
- 用Photoshop教你打造绚丽光芒效果
巧巧读书:http://www.qqread.com/oracle/2006/08/e843189052.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 教你正确的理解什么是数据库恢复 (14次浏览)
- Oracle数据库系统使用的几条经验分享 (5次浏览)
- JDBC连接Oracle数据库的十个技巧 (4次浏览)
- Oracle数据库三种标准的备份方法 (4次浏览)
- Oracle数据库的四种启动方式 (3次浏览)
- 在TransactionScope中优先使用Oracle的.NET驱 (2次浏览)
- Eclipse连接Oracle数据库的具体步骤 (2次浏览)
- 如何手工创建Oracle数据库 (1次浏览)
- 提高Oracle数据库系统Import的性能 (0次浏览)
- Oracle 9i在AIX上的性能调整 (0次浏览)



