异构数据库迁移
其他数据库迁移到 oracle ,以移植 db2 数据库对象到 Oracle 的操作说明为例,其他数据库迁移到 oracle 类似。
移植之平台和相关工具
OS:linux
DBMS:db2 Oracle 10g for linux
Migration Tool:Oracle sql developer-2.1.1.64.45
Sql Develper和Migration Workbench简单介绍
以下是摘自Oracle官网:
Ⅰ Oracle SQL Developer 是一个免费的图形化数据库开发工具。使用 SQL Developer,您可以浏览数据库对象、运行 SQL 语句和 SQL 脚本,并且还可以编辑和调试 PL/SQL 语句。您还可以运行所提供的任何数量的报表,以及创建和保存您自己的报表。SQL Developer 可以提高工作效率并简化数据库开发任务。
SQL Developer 可以连接到任何9.2.0.1 版和更高版本的 Oracle 数据库,并且可以在 Windows、Linux 和 Mac OSX 上运行。
Ⅱ Oracle SQL Developer 移植工作台是重新开发的新工具,它极大地扩展了原来的 Oracle 移植工作台的功能和可用性,可以将 Microsoft Access、Microsoft SQL Server 和 MySQL以及db2( 早期低版本的 sqldeveloper 不支持 db2 ) 数据库移植到 Oracle。
移植之驱动配置
1) 检查下你装的Sql Developer的版本,我的是Oraclesql developer-2.1.1.64.45。
2) 配置Sql Developer的运行环境,因为如果设置不好,我们将不能连接第三方数据库(非oracle数据库),本文指的就是db2.
背景知识1:不加载驱动之前,如果我们新建立一个数据库连接时,会出现如下窗口。这里可以连接的数据库,仅仅是Oracle和Access (即是两种默认的数据库)
见图(一)
图(一)
怎么可以让SQL Developer可以访问其它数据库?
答案是:添加JDBC 驱动,使其可以访问诸如db2、My Sql、Sybase等数据库.
添加三方数据库支持的方法
点击sql developer的菜单的选项→ 工具(Tools)→ 首选项(Prefences).见图(二)。
图(二)
点击弹出对话框中数据库(Database)选项→第三方JDBC 驱动程序(Third Party JDBC Drivers)→添加条目,把你的驱动程序加进去。如下图三
图 三
补充说明,这个应该先说的. 即是我们首先要准备好db2的JDBC驱动。
至此我们仅仅是做了可以建立db2的连接的准备工作。
真正的开始
以上只是配置Oracle Sql Developer可以连接db2,这是前提.之下的才是移植的步骤
Step 1 create a oracle connect
鼠标选中连接,然后单击右键,选择建立新连接,弹出新建/选择数据库连接窗口,连接名任意命名,用户system 口令及system用户密码,主机名oracle数据库所属主机ip,端口1521,sid 是oracle的实例名,填写好的样式如下图四
图四
建立次连接的用途: 1 把资料档案库建立在此连接上
2执行移植过程中产生的DDL语句
3 为什么用system用户连接,涉及到权限问题,最好用system用户。
Step 2 : creat a DB2 connect
方法同建立Oracle的连接类似,配置是否成功,点击测试可以查看是否成功,这个连接就是你要迁移的源数据库目标。这里不再赘述。截图见图五:
图五
step 3 create arepository( 创建档案资料库 )
这一步创建资料档案库,工具 --- à 移植 - à 资料档案管理 - à 创建资料档案库 如图六
图六
紧接上图,鼠标左键单击创建资料档案库,则会出现如下图七样例,从下列菜单中选择 test1_25, 此连接名就是 step1 创建的连接,单击创建,把资料档案库建立在此连接上。
图 7
Step 4 Capture table ( 捕获表 )
这时依次展开之前建立的db2的连接(我的例子名称是db2test13),找到要迁移的表,选择捕获表(Capture db2),所捕获的表即是迁移的表,如图八,点击之后会弹出捕获数据库窗口,捕获结束后,点击关闭按钮即可,这时你再看左边栏下的捕获的类型将多出一个db2数据库样的连接,图九标示红线部分
图八
图九
Step 5 Convert to Oracle model
选中刚才捕获表后的那个连接,及图九红线标示所指连接,右键选择转化为 oracle 模型,这是左边栏的转换的模型将多一个节点,如图十
图十
Setp 6 修改方案名
此处需要修改方案名,方案名要与导入数据库中的方案名相同如图十一。
图十一
Step 7 Generate Sql
右击Step 5下的转换的模型→点击生成(生成Oracle能识别的SQL语法),见图十二,生成的sql见图十三。
图十二
图十三
Step 8 execute sql
连接上要导入的数据库,如图十四标示,执行刚才生成的sql。
图十四
Step 9 Move Data
Step 5下的转换的模型,右键,选择移动数据。如下图十五
图 十五
图 十六
Step 10 Test
select table_name from user_tables 通过此查询可以查询出刚才迁移的表名
select * from 表名(迁移的表名) 查询迁移的数据
ps:这上面如何加上图片呢?图片为什么不显示?