
# 同步前准备
#### UGO权限准备
- 创建UGO评估项目，需要对源库进行预检查，Oracle为源库时预检查项如[表1]所示：
   表1预检查项 
  | 预检查权限           | 检查含义                                               | 是否必须通过                                                                   |
  |:---|:---|:---|
  | DBMS_METADATA权限 | 检查用户是否具有从Oracle数据库字典中检索元数据的权限，该权限用来获取Schema对象的DDL。 | 必须                                                                       |
  | 动态视图权限          | 检查用户对各种动态性能视图的访问权限，该权限用来获取数据库基础信息。                 | 必须                                                                       |
  | schema对象数量检查    | 检查该用户是否有Schema对象需要评估。至少需要一个对象需要评估。                 | 必须                                                                       |
  | DBA权限           | 检查用户是否有DBA（数据库管理员）的权限，才能进行后续操作。                    | 非必须 若为"警告"，评估项目仍能创建成功，但可能由于权限不足导致部分对象无法采集。 |
     
  
- 目标数据库连接用户需要具有创建/删除/更改schema、表、程序、索引、用户、函数、视图等其他迁移对象的权限。
- 用户需拥有创建UGO评估项目的对应权限，可参见[权限管理](https://support.huaweicloud.com/productdesc-ugo/ugo_01_0008.html)进行设置。
 
更多UGO权限准备说明，可参考[这里](https://support.huaweicloud.com/bestpractice-ugo/ugo_06_0005.html)。
#### DRS权限准备
- Oracle提供给DRS的用户（用于DRS连接Oracle）的权限，必须满足如下要求才能保证数据同步顺利开展：
  - 全量同步：需要具有CREATE SESSION，SELECT ANY DICTIONARY，针对单表的SELECT权限（GRANT SELECT ON \<userName.tbName\> to drsUser;）。
  
  - 全量+增量和增量同步：
    - 12c及以上版本租户模式：
      12c及以上版本CDB数据库同步时，需要具有CREATE SESSION，SELECT ANY DICTIONARY，EXECUTE_CATALOG_ROLE，SELECT ANY TRANSACTION，LOGMINING权限，以及针对单表的SELECT权限（GRANT SELECT ON \<userName.tbName\> to drsUser;）。
      12c及以上版本PDB数据库同步时，除了需要具有CREATE SESSION，SELECT ANY DICTIONARY，EXECUTE_CATALOG_ROLE，SELECT ANY TRANSACTION，LOGMINING权限，以及针对单表的SELECT权限（GRANT SELECT ON \<userName.tbName\> to drsUser;），还需要具有CDB的CREATE SESSION，SELECT ANY DICTIONARY，EXECUTE_CATALOG_ROLE，SELECT ANY TRANSACTION，LOGMINING，SET CONTAINER（GRANT SET CONTAINER TO \<userName\> CONTAINER=ALL;）权限。
      
    
    - 12c及以上版本非租户模式：
      需要具有CREATE SESSION，SELECT ANY DICTIONARY，EXECUTE_CATALOG_ROLE，SELECT ANY TRANSACTION，LOGMINING权限，以及针对单表的SELECT权限（GRANT SELECT ON \<userName.tbName\> to drsUser;）。
      
    
    - 11g及以下版本数据库同步时，需要具有CREATE SESSION，SELECT ANY DICTIONARY，EXECUTE_CATALOG_ROLE，SELECT ANY TRANSACTION权限，以及针对单表的SELECT权限（GRANT SELECT ON \<userName.tbName\> to drsUser;）。
     
  
  - 增量同步时，源库Oracle需要开启日志归档模式和最小补充日志，所需同步表必须开启PK/UI或以ALL级别的补充日志，不限制库级或表级补充日志方式，若只开启表级补充日志，重建或者RENAME表后需要重新设置；请确保以上配置在同步过程中始终保持开启状态。
  
  - 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步（system/sys除外），因为该属性的账号无日志解析权限。
   
- GaussDB提供给DRS的用户（用于DRS连接GaussDB）的权限，必须满足如下要求才能保证数据同步顺利开展：
  - 库级权限：需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库，赋予用户DATABASE的CREATE、CONNECT权限。 授权语句：GRANT CREATE, CONNECT ON DATABASE \<database\> TO \<user\>;
    
  
  - SCHEMA级权限：需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库，赋予用户SCHEMA的CREATE、USAGE权限。 授权语句：GRANT CREATE, USAGE ON SCHEMA \<schema\> TO \<user\>;
    
  
  - 表级权限：需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ，赋予用户SCHEMA下表的DML相关权限（SELECT权限在处理无主键表时需要）。 授予SCHEMA下所有表的DML权限：GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON ALL TABLES IN SCHEMA \<schema\> TO \<user\>;
    授予SCHEMA下指定表的DML权限：GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON TABLE \<schema.table\> TO \<user\>;
    
   
更多DRS权限准备说明，可参考[这里](https://support.huaweicloud.com/realtimesyn-drs/drs_04_0111.html)。
#### 网络准备
提前做好网络规划，确保源库Orcale允许UGO、DRS访问。
