Oracle SQL Developer Migrations:入门

 

日期:2011 年 3 月

Oracle SQL Developer 包含迁移支持,让用户可以将数据库对象和数据从 IBM DB2、MySQL、Microsoft SQL Server、Microsoft Access、Sybase 和 Teradata 迁移到 Oracle。本文档详细介绍在数据库迁移之前所需的环境准备和设置步骤,并简要概述了新 Migration Wizard 的工作原理以及迁移的每个主要步骤。有关具体支持版本的列表,请参见这个支持的平台文档。

目录

  1. 先决条件
  2. 迁移前环境准备
  3. 使用 Migration Wizard
    • 捕获数据库
    • 转换捕获的模型
    • 生成目标
    • 移动数据
  4. 复制到 Oracle

1.先决条件

  • 您需要访问提供迁移信息库的 Oracle Database 10g 或 Oracle Database 11g 以及用于目标迁移的 Oracle 数据库。它们可以是相同的数据库。
  • 下载 Oracle SQL Developer 3.0。SQL Developer 早期版本也支持数据库迁移,但是 SQL Developer 3.0 中的工作流程已经发生更改,我们建议您使用新版本进行迁移。

2.迁移前环境准备

您只需要创建一次信息库,然后就可以重复用它来执行迁移。

建立迁移信息库

要使用 SQL Developer Migrations,您需要创建一个迁移信息库。它是一种数据库模式,用于存储迁移过程中收集和转换的元数据。该信息库包含 42 个表、24 个视图以及所需的主键和索引,还包括触发器和 PL/SQL 代码。我们建议您为此配置一个专用数据库模式(尽管这不是必需的)。

要在新模式中为元数据构建信息库,用户需要以下角色和系统权限:

  • RESOURCE
  • CREATE SESSION
  • CREATE VIEW

创建模式并授予上述权限后,为用户创建连接,然后就可以安装信息库了。有关创建用户和设置连接的详细信息,请参阅 SQL 开发人员文档

在 SQL Developer 中,选择 Tools > Migration > Repository management > Create Repository...,然后选择为信息库所有者创建的连接。

这会花费少许时间,其间将显示一个进度栏。

配置第三方连接

您现在需要为要迁移的数据库配置一个数据库连接。此过程有两个步骤:

  • 配置 JDBC 驱动程序,以及
  • 配置第三方连接

每个第三方连接(MySQL、Microsoft SQL Server 和 Sybase)只需执行一次 JDBC 驱动程序配置,而第二步则需要针对要迁移的每个数据库执行一次。

配置 JDBC 驱动程序

JDBC 是 Java 数据库连接标准,它提供了一种让 Java 程序连接到数据库的机制。有关 JDBC 的更多信息,请参见这里

要使用 JDBC 访问数据库,我们必须使用 JDBC 驱动程序。您可以从相应数据库供应商处获取此驱动程序,供应商通常都提供了 JDBC 驱动程序的免费下载链接。

此版本的 Migration Workbench 已使用以下 JDBC 驱动程序进行了测试。下载之后,您需要将驱动程序二进制 jar 文件解压缩到计算机上的某个位置。驱动程序二进制 jar 文件通常是位于下载的存档文件中的一个单独 jar 文件:

下载之后,您需要将驱动程序二进制 jar 文件解压缩到计算机上的某个位置。驱动程序二进制 jar 文件通常是位于下载的存档文件中的一个单独 jar 文件。将相关的 jar 文件解压缩到您的磁盘后,您需要配置 SQL Developer,告诉它此驱动程序所在的位置。

  1. 在 SQL Developer 中,选择 Tools -> Preferences...
  2. 在左侧的树中,展开 Database 选项
  3. 单击 Third Party JDBC Drivers
  4. 单击 Add Entry...
  5. 导航到第三方驱动程序 jar 文件,选择 OK

使用 Check For Updates 配置 JDBC 驱动程序

Oracle SQL Developer 还支持使用 Check for Updates 安装 MySQL、Microsoft SQL Server 和 Sybase 所需的驱动程序。要使用 Check for Updates,请启动 SQL Developer,选择 Help -> Check for Updates。请按照向导提示操作,如下所示:

  • 启动 Oracle SQL Developer
  • 选择 Help -> Check for Updates
  • 请按照 Check for Updates 向导提示操作。选择所需的驱动程序或第三方扩展。
    • 您需要阅读并同意许可协议,然后使用您的 OTN 帐户登录 OTN。
  • 出现提示后,重新启动 SQL JDeveloper。
  • 由于保留了连接和设置,因此无需选择“Migrate User Settings”对话框。

注:您需要使用 2.1 配置 JDBC 驱动程序中描述的方法来安装 IBM DB2 和 Teradata 的驱动程序。

添加第三方连接

现在,您应为要迁移的数据库添加第三方连接。

为此,执行以下步骤:

  1. 在 SQL Developer 主连接导航器中,单击左上角的绿色“加号”图标调用 new connection 对话框。
  2. 填写第三方数据库的详细信息。选择您要操作的第三方数据的选项卡。系统为 Microsoft SQL Server、Microsoft Access、DB2 MySQL 和 Teradata 提供了相应的选项卡

配置完成后,您可以像浏览其他 Oracle SQL Developer 连接一样浏览第三方数据库。

3.使用 Migration Wizard

