数据库采集

ADAM提供在线采集和采集器采集两种数据库采集方式,您可以根据能否云上访问源库自行选择采集方式。

采集方式介绍

  • 在线采集:将源数据库的网络打通,并在源数据库白名单中添加ADAM服务器,确保ADAM服务器可以直接通过在线采集方式进行信息收集。更多信息,请参见在线采集

    • 有公网IP:源数据库具有公网IP,可以通过外网访问。

    • 无公网IP:通过数据库网关DG连接。数据库网关DG(Database Gateway)是一种支持私网数据库远程访问的数据库连接服务。通过数据库网关DG,您可以无需开通公网地址访问并管理本地IDC或其他云厂商的数据库。详情请参见数据库网关DG

      说明

      目前ADAM支持华北2(北京)、华北3(张家口)、华南1(深圳)、华东1(杭州)、华东2(上海)地域的DG实例。

  • 下载采集器:如果源库不能对外使用公网,或者无法从云上访问,可以通过ADAM数据采集器采集数据库。更多信息,请参见采集器采集

在线采集

  1. 登录数据管理DMS 5.0

  2. 在顶部菜单栏中,选择集成与开发(DTS) > 异构数据库迁移(ADAM) > 数据库评估

  3. 数据库采集页签下,单击在线数据库采集

  4. 单击创建采集任务,开始创建采集任务。

  5. 登录源数据库配置采集账号,赋予相应的权限。

    • Oracle 10g 11g12c 18c 19c版本(非CDB模式,创建LOCAL USER类型用户)

      1. 创建采集用户eoa_user, 并设置密码为eoaPASSW0RD。

        create user eoa_user identified by eoaPASSW0RD default tablespace users;

      2. 查询权限。

        grant connect,resource,select_catalog_role,select any dictionary to eoa_user;

      3. DBMS_LOGMNR权限。

        说明

        版本为Oracle 10g的数据库需要先执行:create or replacepublicsynonymDBMS_LOGMNRforsys.dbms_logmnr;

        grant execute on DBMS_LOGMNR to eoa_user;
      4. DBMS_METADATA权限,查询数据对象DDL语句。

        grant execute on dbms_metadata to eoa_user;
      5. 查询事务权限。

        grant select any transaction to eoa_user;
      6. 查询表权限。

        grant select any table to eoa_user;
      7. 分析表权限。

        grant analyze any to eoa_user;
      8. 产生随机编号权限。

        grant execute on dbms_random to eoa_user;
    • Oracle 12c 18c 19c版本(CDB 模式,需要连接到CDB,创建COMMON USER类型用户)

      create user c##eoa_user identified by "eoaPASSW0RD" default tablespace users;
                                          grant connect,resource,select_catalog_role,select any dictionary to c##eoa_user container=all;
                                          grant execute on DBMS_LOGMNR to c##eoa_user container=all;
                                          grant execute on dbms_metadata to c##eoa_user container=all;
                                          grant select any table to c##eoa_user container=all;
                                          grant select any transaction to c##eoa_user container=all;
                                          grant analyze any to c##eoa_user container=all;
                                          grant execute on dbms_random to c##eoa_user container=all;
                                          alter user c##eoa_user set container_data=all container=current;
    • Teradate 13 14 15版本

      需要使用具有访问DBC权限的账号。

      grant select,show on dbc to (username)
    • Db2 LUW

      需要db2look相关权限,采集账号授予DBA权限执行。

  6. 完成源数据库账号配置后,单击下一步进入创建采集任务面板。

    1. 采集任务名:自定义采集任务名称。

    2. 源库类型。

      • 源库类型选择ORACLE

        服务器/SID:源Oracle数据库的服务名或SID。

      • 源库类型选择TERADATA或者Db2_LUW

        数据库名:源数据库的数据库名。

    3. 源库网络种类。

      1. 选择具有公网IP的数据库

      2. 选择无公网IP:Port的数据库(通过数据库网关DG接入)

        • DG区域:选择源库对应的DG实例所属的地域。

        • DG实例:选择源库对应的DG实例ID。

    4. 填写源数据库其他信息。

      • 主机IP:源数据库的IP。

        说明

        在源库中添加ADAM白名单,以保证ADAM能够成功在线采集数据。ADAM白名单,请参见添加白名单

      • 端口:源数据库连接端口。

      • 用户名:步骤5中创建的采集用户。

      • 口令:上述用户名对应的密码。

      • (可选)高级配置项编码配置中输入源数据库的编码方式。

  7. 填写完毕后,单击链接测试,测试通过后,单击启动采集

  8. 待采集任务完成后,勾选采集任务,点击下一步创建画像,进入生成数据库画像流程。

