#数据源管理

# 添加数据源

添加数据源
添加数据源所需字段说明:

字段 是否必填 说明
数据源名称 系统内唯一数据源名称
数据源类型 支持选择Oracle、MySQL、YashanDB、DM
主机IP 数据库所在IP地址
端口 数据库监听端口
数据库 Oracle必填、MySQL、DM、YashanDB选填
用户名 数据库连接用户(连接用户需要有迁移平台所需权限,所需权限详见:数据源权限配置
密码 数据库连接用户的密码

在添加数据源时,会首先测试数据库连接,只有连接成功才可以添加成功。
如果连接失败则会根据失败原因提示相对应的失败消息,例如用户名或密码错误等。
在添加数据源时会同步获取数据源的版本和连接信息。

注意

  • DM数据库暂时只支持DM8版本,且只支持原生模式(0)和MySQL模式(4),其余模式虽然可以添加数据源,但可能存在适配问题。

# 数据源权限配置

# 源端

数据源 迁移平台所需权限
Oracle 跨用户评估迁移权限:
GRANT CREATE SESSION TO username;
GRANT SELECT_CATALOG_ROLE TO username;
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
仅本连接用户元数据评估迁移所需权限:
GRANT CREATE SESSION TO username;
GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_LOBS TO username;
GRANT SELECT ON DBA_TAB_COLS TO username;
GRANT SELECT ON DBA_ROLES TO username;
GRANT SELECT ON DBA_DATA_FILES TO username;
GRANT SELECT ON V_$PARAMETER TO username;
GRANT SELECT ON DBA_TABLES TO username;
GRANT SELECT ON DBA_INDEXES TO username;
GRANT SELECT ON DBA_TAB_PARTITIONS TO username;
GRANT SELECT ON V_$TABLESPACE TO username;
GRANT SELECT ON V_$SESSION TO username;
GRANT SELECT ON DBA_SOURCE TO username;
GRANT SELECT ON DBA_VIEWS TO username;
GRANT SELECT ON DBA_SEQUENCES TO username;
GRANT SELECT ON DBA_SYNONYMS TO username;
GRANT SELECT ON DBA_DEPENDENCIES TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON DBA_TYPES TO username;
GRANT SELECT ON DBA_TAB_COMMENTS TO username;
GRANT SELECT ON DBA_COL_COMMENTS TO username;
GRANT SELECT ON DBA_SCHEDULER_JOBS TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
跳过评估所需权限:
GRANT CREATE SESSION TO username;
GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_LOBS TO username;
GRANT SELECT ON DBA_TAB_COLS TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ON DBA_DATA_FILES TO username;
GRANT SELECT ON DBA_INDEXES TO username;
GRANT SELECT ON DBA_DEPENDENCIES TO username;
GRANT SELECT ON DBA_TYPES TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON DBA_SCHEDULER_JOBS TO username;
GRANT SELECT ON V_$PARAMETER TO username;
GRANT SELECT ON V_$SESSION TO username;
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
MySQL5.6.* MySQL5.7.* GRANT SELECT, PROCESS, SHOW VIEW, SHOW DATABASES, TRIGGER ON *.* TO 'yourUser'@'IP';
MySQL8.0.* GRANT SELECT, PROCESS, SHOW VIEW, SHOW DATABASES, TRIGGER, SHOW_ROUTINE ON *.* TO 'yourUser'@'IP';
DM8 评估所需权限:
GRANT CREATE SESSION TO username;
GRANT SELECT ON V$PARAMETER TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON DBA_INDEXES TO username;
GRANT SELECT ON DBA_TAB_COLS TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
GRANT SELECT ON DBA_TAB_COMMENTS TO username;
GRANT SELECT ON DBA_COL_COMMENTS TO username;
GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_TAB_PARTITIONS TO username;
GRANT SELECT ON DBA_TABLES TO username;
GRANT SELECT ON DBA_VIEWS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ON DBA_DATA_FILES TO username;
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
跳过评估所需权限:
GRANT CREATE SESSION TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON DBA_INDEXES TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
GRANT SELECT ON DBA_TAB_COLS TO username;
GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ON DBA_DATA_FILES TO username;
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)

Note: Oracle 11.2.0.1版本 如果提示查询用户信息失败,则需要用sys给数据源用户赋权,执行:exec dbms_metadata_util.load_stylesheets

Mysql授权的yourUser和yourIp为创建用户时指定的用户信息,参考 CREATE USER 'newUser'@'IP' IDENTIFIED BY 'password',此时yourUser=newUser,IP=%或者xx.xx.xx.xx。

# 目标端

数据源 迁移平台所需权限
YashanDB GRANT DBA TO username;
YashanDB(三权分立模式) GRANT DBA TO username;
GRANT CREATE USER TO username;
GRANT CREATE ANY TABLE TO username;
GRANT DROP ANY TABLE TO username;
GRANT ALTER ANY TABLE TO username;
GRANT COMMENT ANY TABLE TO username;
GRANT CREATE ANY SEQUENCE TO username;
GRANT DROP ANY SEQUENCE TO username;
GRANT SELECT ANY SEQUENCE TO username;
GRANT CREATE ANY INDEX TO username;
GRANT ALTER ANY INDEX TO username;
GRANT DROP ANY INDEX TO username;
GRANT CREATE ANY SYNONYM TO username;
GRANT CREATE PUBLIC SYNONYM TO username;
GRANT DROP ANY SYNONYM TO username;
GRANT DROP PUBLIC SYNONYM TO username;
GRANT CREATE ANY VIEW TO username;
GRANT DROP ANY VIEW TO username;
GRANT CREATE ANY TYPE TO username;
GRANT DROP ANY TYPE TO username;
GRANT CREATE ANY PROCEDURE TO username;
GRANT DROP ANY PROCEDURE TO username;
GRANT CREATE ANY TRIGGER TO username;
GRANT DROP ANY TRIGGER TO username;
GRANT ALTER ANY TRIGGER TO username;
GRANT CREATE ANY MATERIALIZED VIEW TO username;
GRANT DROP ANY MATERIALIZED VIEW TO username;
GRANT SELECT ANY TABLE TO username;
GRANT INSERT ANY TABLE TO username;

# 修改数据源

支持修改数据源的配置信息,修改数据源时会校验该数据源是否与迁移和评估的任务关联。 数据源未关联任务时,允许修改IP、端口号、数据库名称、数据库用户名和数据库密码,否则则只允许修改数据库密码。 数据源添加后名称和类型不允许修改,修改其它信息也只有测试连接通过才会修改成功。
修改数据源
数据源不可修改

# 删除数据源

删除数据源时会校验该数据源是否与迁移和评估的任务关联,如果关联则不允许删除。 删除数据源
数据源不可删除