全部产品

数据库采集

更新时间:2020-10-13 18:45:51

ADAM提供在线采集和下载数据采集器采集两种数据库采集方式,您可以根据源库能否通过公网访问自行选择。

背景信息

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

    • 公网连接:源Oracle库具有公网IP,可以通过外网访问。

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

      说明

      目前ADAM华北2(北京)只支持张家口地域的DG实例,申请DG实例时请注意将页面左上角的地区切换到华北3(张家口)后申请。

  • 下载采集器:对于源库无法通过外网连通的情况,可以下载ADAM数据采集器进行采集。

在线采集

  1. 登录ADAM控制台

  2. 单击左侧导航栏中的数据库迁云>数据库评估

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

    在线采集

  4. 点击左上角创建采集任务,开始创建采集任务。

    数据库采集主页面

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

    • Oracle 10g/11g/12c(非 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权限。

        说明

        版本为 10g 的数据库需要先执行

        create or replace public synonym DBMS_LOGMNR for sys.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(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;
  6. 完成数据库用户账号配置以后,单击下一步填写源库网络信息。

    • 源库有公网IP:

      数据库采集公网IP

      • 采集任务名:自定义采集任务名称。

      • Oracle主机IP:连接源Oracle数据库的IP。

        说明

        在源库中添加白名单:39.100.131.0/24,47.241.17.0/24,以保证ADAM能够成功在线采集数据。

    • 源库无公网IP,通过数据库网关DG连接:

      数据库采集DG

      • 采集任务名:自定义采集任务名称。

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

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

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

  7. 填写源数据库信息。

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

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

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

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

    • 高级选项(非必填项):编码方式:源Oracle数据库的编码方式。

  8. 填写完毕后,单击链接测试,测试通过后,单击启动采集即可。

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

    创建完成

下载采集器并采集数据

如果源库不能对外使用公网,或者无法从云上访问,则需要使用线下流程采集。

  1. 下载 ADAM 采集器

    1. 登录 ADAM 控制台

    2. 单击左侧导航栏中的数据库迁云>数据库评估

    3. 数据库采集页签下,单击下载采集器。跳转至数据库采集器详情页面。

      下载采集器

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

      说明

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

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

      • CPU:2 core

      • 内存:8GB

      • 硬盘:100GB 空余

      采集器版本界面

    5. 配置采集账号,赋予相应的权限。

      1. 登录 Oracle 源数据库。

      2. 使用具有 SYSDBA 权限的账号创建临时账号,并配置以下权限(如果您已有包含下面权限的账号,请忽略此步骤,直接使用)。

        说明

        以下权限用于连接 Oracle 数据库系统,收集相关信息并会对结果数据脱敏导出。

        • Oracle 10g / 11g / 12c(非 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权限。

            说明

            版本为 10g 的数据库需要先执行:

            create or replace public synonym DBMS_LOGMNR for sys.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 (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;
      3. 采集数据库结构性数据(用于生成可行性报告及兼容报告)

        采集现有 Oracle 数据库信息。现已支持Oracle 10g、 Oracle 11g 、Oracle 12c版本。(如果采集中遇到任何问题请提交工单,工单中请附上同级目录 logs 下的日志文件。)

        1. 执行采集命令(.bat 是在 Windows 环境下命令;.sh 是在 Linux 环境下命令)。

          1. Oracle 10g

            collect_10g[.sh|.bat] -h -u -p -d <service_name>
          2. 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>
          3. Oracle 12c

            说明

            针对Oracle 12c的某个pdb进行采集时,请参考Oracle 11g采集操作说明,使用collect_11gR2脚本进行采集操作。

            collect_12c[.sh|.bat] –h <host> -u <username> -p <password> -P <port> -d <service_name> -s <sid>

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

        2. 导出采集结果。

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

          [***] ******************************************************************
          [***] *     Collect Successfully!
          [***] *
          [***] * Complete the file packaging, the package result path is: 
          [***] *        ~rainmeter/out/data.zip ******************************************************************
        3. 迁移结束后,清除临时账号。

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

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

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

            drop user c##eoa_user cascade;
    说明

    ADAM数据库采集器对于Oracle的内存占用很少可以忽略不计;对CPU要求也不高,由于涉及到数据库对象的getddl操作,会在开始采集时CPU会有一些提升,取决于Oracle规格和当前负载。建议在业务低峰期采集,可以提升采集速度,通常业务低峰期采集只需要较短时间就可以完成。