AWS Database Migration Service
分步迁移指南 (API 版本 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 3:测试到 Oracle 数据库实例的连接并创建示例架构

在创建 CloudFormation 堆栈后,使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接,然后创建 HR 示例架构。

使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接,并创建示例架构

  1. 在 SQL Workbench/J 中,选择 File,然后选择 Connect window。使用以下信息创建新的连接配置文件,如下所示

    对于此参数 执行该操作

    New profile name

    Type RDSOracleConnection.

    驱动程序

    选择 Oracle (oracle.jdbc.OracleDriver)

    URL

    使用您在上一步中检查 DMSdemo 堆栈输出详细信息时记录的 OracleJDBCConnectionString 值。

    Username

    Type oraadmin.

    密码

    提供在使用 AWS CloudFormation 模板创建 Oracle 数据库实例时分配的管理员用户的密码。

  2. 选择 Test 以测试连接。选择 OK 关闭该对话框,然后选择 OK 创建连接配置文件。

    
                            连接到 AWS Database Migration Service 的 Oracle 数据库实例

    注意

    如果连接失败,请确保在创建 CloudFormation 模板时分配的 IP 地址是您尝试从其连接的 IP 地址。这是在尝试连接到实例时最常出现的问题。

  3. 使用自定义 SQL 脚本 (Oracle-HR-Schema-Build.sql) 创建将用于迁移的 HR 架构。要获取此脚本,请执行以下操作:

    1. 将以下存档下载到您的计算机: http://docs.amazonaws.cn/dms/latest/sbs/samples/dms-sbs-RDSOracle2Aurora.zip

    2. 从存档中提取 SQL 脚本 (Oracle-HR-Schema-Build.sql)。

    3. Oracle-HR-Schema-Build.sql 文件复制并粘贴到当前目录中。

  4. 在文本编辑器中打开提供的 SQL 脚本。复制整个脚本。

  5. 在 SQL Workbench/J 中,将 SQL 脚本粘贴到显示 Statement 1 的 Default.wksp 窗口中。

  6. 选择 SQL,然后选择 Execute All

    在运行该脚本时,您将收到一条错误消息,指示用户 HR 不存在。您可以忽略此错误并运行脚本。此脚本会先删除用户,然后再创建用户,这会生成错误。

  7. 通过运行以下 SQL 查询验证是否已成功创建 HR 架构中的对象类型和计数。

    Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='HR' GROUP BY OBJECT_TYPE;

    此查询的结果应类似于以下内容:

    OBJECT_TYPE COUNT(*) INDEX 8 PROCEDURE 2 SEQUENCE 3 TABLE 7 VIEW 1
  8. 通过运行以下 SQL 查询验证 HR 架构中的约束数:

    Select CONSTRAINT_TYPE,COUNT(*) from dba_constraints where owner='HR' AND (CONSTRAINT_TYPE IN ('P','R')OR SEARCH_CONDITION_VC NOT LIKE '%NOT NULL%') GROUP BY CONSTRAINT_TYPE;

    此查询的结果应类似于以下内容:

    CONSTRAINT_TYPE COUNT(*) R 10 P 7 C 1
  9. 通过运行以下命令来分析 HR 架构:

    BEGIN dbms_stats.gather_schema_stats('HR'); END; /
  10. 通过运行以下 SQL 查询验证表总数以及每个表的行数:

    SELECT table_name, num_rows from dba_tables where owner='HR' order by 1;

    此查询的结果应类似于以下内容:

    TABLE_NAME NUM_ROWS COUNTRIES 25 DEPARTMENTS 27 EMPLOYEES 107 JOBS 19 JOB_HISTORY 10 LOCATIONS 23 REGIONS 4
  11. 验证表的关系。通过运行以下 SQL 查询检查拥有 10 名以上的员工的部门:

    Select b.department_name,count(*) from HR.Employees a,HR.departments b where a.department_id=b.department_id group by b.department_name having count(*) > 10 order by 1;

    此查询的结果应类似于以下内容:

    DEPARTMENT_NAME COUNT(*) Sales 34 Shipping 45