配置用户和环境

迁移资料档案库是存储迁移过程中收集和转换的元数据的数据库方案。

为迁移创建用户

为迁移创建用户。

  1. 以管理员用户身份登录到 Autonomous Database。
  2. 为迁移元数据创建迁移资料档案库用户并为元数据授予用户无限空间限额。
    本示例使用用户 mwrep
    SQL> CREATE USER MWREP 
    IDENTIFIED BY Welcome112233 
    DEFAULT TABLESPACE DATA
    TEMPORARY TABLESPACE TEMP;
    ALTER USER MWREP QUOTA UNLIMITED on DATA;
  3. mwrep 用户授予权限。
    SQL> GRANT 
        CONNECT, 
        RESOURCE, 
        CREATE SESSION, 
        CREATE VIEW, 
        CREATE MATERIALIZED VIEW 
        TO mwrep;

创建迁移资料档案库

要将 Microsoft SQL Server 数据库转换为 Oracle,请创建一个资料档案库来存储所需的资料档案库表和 PL/SQL 程序包,并创建与 mwrep 用户的 SQL Developer 连接。

  1. 在 Oracle Cloud 控制台中,单击连接选项卡,右键单击连接,然后选择新建连接
    此时将显示新建 / 选择数据库连接窗口。
  2. 新建 / 选择数据库连接窗口中填写以下连接字段
    1. 名称:输入 mwrep_adb(或标识连接的名称)。
    2. 数据库类型:选择 Oracle。
    3. Authentication Type(验证类型):选择“Default(默认值)”。
    4. 用户名:输入 mwrep
    5. 密码:输入密码,然后选择保存密码
    6. 连接类型:从下拉菜单中选择云 Wallet
    7. 配置文件:浏览到保存自治 Wallet zip 文件的位置,然后选择 wallet_adbName.zip 文件。
      输入 zip 文件后,将自动填充默认数据库服务。
  3. 单击测试测试连接。
    验证页面左下方的连接状态是否显示状态:成功
  4. 单击保存以保存连接,然后关闭窗口。
    连接已保存,并列在连接选项卡中的连接下。
  5. 确认在 Connections(连接)选项卡中列出了以下连接。
    • admin_adb
    • mwrep_adb
    • SQL Server 2016
  6. 右键单击 mwrep_adb 连接,选择迁移资料档案库,然后选择关联迁移资料档案库
  7. 单击确定

捕获 Microsoft SQL Server 数据库的快照

使用 SQL Developer 迁移向导可捕获包含 Microsoft SQL Server 数据库元数据和数据的“快照”。

在此示例中,使用两个样例数据库部署了源 SQL Server:AdventureWorks (OLTP DB) 和 AdventureWorksDW (Oracle Autonomous Data Warehouse)。可以从 Microsoft SQL Server Github repo 下载这两个示例数据库。

作为脱机迁移的一部分,建议停止连接到 MS SQL Server 的所有应用程序,或者将 SQL Server 数据库切换到 ReadOnly 模式,以便捕获一致的数据库状态。

  1. 简介:选择工具迁移,然后选择迁移
    迁移向导将指导您完成将 SQL Server 数据库转换为 Oracle 的步骤。
  2. 资料档案库:为迁移资料档案库选择连接。选择 mwrep_adb 连接,然后单击下一步
  3. 项目:为项目提供名称并指定输出目录(通常为 wkdir,其中解压缩了 mssqlservermigration.zip)。单击下一步
    项目是迁移实体的容器。
  4. 源数据库:提供源数据库详细信息并接受所有默认值。默认情况下,模式为联机,连接为 SQL 2016。单击下一步
  5. 捕获:为定义捕获选择 AdventureWorks 数据库,然后单击下一步
  6. 转换:指定转换选项。您可以添加新规则。单击下一步
  7. 转换:选择要翻译的 SQL 对象。该工具自动选择 sql 对象。单击下一步
  8. 目标数据库:提供目标数据库详细信息。对于模式,选择脱机。您可以选择在此处删除目标对象。保存生成的脚本目录位置,通常为 wkdir\ProjectName\generated\YYYY-MM-DD_HH-MM-SS 格式。单击下一步
  9. 移动数据:提供有关数据移动的详细信息。模式应为“脱机”。保存数据移动脚本目录的位置,通常为 wkdir\ProjectName\datamove\YYYY-MM-DD_HH-MM-SS 格式。单击下一步
  10. 摘要:提供整个项目的摘要。保存详细信息。要进行修改,请单击返回。单击完成
    此时将显示“Database Migration Status(数据库迁移状态)”框。

完成迁移并在 SQL Developer 中加载 master.sql 文件后,将显示一条弹出消息:Migration actions have successfully completed。对象和数据通过 SQL Developer 加载和迁移到自治数据库。

创建 Oracle Database 对象

Oracle SQL Developer Migration Workbench 会生成 DDL 语句,以基于转换的模型对象创建 Oracle Autonomous Database 对象。运行 DDL 语句将导致在 Oracle Autonomous Database 中创建对象。可以使用 SQL Developer 或 sqlplus 命令行执行 sql 脚本在 Oracle Autonomous Database 上创建 SQL Server 转换的对象。
  1. 查看“Generated Script Directory(生成的脚本目录)”以了解所需的输出。
    1. 使用 Windows 文件浏览器、Windows 命令或 Windows 功能程序导航到生成的脚本目录。
      通常,它位于 mssqlservermigration.zip 文件安装期间定义的 wkdir 目录中。
    2. 展开 wkdir 目录树。
      该目录应如下所示:
      Wkdir
      	[projectName]
      		datamove
      		generated
      			YYYY-MM-DD_HH-MI-SS
    3. 打开日期和时间戳目录,应看到以下 oracle sql 脚本:
      dropallschemas.sql
      master.sql
      passworddefinition.sql
      reportallstatus.sql
  2. 通过通过 sql developer 或直接 sqlplus 命令行界面执行 master.sql 脚本,在 Oracle Autonomous Database 上创建 SQL Server 转换的对象。
    • 要使用 SQL Developer 在 Oracle Autonomous Database 上创建 SQL Server 转换的对象,请执行 master.sql 脚本:
      1. 从右侧图标的下拉菜单中选择 admin_adb。然后单击运行脚本 (F5)。
      2. (可选)运行以下 SQL 查询以查看因转换过程而创建的新 Oracle 方案。
        SQL> select * from dba_users where created > sysdate - 1;
    • 要使用 sqlplus 命令行在 Oracle Autonomous Database 上创建 SQL Server 转换的对象,请执行以下操作:
      1. 执行 master.sql 创建元数据和方案结构。
        $ sqlplus admin/[password]@atpdb_tp @master.sql
      2. 通过运行 reportallstatus.sql. 创建方案验证状态报告
        $ sqlplus admin/{password]@atpdb_tp @reportallstatus.sql

        这将生成每个方案的输出文件,在本例中为 7 个日志文件。进行检查以确保没有错误并且所有对象显示的是 VALID 状态。

此时,该流程已将 MS SQL Server 数据库 AdventureWorks 数据库转换为 Oracle Autonomous Database 上的 Oracle Database 结构。转换过程在 Oracle 上创建了 7 个新方案:
  • ADVENTUREWORKS
  • SALES_ADVENTUREWORKS
  • PERSON_ADVENTUREWORKS
  • PURCHASING_ADVENTUREWORKS
  • EMULATION
  • HUMANRESOURCES_ADVENTUREWORKS
  • PRODUCTION_ADVENTUREWORKS