#数据源管理
数据源管理功能用于管理YMP服务所涉及的全部数据库,包括:源端数据库、目标端数据库、评估数据库(若选择评估内置库则无需添加,若指定为外置库则需要添加到数据源供评估使用)。
# 添加数据源
单击右上角【+ 添加数据源】,填写基础信息之后单击【测试连接】,只有测试连接成功才可以成功添加数据源。
在添加数据源时会同步获取数据源的版本和连接信息。

添加数据源字段说明:
- 数据源名称:系统内唯一数据源名称。
- 数据源类型:支持选择Oracle、MySQL、YashanDB、DM、PG(PG目前仅支持评估及元数据迁移)。
- 主机IP:数据库所在IP地址。
- 端口:数据库监听端口。
- 数据库:可选项,Oracle、PG必填、MySQL、DM、YashanDB选填。
- 用户名:数据库连接用户(连接用户需要有迁移平台所需权限,详见:数据源权限配置)。
- 密码:数据库连接用户密码。
- 是否为普通用户:仅Oracle和DM数据源支持,默认为非普通用户,详见:普通用户权限配置。
# 修改数据源
单击【修改】,填写修改信息之后单击【测试连接】,只有测试连接成功才可以成功修改数据源信息。
修改数据源时会检查该数据源是否与迁移和评估的任务关联:
- 若未关联,允许修改IP、端口号、数据库名称、数据库用户名和数据库密码。
- 若有关联,只允许修改数据库密码。

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

# 数据源权限配置
若要进行周期校验,源端与目标端用户都要具备FLASHBACK ANY TABLE权限。
# 源端
源端的数据库连接用户,需要根据任务所要完成的步骤赋权,详情见:
# 单评估
GRANT CREATE SESSION TO username;
GRANT SELECT_CATALOG_ROLE TO username;
# 单迁移
GRANT CREATE SESSION TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON DBA_EXTENTS TO username;
GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_LOBS TO username;
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
GRANT SELECT ON DBA_TAB_COLS TO username; (建议权限,不强制要求,预检查不检查表风险类型可不要)
GRANT SELECT ON DBA_SCHEDULER_JOBS TO username; (建议权限,不强制要求,预检查不检查活跃定时任务可不要)
GRANT SELECT ON DBA_MVIEWS TO username; (建议权限,不强制要求,预检查不检查物化视图可不要)
# 单校验
GRANT CREATE SESSION TO username;
GRANT SELECT ON DBA_OBJECTS TO username;
GRANT SELECT ON V_$PARAMETER TO username;
GRANT SELECT ON V_$SESSION TO username;
Oracle 9i和10g需要:GRANT SELECT ON DBA_EXTENTS TO username;
其他版本需要:GRANT SELECT ON DBA_SEGMENTS TO username;
GRANT SELECT ON DBA_TABLES TO username;
GRANT SELECT ON DBA_TAB_COLUMNS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
GRANT SELECT ANY TABLE TO username;
# 评估+迁移
单评估权限+
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
# 迁移+校验
单迁移权限+
GRANT SELECT ON V_$PARAMETER TO username;
GRANT SELECT ON V_$SESSION TO username;
GRANT SELECT ON DBA_TABLES TO username;
GRANT SELECT ON DBA_TAB_COLUMNS TO username;
GRANT SELECT ON DBA_CONS_COLUMNS TO username;
GRANT SELECT ON DBA_CONSTRAINTS TO username;
# 评估+迁移+校验
单评估权限+
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换)
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换)
# 目标端
Note:
YashanDB目标端权限检查至少需要SELECT ON V_$PARAMETER权限,如果赋予了DBA可包含该权限,否则需要加上。
GRANT DBA TO username;
# 普通用户权限配置
普通用户适用于仅迁移该用户下的对象和数据的场景,普通用户仅需最小权限。但存在以下限制:
- 迁移对象不能依赖于其他schema下的对象。如:迁移某个视图对象,该视图将查询其他schema下的表。
- 校验初始化中的高级配置,对其性能配置的检查失效,无法判断源端可用的连接数是否满足用户配置的连接数。详见:校验初始化。
- Oracle做源的数据迁移时不支持大表拆表。由于普通用户缺少拆分数据来源,拆分配置参数失效。
普通用户所需的权限为:
GRANT CONNECT TO username;<br>GRANT RESOURCE TO username;

