#数据源管理
数据源管理功能用于管理YMP服务所涉及的全部数据库,包括:源端数据库、目标端数据库、评估数据库(若选择评估内置库则无需添加,若指定为外置库则需要添加到数据源供评估使用)。
# 添加数据源
点击右上角【+ 添加数据源】,填写基础信息之后点击【测试连接】,只有测试连接成功才可以成功添加数据源。
若测试连接失败会提示对应的失败消息,例如用户名或密码错误等。
在添加数据源时会同步获取数据源的版本和连接信息。
添加数据源字段说明:
- 数据源名称:系统内唯一数据源名称。
- 数据源类型:支持选择Oracle、MySQL、YashanDB、DM。
- 主机IP:数据库所在IP地址。
- 端口:数据库监听端口。
- 数据库:可选项,Oracle必填、MySQL、DM、YashanDB选填。
- 用户名:数据库连接用户(连接用户需要有迁移平台所需权限,详见:数据源权限配置)。
- 密码:数据库连接用户密码。
- 是否为普通用户:仅Oracle和DM数据源支持,默认为非普通用户,详见:普通用户权限配置。
# 普通用户权限配置
普通用户适用于仅迁移该用户下的对象和数据的场景,普通用户仅需最小权限。但存在以下限制:
- 迁移对象不能依赖于其他schema下的对象,如:迁移某个视图对象,该视图将查询其他schema下的表。
- 不支持表空间初始化,详见:表空间初始化配置。
- 校验初始化中的高级配置,对其性能配置的检查失效,无法判断源端可用的连接数是否满足用户配置的连接数,详见:校验初始化。
普通用户所需的权限为:
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | GRANT CONNECT TO username; GRANT RESOURCE TO username; |
DM | 新用户无需单独赋权 |
# 数据源权限配置
# 源端
源端的数据库连接用户,需要根据任务所要完成的步骤赋权,详情见:
# 单评估
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | GRANT CREATE SESSION TO username; |
GRANT SELECT_CATALOG_ROLE TO username; | |
MySQL | GRANT SHOW DATABASES ON *.* TO 'yourUser'@'IP'; |
GRANT SELECT ON *.* TO 'yourUser'@'IP'; | |
GRANT PROCESS ON *.* TO 'yourUser'@'IP'; | |
GRANT SHOW VIEW ON *.* TO 'yourUser'@'IP'; | |
GRANT TRIGGER ON *.* TO 'yourUser'@'IP'; | |
GRANT EVENT ON *.* TO 'yourUser'@'IP'; | |
MySQL8.0.*额外需赋权: GRANT SHOW_ROUTINE ON *.* TO 'yourUser'@'IP'; | |
DM8 | GRANT SELECT ON DBA_OBJECTS TO username; |
GRANT SELECT ON DBA_INDEXES TO username; | |
GRANT SELECT ON DBA_VIEWS TO username; | |
GRANT SELECT ON DBA_CONSTRAINTS TO username; | |
GRANT SELECT ON DBA_TAB_COLS TO username; | |
GRANT SELECT ON DBA_TAB_COMMENTS TO username; | |
GRANT SELECT ON DBA_COL_COMMENTS TO username; | |
GRANT SELECT ON DBA_IND_COLUMNS TO username; | |
GRANT SELECT ON DBA_SEGMENTS TO username; | |
GRANT SELECT ON DBA_TRIGGERS TO username; | |
GRANT SELECT ON DBA_TABLES TO username; | |
GRANT SELECT ON DBA_TAB_PARTITIONS TO username; | |
GRANT SELECT ON V$PARAMETER TO username; | |
YashanDB | GRANT DBA TO username; |
# 单迁移
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | GRANT CREATE SESSION TO username; |
GRANT SELECT ON DBA_OBJECTS 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; (建议权限,不强制要求,预检查不检查物化视图可不要) | |
MySQL | GRANT SHOW DATABASES ON *.* TO 'yourUser'@'IP'; |
GRANT SELECT ON *.* TO 'yourUser'@'IP'; | |
GRANT PROCESS ON *.* TO 'yourUser'@'IP'; | |
GRANT EVENT ON *.* TO 'yourUser'@'IP'; | |
DM8 | GRANT SELECT ON DBA_OBJECTS TO username; |
GRANT SELECT ON DBA_SEGMENTS TO username; | |
GRANT SELECT ON DBA_DATA_FILES TO username; | |
GRANT SELECT ON DBA_TAB_COLS TO username; (建议权限,不强制要求,预检查不检查表风险类型可不要) | |
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
YashanDB | GRANT DBA TO username; |
# 单校验
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | 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; | |
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; | |
MySQL | GRANT SHOW DATABASES ON *.* TO 'yourUser'@'IP'; |
GRANT SELECT ON *.* TO 'yourUser'@'IP'; | |
GRANT PROCESS ON *.* TO 'yourUser'@'IP';(建议权限,不强制要求,若需使用MySQL全量校验终止功能则为必要权限) | |
DM8 | GRANT SELECT ON DBA_OBJECTS TO username; |
GRANT SELECT ON V$SESSIONS 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; | |
YashanDB | GRANT CREATE SESSION TO username; |
GRANT SELECT ON V_$PARAMETER TO username; | |
GRANT SELECT ON V_$SESSION TO username; | |
GRANT SELECT ON V_$INSTANCE TO username; | |
GRANT SELECT ON DBA_USERS 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; |
# 评估+迁移
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | 单评估权限+: |
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
MySQL | 单评估权限+单迁移权限 |
DM8 | 单评估权限+单迁移权限 |
YashanDB | 单评估权限 |
# 迁移+校验
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | 单迁移权限+: |
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; | |
MySQL | 单迁移权限+单校验权限 |
DM8 | 单迁移权限+: |
GRANT SELECT ON V$SESSIONS 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; | |
YashanDB | 单评估权限 |
# 评估+迁移+校验
数据源 | 迁移平台所需角色/权限 |
---|---|
Oracle | 单评估权限+: |
GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
MySQL | 单评估权限+单迁移权限+单校验权限 |
DM8 | 单评估权限+单迁移权限+: |
GRANT SELECT ON V$SESSIONS TO username; | |
GRANT SELECT ON DBA_TAB_COLUMNS TO username; | |
GRANT SELECT ON DBA_CONS_COLUMNS TO username; | |
YashanDB | 单评估权限 |
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 WITH ADMIN OPTION; |
GRANT CREATE USER TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT DROP ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT ALTER ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT COMMENT ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT INSERT ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT DELETE ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT UPDATE ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT SELECT ANY TABLE TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY SEQUENCE TO username WITH ADMIN OPTION; | |
GRANT DROP ANY SEQUENCE TO username WITH ADMIN OPTION; | |
GRANT SELECT ANY SEQUENCE TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY INDEX TO username WITH ADMIN OPTION; | |
GRANT ALTER ANY INDEX TO username WITH ADMIN OPTION; | |
GRANT DROP ANY INDEX TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY SYNONYM TO username WITH ADMIN OPTION; | |
GRANT CREATE PUBLIC SYNONYM TO username WITH ADMIN OPTION; | |
GRANT DROP ANY SYNONYM TO username WITH ADMIN OPTION; | |
GRANT DROP PUBLIC SYNONYM TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY VIEW TO username WITH ADMIN OPTION; | |
GRANT DROP ANY VIEW TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY MATERIALIZED VIEW TO username WITH ADMIN OPTION; | |
GRANT DROP ANY MATERIALIZED VIEW TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY TYPE TO username WITH ADMIN OPTION; | |
GRANT DROP ANY TYPE TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY TRIGGER TO username WITH ADMIN OPTION; | |
GRANT DROP ANY TRIGGER TO username WITH ADMIN OPTION; | |
GRANT ALTER ANY TRIGGER TO username WITH ADMIN OPTION; | |
GRANT CREATE ANY PROCEDURE TO username WITH ADMIN OPTION; | |
GRANT DROP ANY PROCEDURE TO username WITH ADMIN OPTION; |
# 修改数据源
点击【修改】,填写修改信息之后点击【测试连接】,只有测试连接成功才可以成功修改数据源信息。
修改数据源时会检查该数据源是否与迁移和评估的任务关联:
- 若未关联,允许修改IP、端口号、数据库名称、数据库用户名和数据库密码。
- 若有关联,只允许修改数据库密码。
# 删除数据源
点击【删除数据源】时会校验该数据源是否与迁移和评估的任务关联,如果关联则不允许删除。