
# 将GeminiDB兼容DynamoDB接口同步到DynamoDB
#### 支持的源和目标数据库
表1支持的数据库 
| 源数据库                 | 目标数据库               |
|:---|:---|
| GeminiDB兼容DynamoDB接口 | 其他云上DynamoDB（Web服务） |
   
#### 支持的同步对象范围
在使用DRS进行同步时，不同类型的同步任务，支持的同步对象范围不同，详细情况可参考[表2]。**DRS会根据用户选择，在"预检查"阶段对同步对象进行自动检查**。
 表2支持的同步对象 
| **类型名称** | **同步范围**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|
| 同步范围须知   | - **支持场景**：支持增量、全量+增量同步。  - **支持的字段：**String、Number、Binary、Boolean、Null、Map、List、String Set、Number Set、Binary Set。  - **支持表级同步**：全量阶段仅支持表数据、表结构的同步。   |
   
#### 数据库用户权限要求
在使用DRS进行同步时，连接源库和目标库的数据库用户需要满足以下权限要求，才能启动实时同步任务。不同类型的同步任务，需要的用户权限也不同，详细可参考[表3]进行赋权。**DRS会在"预检查"阶段对数据库用户权限进行自动检查，并给出处理建议。**
![](https://support.huaweicloud.com/realtimesyn-drs/public_sys-resources/note_3.0-zh-cn.png)
- 建议创建单独用于DRS任务连接的数据库账号，避免因为数据库账号密码修改，导致的任务连接失败。
- 连接源和目标数据库的账号密码修改后，请参考[修改连接信息](https://support.huaweicloud.com/realtimesyn-drs/drs_10_0016.html)章节修改DRS任务的连接信息，避免任务连接失败后自动重试，导致数据库账号被锁定影响使用。
 
 表3数据库用户权限 
| **类型名称**  | **增量、全量+增量同步**                                                                                                                                                                                                                                          |
|:---|:---|
| 源数据库连接用户  | GeminiDB兼容DynamoDB接口默认用户和权限。                                                                                                                                                                                                                            |
| 目标数据库连接用户 | AmazonDynamoDBFullAccess授予对所有表和功能的访问权限。如果需要更严格的限制，可以创建一个自定义策略，仅授予对所需资源的访问权限。 用户具备以下最小权限：DescribeTable、Scan、GetItem、 DescribeStream、GetRecords、ListStreams、GetShardIterator、ListTables、DescribeEndpoints。 |
   
#### 使用建议
![](https://support.huaweicloud.com/realtimesyn-drs/public_sys-resources/caution_3.0-zh-cn.png)
- DRS任务启动和全量数据同步阶段，请不要在源数据库执行DDL操作，否则可能导致任务异常。
- 为保证同步前后数据一致性，确保同步期间目标数据库无业务写入。
 
- 数据库同步与环境多样性和人为操作均有密切关系，为了确保同步的平顺，建议您在进行正式的数据库同步之前进行一次演练，可以帮助您提前发现问题并解决问题。
- 基于以下原因，建议您在启动任务时选择"稍后启动"功能，将启动时间设置在业务低峰期，相对静止的数据可以有效提升一次性同步成功率，避免同步对业务造成性能影响。
  - 在无网络配置瓶颈的情况下，全量同步会对源数据库增加约50MB/s的查询压力，以及占用2\~4个CPU。
  
  - 正在同步的数据被其他事务长时间锁死，可能导致读数据超时。
  
  - DRS并发读取数据库，会占用大约6-10个session连接数，需要考虑该连接数对业务的影响。
  
  - 全量阶段读取表数据时，特别是大表的读取，可能会阻塞业务上对大表的独占锁操作。
  
  - 更多DRS对数据库的影响，可参考[DRS对源数据库和目标数据库有什么影响](https://support.huaweicloud.com/drs_faq/drs_16_1145.html)。
   
 
#### 使用须知
DRS全量+增量同步过程一般包含四个阶段：任务启动阶段、全量阶段、增量阶段、结束任务阶段（单全量任务则包含三个阶段）。为了确保同步各个阶段的平顺，在创建同步任务前，请务必阅读以下使用须知。
表4使用须知 
| **类型名称** | **使用和操作限制**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|
| 任务启动前须知  | - 考虑到整体同步速度以及源端DynamoDB Stream数据的有效时间，需要每次选择合适数量和大小的表进行并发同步，建议表数量不超过50个。  - 表结构迁移包含分区键、排序键、全局二级索引、本地二级索引。  - 如果进行全+增数据同步，请提前启动源库待同步表的streams流，并保证写入流的信息是项目的新旧映像。                                                                                                                                                                                                                                                                                                                                                                |
| 全量同步过程须知 | - 请勿修改源库和目标库的端口号，请勿修改、删除源库和目标库连接用户的密码、权限，否则可能导致任务失败。  - 请勿在源库执行任何DDL，否则可能导致数据不一致或任务失败。  - 请勿在目标库做写入操作，否则可能导致数据不一致。  - 不支持同步分区键值超过2048个字节或排序键值超过1024个字节的源库记录。  - 为保证同步任务正常和数据的一致性，如有以上诉求，建议在业务低峰期时重新创建DRS任务。  - 全量读取采用强一致性读取。   |
| 增量同步过程须知 | - 请勿修改目标库的端口号，请勿修改、删除源库和目标库连接用户的密码、权限，否则可能导致任务失败。  - 请勿在目标库做写入操作，否则可能导致数据不一致。  - 不支持同步分区键值超过2048个字节或排序键值超过1024个字节的源库记录。  - 为保证同步任务正常和数据的一致性，如有以上诉求，建议在业务低峰期时重新创建DRS任务。                                                                                                                                                                                                                                                                  |
   
#### 操作步骤
本小节以GeminiDB兼容DynamoDB接口到DynamoDB的实时同步为示例，介绍如何使用数据复制服务配置实时同步任务。
1. 在"实时同步管理"页面，单击"创建同步任务"。
2. 在"同步实例"页面，填选区域、项目、任务名称、描述、同步实例信息，单击"开始创建"。此处支持单击"使用上次创建信息"，使用上次创建任务实例缓存的信息。 
   - 任务信息
     图1同步任务信息   
     ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002544724256.png "点击放大")
     
     表5任务和描述 
     | **参数** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     |:---|:---|
     | 计费模式   | 有如下两种模式可选择： - 包年/包月  - 按需计费   |
     | 区域     | 当前所在区域，可进行切换。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
     | 项目     | 当前区域对应的项目，可进行切换。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     | 任务名称   | 任务名称在4到50位之间，必须以字母开头，可以包含字母、数字、中划线或下划线，不能包含其他的特殊字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
     | 描述     | 描述不能超过256位，且不能包含! = \< \> \& ' " \\ 特殊字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
        
     
   
   
   
   - 同步实例信息
   
   
   图2同步实例信息   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002475711541.png "点击放大")
   表6同步实例信息 
   | **参数**                                                    | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 数据流动方向                                                    | 选择"出云"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 源数据库引擎                                                    | 选择"GeminiDB兼容DynamoDB接口"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 目标数据库引擎                                                   | 选择"DynamoDB"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 网络类型                                                      | 此处以"公网网络"为示例。目前支持可选"公网网络"和"VPN、专线网络"。 - 公网网络：适合通过公网网络将其他云下或其他平台的数据库同步到目标数据库的场景，此类型要求数据库绑定弹性公网IP（EIP）。当一端为本云的数据库实例时，DRS任务与该端的通信方式为VPC内网。  - VPN、专线网络：适合VPN、专线、CC、VPCEP、或者用户已打通VPC对等连接的网络场景，实现其他云下自建数据库与云上数据库同步、云上同Region跨账号、或云上跨Region的数据库之间的同步。                                                                                                                                                                                                                                    |
   | 源数据库实例                                                    | 可用的GeminiDB兼容DynamoDB接口实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 同步实例所在子网                                                  | 请选择同步实例所在的子网。也可以单击"查看子网"，跳转至"网络控制台"查看实例所在子网帮助选择。 默认值为当前所选数据库实例所在子网，请选择有可用IP地址的子网。为确保同步实例创建成功，仅显示已经开启DHCP的子网。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | IP类型                                                      | 选择同步实例的IP类型，目前支持选择"IPv4"或"IPv4\&IPv6双栈"。 - 只有所选择的VPC及子网都开启了IPv6双栈功能，才能选择IP类型为"IPv4\&IPv6双栈"。  - 选择"IPv4\&IPv6双栈"时，如果源或者目标数据库是通过选择实例的方式进行连接，DRS会优先通过IPv4地址进行访问。                                                                                                                                                                                         |
   | 同步模式 指定公网IP | DRS任务支持的同步模式。DRS全量、增量底层实现原理可参考[产品架构和功能原理](https://support.huaweicloud.com/productdesc-drs/drs_01_0317.html#section1)。 - 全量+增量：该模式为数据持续性实时同步，通过全量过程完成目标端数据库的初始化后，增量同步阶段通过解析日志等技术，将源端和目标端数据保持数据持续一致。  - 增量：增量同步通过解析日志等技术，将源端产生的增量数据同步至目标端。   网络类型选择"公网网络"时可见，选择为DRS实例绑定的弹性公网IP。任务创建时，DRS将会自动绑定该弹性公网IP，等待任务结束后将自动解绑该弹性公网IP。指定公网IP数量需要与实例数量匹配。 公网网络迁移产生的数据传输费用收取标准请参见：[弹性公网IP价格计算器](https://www.huaweicloud.com/pricing.html#/eip)。 |
      
   - 可用区
   
   
   图3可用区   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002475714849.png "点击放大")
   表7任务可用区 
   | **参数** | **描述**                          |
   |:---|:---|
   | 可用区    | DRS任务创建的可用区，选择跟源或目标库相同的可用区性能更优。 |
      
   - 企业项目和标签
   
   
   图4企业项目和标签   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002442515682.png "点击放大")
   表8企业项目和标 
   | **参数** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 企业项目   | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。请在下拉框中选择所在的企业项目，其中，default为默认项目。 更多关于企业项目的信息，请参见[《企业管理用户指南》](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)。 如果需要自定义企业项目，请在控制台右上角单击"企业"，进入"企业项目管理"页面创建，具体请参见《企业管理用户指南》中"[创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)"的内容。                                                                                                                                                                                                                                                                                                                                |
   | 标签     | - 可选配置，对同步任务的标识。使用标签可方便管理您的任务。每个任务最多支持20个标签配额。  - 如果您的组织已经设定DRS的相关标签策略，则需按照标签策略规则为任务添加标签。标签如果不符合标签策略的规则，则可能会导致任务创建失败，请联系组织管理员了解标签策略详情。  - 任务创建成功后，您可以单击任务名称，在"标签"页签下查看对应标签。关于标签的详细操作，请参见[标签管理](https://support.huaweicloud.com/realtimesyn-drs/drs_synchronization_tag.html)。   |
      
   
   
3. 在"源库及目标库"页面，同步实例创建成功后，填选源库信息和目标库信息，单击"源库和目标库"处的"测试连接"，分别测试并确定与源库和目标库连通后，勾选协议，单击"下一步"。 
   图5源库信息   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002475719737.png "点击放大")
   表9源库信息 
   | **参数**          | **描述**                                      |
   |:---|:---|
   | 数据库实例名称         | 默认为创建同步任务时选择的GeminiDB兼容DynamoDB接口实例，不可进行修改。 |
   | accessKey       | GeminiDB兼容DynamoDB接口默认用户名和密码。               |
   | secretAccessKey | GeminiDB兼容DynamoDB接口默认用户名和密码。               |
      
   图6目标库信息
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002502088392.png "点击放大")
   
   表10目标库信息 
   | **参数**          | **描述**                                                                                      |
   |:---|:---|
   | IP地址或域名         | 目标数据库的域名，域名命名格式：dynamodb.\<region\>.amazonaws.com。例如：dynamodb.ap-northeast-3.amazonaws.com。 |
   | 端口              | 目标数据库访问端口，默认值80。                                                                            |
   | region          | 目标数据库的所在的Region，比如ap-northeast-3。                                                           |
   | accessKey       | 访问目标数据库DynamoDB的授权IAM密钥信息。                                                                  |
   | secretAccessKey | 访问目标数据库DynamoDB的授权IAM密钥信息。                                                                  |
      
   ![](https://support.huaweicloud.com/realtimesyn-drs/public_sys-resources/note_3.0-zh-cn.png)
   **源和目标数据库的数据库用户名和密码，** **会被系统加密暂存，直至删除该同步任务后自动清除。**
   
   
4. 在"设置同步"页面，选择同步对象类型和同步对象，单击"下一步"。 
   图7设置同步   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002442362342.png "点击放大")
   表11设置同步 
   | **参数** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 流速模式   | 流速模式支持限速和不限速，默认为不限速。限速模式只对全量阶段生效，增量阶段不生效。 - 限速 自定义的最大同步速度，具体速度受网络等多种因素的影响，同步过程中每个任务（多任务时为每个子任务）的同步速度将不会超过该速度。 当流速模式选择了"限速"时，您需要通过流速设置来定时控制同步速度。流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为"全天限流"，您也可以根据业务需求选择"时段限流"。自定义的时段限流支持最多设置10个定时任务，每个定时任务之间不能存在交叉的时间段，未设定在限速时间段的时间默认为不限速。 流速的大小需要根据业务场景来设置，不能超过9999MB/s。 图8设置流速模式 ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002544724388.png)   - 不限速 对同步速度不进行限制，通常会最大化使用源数据库的出口带宽。该流速模式同时会对源数据库造成读消耗，消耗取决于源数据库的出口带宽。比如源数据库的出口带宽为100MB/s，假设高速模式使用了80%带宽，则同步对源数据库将造成80MB/s的读操作IO消耗。 说明： - 限速模式只对全量阶段生效，增量阶段不生效。  - 您也可以在创建任务后修改流速模式。具体方法请参见[修改流速模式](https://support.huaweicloud.com/realtimesyn-drs/drs_10_0401.html)。      |
   | 同步对象   | 左侧框是源数据库对象，右侧框是已经选择的对象，可选表级同步，您可以根据业务场景选择对应的数据进行同步。 - 在同步对象右侧已选对象框中，可以使用对象名映射功能进行源数据库和目标数据库中的同步对象映射，具体操作可参考[对象名修改（对象名映射）](https://support.huaweicloud.com/realtimesyn-drs/drs_10_0015.html)。 库表映射后名称在3到48个字符之间，由字母、数字、中划线、下划线组成，不能包含其他特殊字符。    说明： - 选择对象的时候支持对**展开的库**进行搜索，以便您快速选择需要的数据库对象。  - 如果有切换源数据库的操作或源库同步对象变化的情况，请在选择同步对象前单击右上角的![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000001797656065.png)，以确保待选择的对象为最新源数据库对象。    - 当对象名称包含空格时，名称前后的空格不显示，中间如有多个空格只显示一个空格。  - 选择的同步对象名称中不能包含空格。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      
   
   
5. 在"预检查"页面，进行同步任务预校验，校验是否可进行。 
   - 查看检查结果，如有不通过的检查项，需要修复不通过项后，单击"重新校验"按钮重新进行任务预校验。 预检查不通过项处理建议请参见《数据复制服务用户指南》中的"[预检查不通过项修复方法](https://support.huaweicloud.com/trouble-drs/drs_11_0001.html)"。
     
   
   - 预检查完成后，且所有检查项结果均通过时，单击"下一步"。
     ![](https://support.huaweicloud.com/realtimesyn-drs/public_sys-resources/note_3.0-zh-cn.png)
     所有检查项结果均通过时，若存在请确认项，需要阅读并确认详情后才可以继续执行下一步操作。
     
   
   
   
   
6. 在"任务确认"页面，设置同步任务的启动时间、任务异常通知设置、SMN主题、时延阈值、任务异常自动结束时间，并确认同步任务信息无误后，勾选协议，单击"启动任务"，提交同步任务。 
   图9任务启动设置   
   ![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002475723169.png "点击放大")
   
   表12任务启动设置 
   | **参数**        | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | 启动时间          | 同步任务的启动时间可以根据业务需求，设置为"立即启动"或"稍后启动"。 说明： 预计同步任务启动后，会对源数据库和目标数据库的性能产生影响，建议选择业务低峰期，合理设置同步任务的启动时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 任务异常通知设置      | 该项为可选参数，开启之后，选择对应的SMN主题。当同步任务状态、时延指标或数据异常时，系统将发送通知。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | SMN主题         | "任务异常通知设置"项开启后可见，需提前在SMN上申请主题并添加订阅。 SMN主题申请和订阅可参考[《消息通知服务用户指南》](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0043394914.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 时延阈值          | 在增量同步阶段，源数据库和目标数据库之间的同步有时会存在一个时间差，称为时延，单位为秒。 时延阈值设置是指时延超过一定的值后（时延阈值范围为0到3600s），DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送，避免出现由于时延波动反复发送告警通知的情况。 说明： - 当时延阈值设置为0时，不会发送通知给收件人。  - 首次进入增量同步阶段，会有较多数据等待同步，存在较大的时延，属于正常情况，不在此功能的监控范围之内。  - 设置时延阈值之前，需要设置任务异常通知。   |
   | 数据异常通知        | 该项为可选参数，开启之后，当同步任务数据异常时，系统将发送通知。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 任务异常自动结束时间（天） | 设置任务异常自动结束天数，输入值必须在14到100之间，默认值14。 说明： - 仅按需计费任务支持设置任务异常自动结束时间，包年/包月任务不支持。  - 异常状态下的任务仍然会计费，而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后，异常且超时的任务将会自动结束，以免产生不必要的费用。                                                                                                                                                                                                                                                                                                                                       |
      
   
   
7. 同步任务提交后，您可在"实时同步管理"页面，查看并[管理自己的任务](https://support.huaweicloud.com/realtimesyn-drs/drs_TaskMangement.html)。
   
   - 您可查看任务提交后的状态，状态请参见[任务状态说明](https://support.huaweicloud.com/realtimesyn-drs/drs_06_0004.html)。
   
   - 在任务列表的右上角，单击![](https://support.huaweicloud.com/realtimesyn-drs/figure/zh-cn_image_0000002544564904.png)刷新列表，可查看到最新的任务状态。
   
   - 对于未启动、状态为配置中的任务，DRS默认保留3天，超过3天DRS会自动删除后台资源，当前任务状态不变。当用户再次配置时，DRS会重新申请资源，此时DRS任务IP会发生改变。
   
   - 对于创建失败的任务，DRS默认保留3天，超过3天将会自动结束任务。
   
   - 对于公网网络类型的任务，由于DRS需要在任务结束后删除后台资源，所以该任务绑定的弹性公网IP需要等待一段时间，才能恢复为解绑状态。
   
   
   
   
 