采集器采集

  1. 登录数据管理DMS 5.0

  2. 在顶部菜单栏中,选择集成与开发(DTS) > 异构数据库迁移(ADAM) > 数据库评估

  3. 数据库采集页签下,单击下载采集器

  4. 根据目标安装ADAM客户端设备的操作系统,选择下载对应版本的ADAM客户端到本地并解压缩。

    说明

    建议不要在待采集的数据库设备上运行。目标安装ADAM客户端设备最低应满足以下配置要求:

    • 网络:能够连接到待采集的源数据库。

    • CPU:2 core。

    • 内存:8GB。

    • 硬盘:100GB 空余。

  5. 登录源数据库配置采集账号,赋予相应的权限。

    使用具有SYSDBA权限的账号创建临时账号,并配置以下权限。

    说明

    如果您已有包含下面权限的账号,请忽略此步骤,直接使用。

    • Oracle 10g 11g12c 18c 19c版本(非CDB模式,创建LOCAL USER类型用户)

      1. 创建采集用户eoa_user, 并设置密码为eoaPASSW0RD。

        create user eoa_user identified by eoaPASSW0RD default tablespace users;

      2. 查询权限。

        grant connect,resource,select_catalog_role,select any dictionary to eoa_user;

      3. DBMS_LOGMNR权限。

        说明

        版本为Oracle 10g的数据库需要先执行:create or replacepublicsynonymDBMS_LOGMNRforsys.dbms_logmnr;

        grant execute on DBMS_LOGMNR to eoa_user;
      4. DBMS_METADATA权限,查询数据对象DDL语句。

        grant execute on dbms_metadata to eoa_user;
      5. 查询事务权限。

        grant select any transaction to eoa_user;
      6. 查询表权限。

        grant select any table to eoa_user;
      7. 分析表权限。

        grant analyze any to eoa_user;
      8. 产生随机编号权限。

        grant execute on dbms_random to eoa_user;
    • Oracle 12c 18c 19c版本(CDB 模式,需要连接到CDB,创建COMMON USER类型用户)

      create user c##eoa_user identified by "eoaPASSW0RD" default tablespace users;
                                          grant connect,resource,select_catalog_role,select any dictionary to c##eoa_user container=all;
                                          grant execute on DBMS_LOGMNR to c##eoa_user container=all;
                                          grant execute on dbms_metadata to c##eoa_user container=all;
                                          grant select any table to c##eoa_user container=all;
                                          grant select any transaction to c##eoa_user container=all;
                                          grant analyze any to c##eoa_user container=all;
                                          grant execute on dbms_random to c##eoa_user container=all;
                                          alter user c##eoa_user set container_data=all container=current;
    • Teradate 13 14 15版本

      需要使用具有访问DBC权限的账号。

      grant select,show on dbc to (username)
    • Db2 LUW

      需要db2look相关权限,采集账号授予DBA权限执行。

  6. 采集数据库结构性数据,用于生成可行性报告及兼容报告。

    说明

    如果采集中遇到任何问题请提交工单,工单中请附上同级目录logs下的日志文件。

    1. 执行采集命令。

      说明

      .bat是Windows环境下命令,.sh是Linux环境下命令。

      • Oracle 10g

        collect_10g[.sh|.bat] -h -u -p -d <service_name>
      • Oracle 11g

        • Oracle 11g R1

          collect_11gR1[.sh|.bat] -h -u -p -d <service_name>
        • Oracle 11g R2

          collect_11gR2[.sh|.bat] -h -u -p -d <service_name>
      • Oracle 12c 18c 19c

        说明

        针对Oracle 12c的某个pdb进行采集时,请参考Oracle 11g采集操作说明,使用collect_12c脚本进行采集操作。collect_12c[.sh|.bat] –h <host> -u <username> -p <password> -P <port> -d <service_name> -s <sid>

      • Teradate 13 14 15

        collect_td[.sh] -h ip -p password -u username
      • Db2_LUW

        collect_db2_luw[.sh] -h ip -u username -p password -d databasename -P port

      -h: 采集数据库的IP地址。 -u: 采集用户 eoa_user。 -p: 采集用户 eoa_user 密码 eoaPASSW0RD。 -P: 采集数据库的端口,如:1521。 -d: 采集数据库的服务名, 12c是指特定PDB的服务名。 -s: 采集数据库实例名。

    2. 导出采集结果。

      采集完成后,会提示用户生成数据包,并提示数据包路径。日志文件如下:

      [***] ******************************************************************
                                          [***] * Collect Successfully!
                                          [***] *
                                          [***] * Complete the file packaging, the package result path is:
                                          [***] * ~rainmeter/out/data.zip ******************************************************************

  7. 可选:迁移结束后,清除临时账号。

    使用具有SYSDBA权限的账号通过终端连接数据库,并执行下面 SQL。

    1. Oracle 10g 11g 12c 18c 19c(非CDB模式)

      drop user eoa_user cascade;
    2. Oracle 12c 18c 19c(CDB 模式)

      drop user c##eoa_user cascade;
说明
  • 建议在业务低峰期采集数据库数据,通常业务低峰期采集只需要较短时间就可以完成采集。

  • 采集器对CPU要求不高,如果涉及到数据库对象的getddl操作,采集开始时CPU负载会有一些增加,负载增加量取决于源数据库规格和当前负载。

  • 采集器对源数据库的内存占用很少,可以不考虑。

阿里云首页 数据传输服务 DTS 相关技术圈