使用 IBM DB2 Migration Toolkit 迁移数据.docx
-
资源ID:5010519
资源大小:510.07KB
全文页数:8页
- 资源格式: DOCX
下载积分:15金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
使用 IBM DB2 Migration Toolkit 迁移数据.docx
使用 IBM DB2 Migration Toolkit 迁移数据最近您是否要将应用程序移植到Linux、UNIX®或Windows®上的IBM DB2® Universal Database(UDB) ?您是否想将数据从目前部署的Oracle或SQL Server 转移到DB2?那么,请通过本文学习如何使用IBM DB2 Migration Toolkit来完成这 个任务。简介和背景本文面向符合以下情况的开发人员、管理员或独立软件提供商(Independent Software Vendors, ISV): 拥有同时支持IBM DB2 Universal Database (UDB)和非IBM数据库(例如 Oracle和SQL Server)的数据库应用程序。拥有希望将自己的数据从SQL Server迁移到DB2的客户。人们常常问我以下问题:我已经成功地将数据库应用程序移植至DB2,但是目前还有一些客户在运行 Oracle/SQL Server而他们希望将生产系统转移到DB2。我该怎样迁移数据呢?如果用于非IBM平台的数据库模式与用于DB2的模式相同(或非常类似),那么可 以通过使用IBM Migration Toolkit (MTK)来完成数据迁移。因此,本文假设数据库 模式的移植已经完成,只关注如何将数据从Oracle或SQL Server数据库迁移到DB2(使用MTK中的数据迁移功能)。在本文中,我们将Oracle或SQL Server数据库称作源数据库,而将DB2数据库 称作目标数据库。我们假设您已经适当创建了一个具有模式的空的目标数据库。在开始之前,确信您已经: 下载并安装了免费的 IBM DB2 Migration Toolkit。有足够的磁盘空间,可以将源数据库卸载到安装了 MTK的系统的文本文件中。有一个用来创建源数据库的模式的脚本(用作MTK的输入)。任务1:导入用于源数据库的模式脚本1. 启动 MTK,并单击 Launch the Migration Toolkit product 按钮。2. 图1.启动MTK3.4.5.6.7.8.创建一个新的MTK项目。您可以随意为该项目起个名字。在下拉菜单中,选择 适当的源数据库类型以及目标DB2的版本(这里是DB2 for Linux、UNIX和Windows)o图2.创建一个项目将源SQL脚本导入MTK。MTK将解析这个脚本,生成源数据库的模式的一个内 部XML表示。这样,MTK就知道源数据库的结构。图3.导入源数据库DDL脚本9.提示:如果使用只包含表的DDL的输入脚本,可以提高MTK的性能。也就是 说,应去掉用于函数、触发器、存储过程等等的DDL。MTK只需要知道源表的 结构,生成导入/导入脚本即可。10. 在顶端,您将看到MTK有5个标签页。在Covert标签页中,单击Convert按 钮。在这一步中,MTK将解析上一步中提供的输入脚本。如果您的模式有很多 对象,那么这一步可能要花几分钟的时间。在完成转换之后,就会进入MTK的 Refine标签页。11. 图4.使用CONVERT让MTK知道源数据库模式12.13. 在refine标签页中,检查Translator Information,并确认所有语法都被接 受,而没有任何重大错误。14.图5.查看MTK的REFINE标签页15.注意,有效错误或警告可以放心地忽略。例如: 16 Duplicate definition of object-name 20 Object name has been changed to new-name任务2:将Oracle/SQL Server数据提取到文本文件中1. 至此,MTK已经知道源数据库以及需要提取数据的表,现在就可以生成用于DB2 的数据提取脚本和数据加载脚本。在Generate Data Transfer Scripts标签页中,指定用于数据提取和加载过 程的选项。图6.数据提取和加载选项我们建议选择以下选项:选项值原因DB2 DataLoadingOptions使用LOAD我们希望在DB2中有一个正确的源数据库数据 的副本。因此,这是正确的选项,因为您不希望 激活任何触发器。LOAD也要快于IMPORTDB2LOAD/IMPORTmode使用REPLACE当某些表加载失败时,您不希望将数据附加到任 何目标表后面,这时应该重现开始加载过程File Format使用DEL节省磁盘空间,保留字符串中的空格,在大多数 情况下都起作用重要:应确保Directory for data extraction中指定的目录有足够的空间,以便将源数据库卸载到文本文件中。2. 单击Create Scripts按钮。注意,这里并不真正提取或加载任何数据。这一 步只是根据MTK从输入脚本和上一步选定的选项中收集的信息,来生成执行上 述动作的脚本。3. 在Deploy to DB2标签页中,提供DB2数据库的名称。4. 提供关于以下各项的信息:o目标数据库名。o目标数据库(本地或远程)。o用于目标数据库的用户名和密码。用户名必须与目标数据库中创建表时 所在的模式相匹配。取消选择o Launch script-name in the database选择o extract (from source database and store data on this system o Load data to target database using generated scripts图7.提取和加载数据到目标数据库单击Change source database按钮,确认源数据库无误。提示:如果在 Change source database 对话框中看到 Driver Not Available, 那么需要更正Windows系统的类路径(classpath),以包含Oracle的 classes111.zip (或任何提供了 Oracle JDBC驱动程序的类文件)。这时可 以保存项目,退出MTK。更改类路径并重现启动MTK,以便继续处理这个项目。图 8. Driver Not Available 错误为了开始数据迁移,请单击Deploy按钮。检查产生的HTML报告,并确定数 据是否迁移成功。附加提示如果MTK不能接受您提供的输入脚本,那么修改该脚本,并将其重新转换,直到脚本 被顺利接受为止(通过查看Refine标签页中的消息)。您的目标是让MTK解析输 入脚本,使源数据库基表的结构的错误尽可能地少。除了涉及基表结构的错误或警告 之外,其他错误或警告可以忽略。例如,有关索引和视图的错误或警告就可以忽略。记住,当源模式与目标模式相同或几乎相同的时候,这种方法使用效果最好。如果这 种方法不适合您的情况,不管怎样,您应该试一试,使用MTK生成的脚本作为敲门砖。通过增加目标数据库的实用程序堆(utility heap),可以提高DB2 LOAD实用程序 的性能。db2 update db cfg for dbname using UTIL_HEAP_SZ 20000(recommendedminimum for a 2 CPU box)db2 force applicationall(to ensure thatthe change takes effect)一个很好的经验法则是,在DB2服务器上将util_heap_sz设为至少10000 x CPU数 目。如果系统内存不充裕,那么可以减少目标数据库中缓冲池的大小,因为DB2 LOAD 实用程序不使用缓冲池。如果正在使用系统管理存储(system managed storage, SMS)表空间,那么可以通过 启用多页分配来减少分配磁盘空间的开销。db2 force application all (The utility db2empfa can only work when the database is inactive)db2empfa dbname(This is an operating system level command)如果将数据提取到还没有被源数据库或目标数据库使用(在任务2的步骤1中指定) 的一个或多个磁盘上,可以进一步减少磁盘争用。