Oracle SQL Developer 3.0 支持联机和脱机迁移。

  • 联机迁移需要直接连接到第三方数据库并将数据库对象和数据迁移到 Oracle
  • 脱机迁移则需要使用您在第三方数据库中准备的文件。拥有此方法所需的相应文件之后,您就不再需要连接到第三方数据库。

Oracle SQL Developer 3.0 引入了迁移项目的概念,并使用 Migration Wizard 引导您完成迁移过程。要选择第三方数据库连接,请右键单击该连接,然后选择 Migrate to Oracle...

您需要了解有关迁移向导的一些详细信息:

  • 信息库所有者的连接名称(第 2 步)
  • 您需要访问保存所生成脚本的文件目录(第 3 步)
  • 这是联机迁移还是脱机迁移(第 4 步)
  • 联机迁移的第三方数据库连接(第 4 步和第 8 步)
  • 要迁移的数据库的名称(第 5 步)
  • Oracle 数据库中具有创建新用户和创建表的权限的用户的连接名称。此用户用于运行 create ... 脚本和移动数据。例子包括 SYSTEM 和具有 DBA 权限的其他用户。(第 7 步和第 8 步)

按照 Migration Wizard 中的步骤操作。

Migration Wizard 完成后,请选择 View > Migration Projects 打开 Migration Projects 导航器。列表中将显示您的新迁移项目。展开新项目,查看 Captured Database ObjectsConverted Database Objects。展开 Converted Database Objects,查看已创建用户列表。这些是 Oracle 数据库中新用户的名称。要查看迁移的数据,您需要为新用户创建连接。

Migration Wizard 将引导完成以下过程。完成后,您可以随时重新进入这个过程。这将重新打开向导并根据需要完成相应阶段。

捕获数据库

此步骤是迁移过程的第一步。此步骤用于捕获第三方数据库当前状态的快照,需要为 Migration Workbench 提供数据库的“时间点”视图。此步骤完成后,Migration Wizard 将处理信息库中存储的元数据,而不是针对您的实时数据库发出查询。

联机迁移的此阶段使用您为第三方数据库提供的连接,输出显示在新迁移项目下的 Captured Database Objects 节点中。

转换捕获的模型

迁移过程的下一步是将捕获的数据库模型转换为 Oracle 特定的模型。捕获的模型包含您的数据库供应商定义的数据类型、命名方案等;现在必须转换为 Oracle 格式。迁移完成后,您可以返回 Captured Database Objects 节点,从这里重新运行向导,再次转换部分或全部对象。

转换捕获的模型:

  1. 导航到 Captured Database Objects 节点
  2. 选择节点并单击鼠标右键
  3. 选择 Convert...

    这会在转换阶段再次打开 Migration Wizard,跳过所有之前的步骤。您将看到数据类型转换对话框。通过该对话框,您能够指定将特定于平台的数据类型转换为特定于 Oracle 的数据类型可能需要的数据类型转换。大多数情况下,可以安全地接受此处的默认值。如果需要,您可以更改所使用的映射,做出选择之后,单击 Next 继续运行向导。

为转换的模型生成目标

转换过程完成后,SQL Developer Migrations 就会有一个转换后数据库的模型。它用于生成创建新的 Oracle Database 模式的 SQL 脚本并运行这些脚本。注意:此过程的这一阶段需要访问具有特权的 Oracle 用户,例如 SYSTEM 和其他能够创建用户、表等的用户。用于执行脚本的就是此用户(连接)。

这些生成的脚本将位于您在向导中指定的目录中。生成这些脚本:

  1. 导航到 Converted Database Objects 节点
  2. 选择节点并单击鼠标右键
  3. 选择 Generate Target...

Migration Wizard 将生成创建数据库模式所需的 SQL。

将数据迁移到 Oracle

Migration Wizard 的最后一步是将数据迁移到新数据库。迁移数据是将第三方数据库的数据复制到 Oracle 数据库中的新表的过程。Migration Wizard 使用运行脚本所需的 Oracle 数据库连接来移动数据。

重新进入 Migration Wizard 并移动数据:

  1. 导航到 Converted Database Objects 节点
  2. 选择节点并单击鼠标右键
  3. 选择 Move Data...

这将再次调用 Migration Wizard

  1. 标记为“Source Connection”的字段用于第三方数据库中的连接
  2. 标记为“Target”的字段是 Oracle 中需要将数据移动到新创建的用户的特权用户。
  3. 单击 OK。

完成后,您的数据现在应当位于新创建的数据库模式中。

4.复制到 Oracle

Oracle SQL Developer 3.0 引入了一个 Copy to Oracle 选项,用户无需迁移信息库即可将表和数据从第三方数据库复制到 Oracle。这个快速迁移选项用于将几个表快速复制到 Oracle,无需其他设置。此特性仅适用于复制表和数据;如果要迁移其他内容,请使用 Migration Wizard。

要使用 Copy to Oracle 选项,请选择在前面 2 添加第三方连接中创建的第三方连接。这将会调用一个连接对话框,您可以从中选择用于复制表的 Oracle 连接,然后单击 Apply。

注:MS Access:我们建议对 MS Access 用户使用 Copy to Oracle 选项,因为无需任何系统权限即可访问数据库元数据。对于 MS Access 连接,也可以通过右键单击连接来选择 Copy to Oracle 选项,轻松启用所有要复制的表。


后续步骤
 参与论坛:Oracle Migration Workbench
 多读、多做 — 请参见 OTN 上的 Oracle 迁移技术中心
false ,,,,,,,,,,,,,,,,