通过迁移评估采集器采集数据库对象

您可以自行采集数据库对象定义,也可以下载迁移评估采集器完成数据库对象的采集。本文为您介绍如何通过迁移评估采集器采集数据库对象。

背景信息

迁移评估采集器是用于在公有云环境采集用户 Schema 数据的工具。

您在公有云环境下不可以使用公网连接自己的 Oracle 实例,请下载迁移评估采集器并在内网环境运行,采集对应 Schema 的对象 DDL 语句后,再手工上传至迁移评估公有云环境中进行评估。

前提条件

请确保可以直接访问到需要评估的 Oracle 数据库。配置的数据库用户需要具备的权限如下:

  • 至少具备 create session 权限,以确保正常连接。

  • 具备 select any dictionary 的权限,本程序会扫描 DBA_OBJECTS 表获取待评估的对象。

  • 具备 select_catalog_role 角色,确保本程序能够正常使用 DBMS_METADATA.GET_DDL 函数来获取相应对象的 DDL 语句。

您可以执行下述命令,检查数据库用户是否具备相关权限。此处以命名执行评估任务的 Oracle 数据库用户为 OMA 为例。

-- 该 SQL 语句的返回中应包含 CONNECT、RESOURCE 和 SELECT_CATALOG_ROLE
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'OMA';

-- 该 SQL 语句的返回中应包含 CREATE SESSION 和 SELECT ANY DICTIONARY
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'OMA';

如果您需要给 Oracle 数据库用户 OMA 授予上述权限,请执行下述语句。

GRANT CREATE SESSION,RESOURCE TO OMA;
GRANT SELECT ANY DICTIONARY TO OMA;
GRANT SELECT_CATALOG_ROLE TO OMA;

安装迁移评估采集器

重要

迁移评估采集器使用 Java 编写,依赖 JDK 1.8 及以上版本。

  1. 登录 OceanBase 数据库管理控制台

  2. 在左侧导航栏,单击 迁移评估 > 兼容性任务

  3. 兼容性评估 页面的右上角,单击 下载采集器

  4. 下载采集器 对话框,单击 点击下载

  5. 下载迁移评估采集器后,直接解压即可完成安装。

    tar zxvf collector.tar.gz
    cd oma-collector-1.0.0

    解压完成后,目录下包括 oma-collector-1.0.0.jar dump 文件夹。

采集数据

  1. 进入迁移评估目录。

    cd oma-collector-1.0.0
  2. 执行下述命令采集数据。

    java -jar oma-collector-1.0.0.jar \  
    -t ORACLE \                          #数据库的类型,包括 ORACLE/MYSQL。此处需要大写。
    -v 11g \                             #数据库的版本。ORACLE 数据库包括 11g、12c、18c 和 19c,MYSQL 数据库包括 5.6、5.7 和 8.0。
    -h 10.10.10.1 \                      #数据库的地址。
    -P 1111 \                            #数据库的端口。
    -u abcd \                            #登录的用户名。
    -p \                                 #登录用户的密码,回车后会要求手动输入密码。
    -sn orcl11g.aa.oracle.com \          #Service Name。如果使用 SID 连接使用,则 -sid 参数代替 -sn。
    -s "ABCD,AAA"                       #需要扫描的 Schema,此处需要大写。
  3. 按回车键,输入来源数据库的密码。

  4. 查看运行结果。

    OceanBase Migration Assessment Collector version : 1.0.0
    Power by OceanBase Ant Group
    [INFO ] 17:10:50.320 [main] c.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
    [INFO ] 17:10:51.794 [main] c.a.o.o.c.scan.OracleDDLScanner - ALL OBJECT COUNT [384]
    [ OBDBA(384|384) ] Progress: ################################################## |100%
    [INFO ] 17:11:19.040 [main] c.a.o.oma.collector.OmaCollector - scan finished ... close the file stream
    [INFO ] 17:11:19.047 [main] c.a.o.oma.collector.OmaCollector -  OBDBA scan finish , write to file [.\dump\xxxx.oma.sql]
    [INFO ] 17:11:19.246 [main] c.a.o.o.c.scan.OracleDDLScanner - ALL OBJECT COUNT [0]
    [INFO ] 17:11:19.246 [main] c.a.o.oma.collector.OmaCollector - scan finished ... close the file stream
    [INFO ] 17:11:19.262 [main] c.a.o.oma.collector.OmaCollector -  AAA scan finish , can not found any object
    [INFO ] 17:11:19.262 [main] c.a.o.oma.collector.OmaCollector - 请将 [.\dump\xxxx.oma.sql] 上传到OceanBase公有云环境[https://www.aliyun.com/product/oceanbase]下完成评估.

    运行完成后,会在 dump 目录下生成对应的采集文件 xxxx.oma.sql。程序将提示您:请将 [.\dump\xxxx.oma.sql] 上传到 OceanBase 公有云环境[https://www.aliyun.com/product/oceanbase]下完成评估