
# 使用DRS将Oracle数据库迁移至GaussDB
#### 操作场景
本章主要介绍如何使用DRS的实时同步功能将本地Oracle数据库实时迁移至华为云GaussDB。通过全量+增量同步，实现源数据库Oracle与目标数据库GaussDB的数据长期同步。全量同步可以实现数据迁移；增量同步可以实现实时同步源端和目标端两个库之间的数据。
[步骤一：创建VPC和安全组]
[步骤二：创建GaussDB实例]
[步骤三：迁移前构造数据]
[步骤四：迁移数据库]
[步骤五：迁移后进行数据校验]
#### 解决问题
- 企业业务高速发展，传统数据库扩容性差，迫切需要分布式化改造。
- 传统数据库需要自购并安装服务器、系统、数据库等软件，运维成本高、难度大。
- 传统数据库性能瓶颈问题，复杂查询性能较差。
- 如何不中断业务并且平滑地实现数据迁移。
 
#### 前提条件
- 拥有华为云实名认证账号。
- 账户余额大于等于0元。
- 如果测试使用，需要自行在本地搭建Oracle数据库。
- 已知待迁移Oracle数据库的IP地址，端口，账户和密码。
 
#### 业务架构图
![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773314.png)
#### 迁移原理
本次迁移使用全量+增量同步功能，原理如下：
1. 全量同步阶段，先进行结构迁移，例如表、主键、唯一键的迁移。
2. 结构迁移完成后，启动增量数据抽取，以确保全量数据同步期间的增量数据完整地抽取到DRS实例。
3. 启动全量迁移任务。
4. 全量迁移完成后自动进入增量同步，从全量迁移开始抽取的位点开始回放。
5. 当增量回放全部完成后，启动比对任务进行一致性检查，支持实时比对。
6. 实时比对数据一致时，可以启动业务割接。
图1迁移原理图   
![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853021.png "点击放大")
#### 资源规划
本章中的资源规划仅作为演示，实际业务场景资源以用户实际需求为准。
表1资源规划 
| 类别          | 子类       | 规划                       | 备注                                                                                                                      |
|:---|:---|:---|:---|
| VPC         | VPC名称    | vpc-src-172              | 自定义，易理解可识别。                                                                                                             |
| VPC         | 所属Region | 测试Region                 | 现网实际选择时建议选择和自己业务区最近的Region，减少网络时延。                                                                                      |
| VPC         | 可用区      | 可用区1                     | -                                                                                                                       |
| VPC         | 子网网段     | 172.16.0.0/16            | 子网选择时建议预留足够的网络资源。                                                                                                       |
| VPC         | 子网名称     | subnet-src-172           | 自定义，易理解可识别。                                                                                                             |
| 本地Oracle数据库 | 名称       | orcl                     | 自定义，易理解可识别。                                                                                                             |
| 本地Oracle数据库 | 规格       | 16vCPUs \| 32GB          | -                                                                                                                       |
| 本地Oracle数据库 | 数据库版本    | 11.2.0.1                 | -                                                                                                                       |
| 本地Oracle数据库 | 数据库用户    | test_info                | 可以自定义用户，但是迁移时最小权限为：CREATE SESSION,SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE |
| GaussDB     | 实例名      | Auto-drs-gaussdbv5-tar-1 | 自定义，易理解可识别。                                                                                                             |
| GaussDB     | 数据库版本    | GaussDB V2.0-8.218企业版    | -                                                                                                                       |
| GaussDB     | 实例类型     | 分布式版，3CN，3DN，3副本         | 本示例中为分布式实例。                                                                                                             |
| GaussDB     | 部署形态     | 独立部署                     | -                                                                                                                       |
| GaussDB     | 事务一致性    | 强一致性                     | -                                                                                                                       |
| GaussDB     | 分片数量     | 3                        | -                                                                                                                       |
| GaussDB     | 协调节点数量   | 3                        | -                                                                                                                       |
| GaussDB     | 存储类型     | 超高IO                     | -                                                                                                                       |
| GaussDB     | 可用区      | 可用区1                     | 本示例中选择了单可用区，实际建议选择多可用区，以提高实例的高可用性。                                                                                      |
| GaussDB     | 性能规格     | 独享型（1:8） 8 vCPUs \| 64GB | 本示例中为测试实例，选择较小的测试规格，实际选择规格以业务诉求为准。                                                                                      |
| GaussDB     | 存储空间     | 480GB                    | 本示例中为测试实例，选择较小的存储空间，实际选择存储空间大小以业务诉求为准。                                                                                  |
| GaussDB     | 磁盘加密     | 不加密                      | 本示例中选择磁盘不加密，选择加密后会提高数据安全性，但对数据库读写性能有少量影响，实际请按照业务使用策略进行选择。                                                               |
| GaussDB     | 透明加密     | 不加密                      | 本示例中选择不加密，选择加密后会提高数据安全性，但对性能有一定影响，实际请按照业务使用策略进行选择。                                                                      |
| DAS登录数据库    | 数据库引擎    | GaussDB                  | -                                                                                                                       |
| DAS登录数据库    | 数据库来源    | GaussDB                  | 勾选本示例中创建的GaussDB实例                                                                                                      |
| DAS登录数据库    | 数据库名称    | postgres                 | -                                                                                                                       |
| DAS登录数据库    | 登录用户名    | root                     | -                                                                                                                       |
| DAS登录数据库    | 密码       | -                        | 本示例中创建的GaussDB实例root用户密码                                                                                                |
| DRS迁移任务     | 迁移任务名    | DRS-test-info            | 自定义。                                                                                                                    |
| DRS迁移任务     | 目标库名称    | test_database_info       | 自定义，易理解可识别，但是需要确保兼容模式为Oracle模式。                                                                                         |
| DRS迁移任务     | 源数据库引擎   | Oracle                   | -                                                                                                                       |
| DRS迁移任务     | 目标数据库引擎  | GaussDB                  | -                                                                                                                       |
| DRS迁移任务     | 网络类型     | 公网网络                     | 本示例中采用公网网络。                                                                                                             |
   
 #### 步骤一：创建VPC和安全组
创建VPC和安全组，为创建GaussDB实例准备网络资源和安全组。
#### 创建VPC
1. 登录[华为云控制台](https://console.huaweicloud.com)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012865.png)，选择区域。
3. 单击左侧的服务列表图标，选择"网络 \> 虚拟私有云 VPC"。进入虚拟私有云信息页面。
4. 单击"创建虚拟私有云"购买VPC。
   图2基本信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773298.png "点击放大")
   
   图3子网设置   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853011.png "点击放大")
   
   表2虚拟私有云参数说明 
   | 参数         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 区域         | 不同区域的云服务产品之间内网互不相通，请就近选择靠近您业务的区域，可减少网络时延，提高访问速度。                                                                                                                                                                                                                                                                                                                                                                            |
   | 名称         | 输入VPC的名称。要求如下： - 长度范围为1\~64位。  - 名称由中文、英文字母、数字、下划线（_）、中划线（-）、点（.）组成。                                                          |
   | IPv4网段     | 设置VPC的IPv4网段范围，VPC网段的选择需要考虑以下两点： - IP地址数量：要为业务预留足够的IP地址，防止业务扩展给网络带来冲击。  - IP地址网段：当前VPC与其他VPC、云下数据中心连通时，要避免网络两端的IP地址冲突，否则无法正常通信。   |
   | 企业项目       | 创建VPC时，可以将VPC加入已启用的企业项目。 企业项目管理提供了一种按企业项目管理云资源的方式，帮助您实现以企业项目为基本单元的资源及人员的统一管理，默认项目为default。                                                                                                                                                                                                                                                                                   |
   | 高级配置 \> 标签 | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853025.png)，展开折叠的高级配置区域，可以设置该参数。 您可以在创建VPC的时候为VPC绑定标签，标签用于标识云资源，可通过标签实现对云资源的分类和搜索。                                                                                                                                                                                                     |
   | 高级配置 \> 描述 | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933190.png)，展开折叠的高级配置区域，可以设置该参数。 您可以根据需要在文本框中输入对该VPC的描述信息。 描述信息内容不能超过255个字符，且不能包含"\<"和"\>"。                                                                                                                                           |
      
   表3子网参数说明 
   | 参数                    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | 子网名称                  | 输入子网的名称。要求如下： - 长度范围为1\~64位。  - 名称由中文、英文字母、数字、下划线（_）、中划线（-）、点（.）组成。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 可用区                   | 可用区是指在同一地域内，电力和网络互相独立的物理区域。在同一VPC网络内可用区与可用区之间内网互通，可用区之间能做到物理隔离。 一个区域内有多个可用区，一个可用区发生故障后不会影响同一区域内的其它可用区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 子网IPv4网段              | 在开启IPv4/IPv6双栈的区域，显示此参数。 设置子网的IPv4网段范围，子网是VPC内的IP地址块，可以将VPC的网段分成若干块，建议您规划子网时，遵循以下原则： - 子网内可用IP数量：子网创建成功后，不支持修改网段，请您结合业务所需的IP地址数量，提前合理规划好子网网段。 - 子网网段不能太小，需要确保子网内可用IP地址数量可以满足业务需求。子网网段中第一个地址和后三个地址为系统预留地址，不能供实际业务使用，比如子网（10.0.0.0/24）中，10.0.0.1为网关地址、10.0.0.253为系统接口、10.0.0.254为DHCP使用、10.0.0.255为广播地址。  - 子网网段也不能太大，以免后续扩展新的业务时，VPC内可用网段不够再创建新的子网。    - 子网网段避免冲突：如果子网所在的VPC与其他VPC、或者VPC与云下数据中心需要通信时，则VPC子网网段和网络对端网段不能相同，否则无法正常通信。 如果网络两端的子网网段已经相同，您可以创建新的子网，请参见[为虚拟私有云创建新的子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013748726.html)。    子网的网段必须在VPC网段范围内，子网网段的掩码长度范围为"子网所在VPC的掩码\~29"，比如VPC网段为10.0.0.0/16，掩码为16，则子网的掩码可在16\~29范围内选择。 关于VPC子网规划更详细的说明，请参见[虚拟私有云和子网规划建议](https://support.huaweicloud.com/usermanual-vpc/vpc_0001.html)。 |
   | 子网IPv6网段              | 在开启IPv4/IPv6双栈的区域，显示此参数。 开启IPv6功能后，将自动为子网分配IPv6网段，暂不支持自定义设置IPv6网段。该功能一旦开启，将不能关闭。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 高级配置 \> 网关            | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933176.png)，展开折叠的高级配置区域，可以设置该参数。 子网的网关，如果没有特殊需求，建议保持系统默认设置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 高级配置 \> DNS服务器地址      | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853033.png)，展开折叠的高级配置区域，可以设置该参数。 此处默认填写华为云的DNS服务器地址，可实现云服务器在VPC内直接通过内网域名互相访问。同时，还支持不经公网，直接通过内网DNS访问云上服务。 若您由于业务原因需要指定其他DNS服务器地址，您可以修改默认的DNS服务器地址。如果您删除默认的DNS服务器地址，可能会导致您无法访问云上其他服务，请谨慎操作。 您也可以通过"DNS服务器地址"右侧的"重置"将DNS服务器地址恢复为默认值。 DNS服务器地址最多支持2个IP，请以英文逗号隔开。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 高级配置 \> 域名            | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933200.png)，展开折叠的高级配置区域，可以设置该参数。 此处填写DNS域名后缀：支持填写多个域名，不同的域名之间以空格分隔，单个字符串长度不超过63个字符（以域名test.com为例，test和com是两个字符串），并且域名总长度不超过254个字符。 访问某个域名时，只需要输入域名前缀，子网内的云服务器会自动匹配设置的域名后缀。 域名设置完成后，子网内新创建的云服务器会自动同步该配置。 子网内的存量云服务器，需要更新DHCP配置使域名生效，您可以重启云服务器、重启DHCP Client服务或者重启网络服务。 说明： 对于不同操作系统云服务器，更新DHCP配置的命令不同，以下命令供您参考。 - 重启DHCP Client服务：service dhcpd restart  - 重启网络服务：service network restart                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 高级配置 \> NTP服务器地址      | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853007.png)，展开折叠的高级配置区域，可以设置该参数。 如果您需要为当前子网新增NTP服务器地址，则需要填写该地址。此处填写的地址不会影响默认NTP服务器地址。 - 新增或修改原有子网的NTP服务器地址后，需要子网内的ECS重新获取一次DHCP租约，或者重启ECS，才能生效。  - 清空NTP服务器地址时，需要子网内的ECS重新获取一次DHCP租约，重启ECS无法生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 高级配置 \> IPv4 DHCP租约时间 | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933204.png)，展开折叠的高级配置区域，可以设置该参数。 在开启IPv4/IPv6双栈的区域，显示该参数。 您可以设置IPv4地址的DHCP租约时间。 DHCP租约时间是指DHCP服务器自动分配给客户端的IP地址的使用期限。超过租约时间，IP地址将被收回，需要重新分配。 - 期限租约：设置DHCP租约期限，单位为天或者小时。  - 无限租约：设置DHCP不过期。   DHCP租约时间修改后，对于子网内的实例（比如ECS）来说，当实例下一次续租时，新的租约时间将会生效。实例续租分为自动更新租约和手动更新租约两种，续租不会改变实例当前的IP地址。如果需要DHCP租约立即生效，请在实例中手动更新租约或者重启实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 高级配置 \> IPv6 DHCP租约时间 | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012843.png)，展开折叠的高级配置区域，可以设置该参数。 在开启IPv4/IPv6双栈的区域，当"子网IPv6网段"选择"开启IPv6"时，显示该参数。 您可以设置IPv6地址的DHCP租约时间。IPv6 地址和IPv4地址的租约时间设置方法、生效情况相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 高级配置 \> 标签            | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773280.png)，展开折叠的高级配置区域，可以设置该参数。 您可以在创建子网的时候为子网绑定标签，标签用于标识云资源，可通过标签实现对云资源的分类和搜索。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 高级配置 \> 描述            | 单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853041.png)，展开折叠的高级配置区域，可以设置该参数。 您可以根据需要在文本框中输入对该子网的描述信息。 描述信息内容不能超过255个字符，且不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      
   
5. 单击"立即创建"。
6. 返回VPC列表，查看创建VPC是否创建完成。 当VPC列表的VPC状态为"可用"时，表示VPC创建完成。
   
 
#### 创建安全组
1. 登录[华为云控制台](https://console.huaweicloud.com)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853023.png)，选择区域。
3. 单击左侧的服务列表图标，选择"网络 \> 虚拟私有云 VPC"。进入虚拟私有云信息页面。
4. 选择"访问控制 \> 安全组"。
5. 单击"创建安全组"。
6. 填写安全组名称等信息。
   图4基本信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933174.png "点击放大")
   
   表4参数说明 
   | 参数   | 参数说明                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 区域   | 不同区域的云服务产品之间内网互不相通，请就近选择靠近您业务的区域，可减少网络时延，提高访问速度。 安全组和实例必须位于同一个区域内，才可以将实例添加到安全组内。                                                                                                                                                                                                             |
   | 名称   | 输入安全组的名称。要求如下： - 长度范围为1\~64位。  - 名称由中文、英文字母、数字、下划线（_）、中划线（-）、点（.）组成。   安全组名称创建后可以修改，建议不要重名。 |
   | 企业项目 | 创建安全组时，可以将安全组加入已启用的企业项目。 企业项目管理提供了一种按企业项目管理云资源的方式，帮助您实现以企业项目为基本单元的资源及人员的统一管理，默认项目为default。                                                                                                                                                                                                   |
   | 标签   | 您可以在创建安全组的时候为安全组绑定标签，标签用于标识安全组资源，可通过标签实现对安全组资源的分类和搜索。                                                                                                                                                                                                                                                                                        |
   | 描述   | 安全组的描述信息。 描述信息内容不能超过255个字符，且不能包含"\<"和"\>"。                                                                                                                                                                                                                                                     |
      
   
7. 选择"入方向规则"，单击"添加规则"。 
   
8. 配置入方向规则，添加源库的IP地址。
   图5配置入方向规则   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012847.png "点击放大")
   
   
9. 单击"立即创建"。
 
 #### 步骤二：创建GaussDB实例
创建GaussDB实例，作为迁移任务目标库。
1. 进入[购买云数据库GaussDB实例页面](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/createIns)。
2. 在购买实例页面，选择"自定义购买"。参考[图6]，选择计费模式、产品类型、数据库引擎版本、实例类型、事务一致性、分片数量、协调节点数量和可用区。
   图6基础配置   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933060.png)
   图7实例选配   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933206.png "点击放大")
   
   
3. 选择实例规格、存储空间大小。
   图8实例规格   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773278.png "点击放大")
   
   
4. 配置实例名称和密码信息。
   图9配置实例名称和密码   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933196.png "点击放大")
   
   
5. 选择实例所属的VPC（[创建VPC]）和安全组（[创建安全组]），配置数据库端口、参数模板等信息。
   图10选择VPC和安全组   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853017.png "点击放大")
   
   
6. 单击"立即购买"，确认信息并提交。
7. 返回实例列表。 当实例运行状态为"正常"时，表示实例创建完成。
   
 
 #### 步骤三：迁移前构造数据
迁移前需要在源库构造一些数据类型，供迁移完成后验证数据。本章中端到端的数据为测试数据，仅供参考。
DRS支持的数据类型如下所示：
表5数据类型映射关系 
| **源库数据类型**    | **目标库数据类型**                    | **源库数据类型做主键，同步能力** | **源库数据类型做非主键，同步能力** | **源库数据类型做主键，对比能力** | **源库数据类型做非主键，对比能力** | **备注**                                         |
|:---|:---|:---|:---|:---|:---|:---|
| CHAR          | character                      | 支持                 | 支持                  | 支持，忽略字符前后的空格       | 支持，忽略字符前后的空格        | -                                              |
| VARCHAR       | character varying              | 支持                 | 支持                  | 支持                 | 支持                  | 源目标库数据表示范围不同，存在精度损失。                           |
| VARCHAR2      | character varying              | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NCHAR         | character                      | 支持                 | 支持                  | 支持，忽略字符前后的空格       | 支持，忽略字符前后的空格        | -                                              |
| NVARCHAR2     | nvarchar2                      | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NUMBER        | numeric                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NUMBER (6,3)  | numeric(6,3)                   | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NUMBER (6,0)  | Integer                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NUMBER (3)    | smallint                       | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| NUMBER (6,-2) | integer                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| BINARY_FLOAT  | real                           | 不支持（目标库不支持做主键建表）   | 支持                  | 不支持                | 支持                  | 源目标库数据表示范围不同，存在精度损失。                           |
| BINARY_DOUBLE | double precision               | 不支持（目标库不支持做主键建表）   | 支持                  | 不支持                | 支持                  | -                                              |
| FLOAT         | real                           | 不支持（目标库不支持做主键建表）   | 支持                  | 不支持                | 支持                  | 源目标库数据表示范围不同，存在精度损失。                           |
| INT           | numeric                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| INTEGER       | numeric                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| DATE          | date                           | 支持                 | 支持                  | 不支持                | 支持                  | DRS在目标库建表时类型为date，此时源目标库数据表示范围不同，存在精度损失，不支持对比。 |
| TIMESTAMP     | timestamp(6) without time zone | 支持                 | 支持                  | 不支持                | 校验到小数点后6位           | 源库使用限制：支持的最大精度是6。                              |
| TIMESTAMP_TZ  | timestamp(6) with time zone    | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| TIMESTAMP_LTZ | timestamp(6) with time zone    | 不支持（目标库不支持做主键建表）   | 支持                  | 不支持                | 过滤该列                | -                                              |
| INTERVAL_YM   | interval year to month         | 支持                 | 支持                  | 不支持                | 不支持                 | 增量同步不支持该类型。                                    |
| INTERVAL_DS   | interval day to second         | 支持                 | 支持                  | 不支持                | 不支持                 | 增量同步不支持该类型。源库使用限制：支持的最大精度是6。                   |
| BLOB          | bytea                          | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| CLOB          | text                           | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| NCLOB         | text                           | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| LONG          | text                           | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| LONG_RAW      | bytea                          | 不支持(源库不支持做主键建表)    | 支持                  | 不支持                | 过滤该列                | -                                              |
| RAW           | bytea                          | 不支持（目标库不支持做主键建表）   | 支持                  | 不支持                | 支持                  | -                                              |
| RowID         | character varying(18)          | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
| BFILE         | -                              | 不支持                | 不支持                 | 不支持                | 不支持                 | 源库使用限制：不支持bfile类型。                             |
| XMLTYPE       | -                              | 不支持                | 不支持                 | 不支持                | 不支持                 | 源库使用限制：不支持xmltype类型。                           |
| UROWID        | -                              | 不支持                | 不支持                 | 不支持                | 不支持                 | 全量增量都不支持同步。                                    |
| sdo_geometry  | -                              | 不支持                | 不支持                 | 不支持                | 不支持                 | 源库使用限制：不支持sdo_geometry类型。                      |
| NUMBER(\*，0)  | numeric                        | 支持                 | 支持                  | 支持                 | 支持                  | -                                              |
   
执行如下步骤在源库构造数据：
1. 根据本地的Oracle数据库的IP地址，通过数据库连接工具连接数据库。
2. 根据DRS支持的数据类型，在源库执行语句构造数据。
   1. 创建一个测试用的用户。 **create user** *test_info* **identified by** *xxx* **;**
      test_info为本次迁移创建的用户，xxx为用户的密码，请根据实际情况替换。
      
   
   2. 给用户赋权。 **grant dba to** *test_info* **;**
      
   
   3. 在当前用户下创建一个数据表。 **CREATE TABLE** *test_info* **.** *DATATYPELIST* **(**
      **ID INT,**
      **COL_01_CHAR______E CHAR(100),**
      **COL_02_NCHAR_____E NCHAR(100),**
      **COL_03_VARCHAR___E VARCHAR(1000),**
      **COL_04_VARCHAR2__E VARCHAR2(1000),**
      **COL_05_NVARCHAR2_E NVARCHAR2(1000),**
      **COL_06_NUMBER____E NUMBER(38,0),**
      **COL_07_FLOAT_____E FLOAT(126),**
      **COL_08_BFLOAT____E BINARY_FLOAT,**
      **COL_09_BDOUBLE___E BINARY_DOUBLE,**
      **COL_10_DATE______E DATE DEFAULT SYSTIMESTAMP,**
      **COL_11_TS________E TIMESTAMP(6),**
      **COL_12_TSTZ______E TIMESTAMP(6) WITH TIME ZONE,**
      **COL_13_TSLTZ_____E TIMESTAMP(6) WITH LOCAL TIME ZONE,**
      **COL_14_CLOB______E CLOB DEFAULT EMPTY_CLOB(),**
      **COL_15_BLOB______E BLOB DEFAULT EMPTY_BLOB(),**
      **COL_16_NCLOB_____E NCLOB DEFAULT EMPTY_CLOB(),**
      **COL_17_RAW_______E RAW(1000),**
      **COL_19_LONGRAW___E LONG RAW,**
      **COL_24_ROWID_____E ROWID,**
      **PRIMARY KEY(ID)**
      **);**
      
   
   4. 插入两行数据。 **insert into test_info.DATATYPELIST values(4,'huawei','xian','shanxi','zhongguo','shijie', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA');**
      **insert into test_info.DATATYPELIST values(2,'Migrate-test','test1','test2','test3','test4', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA');**
      
   
   5. 使语句生效。 **commit;**
      
    
3. 在目标端创建库。
   1. 登录[华为云控制台](https://console.huaweicloud.com)。
   
   2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774304.png)，选择区域。
   
   3. 单击左侧的服务列表图标，选择"数据库 \> 数据管理服务 DAS"。
   
   4. 在数据管理服务DAS左侧导航栏，单击"开发工具"，进入开发工具数据库登录列表页面。
   
   5. 单击"新增数据库实例登录"，打开新增数据库实例登录窗口。
   
   6. 选择"数据库引擎"、"数据库来源"、目标实例，填写登录用户名、密码以及描述（非必填项）信息，开启SQL执行记录功能。
   
   
   
   7. 单击"测试连接"测试连接是否成功。 如测试连接成功，将提示"连接成功"，您可继续新增操作。如测试连接失败，将提示连接失败原因，您需根据提示信息进行修改，以便新增数据库登录成功。
      
   
   8. 设置完登录信息，单击"立即新增"。
   
   9. 新增完成后，单击新增登录的"登录"，登录当前数据库。
      图11登录数据库   
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933168.png "点击放大")
      
      
   
   10. 选择"SQL操作"\> "SQL窗口"进入SQL窗口页面。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933170.png "点击放大")
       
       
   
   11. 执行如下语句创建兼容Oracle的数据库。
       此例中为：test_database_info，请根据实际情况选择。
       ```
       CREATE DATABASE test_database_info DBCOMPATIBILITY 'ORA';
       ```
       
    
 
 #### 步骤四：迁移数据库
创建DRS实例，将本地Oracle上的**test_info** 数据库迁移到GaussDB实例中**test_database_info**数据库中。
#### 迁移前检查
在创建任务前，需要针对迁移条件进行手工自检，以确保您的迁移任务更加顺畅。
在迁移前，您需要参考[入云使用须知](https://support.huaweicloud.com/realtimesyn-drs/drs_03_1126.html)获取迁移相关说明。
#### 创建迁移任务
1. 登录[华为云控制台](https://console.huaweicloud.com)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934196.png)，选择区域。
   选择目标实例所在的区域。
   
3. 单击左侧的服务列表图标，选择"数据库 \> 数据复制服务 DRS"。
4. 左侧导航栏选择"实时同步管理"，单击"创建同步任务"。
5. 配置同步实例信息。
   1. 选择区域，计费模式，项目，填写任务名称。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773304.png "点击放大")
      
      
   
   2. 配置同步实例信息，选择"数据流动方向"、"源数据库引擎"、"目标数据库引擎"、"网络类型"、"DRS任务类型"、"目标数据库实例"、"同步实例所在子网"、"同步模式"、"指定公网IP"（网络类型选择公网网络时需要配置该参数）、"规格类型"、"可用区"和"企业项目"，选填"标签"。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854045.png "点击放大")
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013873.png "点击放大")
      
      
      
   
   3. 单击"开始创建"。
    
6. 配置源库及目标库信息。
   1. 选择"是否配置自建DNS服务"、填写源库的IP、端口、用户、密码等信息。 填写完成后，需要单击"测试连接"，测试连接信息是否正确。
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854041.png "点击放大")
      
      
   
   2. 填写目标库的账户和密码。 填写完成后，需要单击"测试连接"，测试连接信息是否正确。
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012845.png "点击放大")
      
      
   
   3. 单击"下一步"，仔细阅读提示内容后，单击"同意，并继续"。 
      
    
7. 设置同步。
   1. 在源库选择需要迁移的数据库和表。本次迁移中选择"**test_info"** 中的**"DATATYPELIST"** 表。
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774312.png "点击放大")
      
   
   2. 选择完成后，可以设置迁移后是否重新命名库名和表名。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934204.png "点击放大")
      
   
   3. 本次迁移将表名重新命名为"**DATATYPELIST** **_After** "。
      注意重新命名时不要使用特殊符号，否则会导致迁移后执行SQL语句报错。
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013877.png "点击放大")
      
   
   4. 确认重命名设置内容，单击"下一步"。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934198.png "点击放大")
      
    
8. 高级设置。 本页面内容仅做确认，无法修改，确认完成后单击"下一步"。
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774316.png "点击放大")
   
9. 数据加工。
   在该页面可以对迁移的表进行加工。包括选择迁移的列，重新命名迁移后的列名，本次迁移将"**COL_01_CHAR______E** "重新命名为"**new-line** "。
   1. 选择需要加工的表。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013875.png "点击放大")
      
   
   2. 编辑"COL_01_CHAR______E"列。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774308.png "点击放大")
      
   
   3. 将"COL_01_CHAR______E"重新命名为"new-line"，单击"确定"。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013869.png "点击放大")
      
   
   4. 单击"下一步"。
     
10. 预检查。
    1. 所有配置完成后，进行预检查，确保迁移成功。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854039.png "点击放大")
       
    
    2. 对于未通过的项目，根据检查结果中的提示信息修复，修复完成后，单击"重新校验"，直到预检查通过率为100%。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774314.png "点击放大")
       
    
    3. 预检查全部通过后，单击"下一步"。
     
11. 任务确定。
    1. 检查所有配置项是否正确。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934210.png "点击放大")
       
    
    2. 单击"启动任务"，仔细阅读提示后，勾选"我已阅读启动前须知"。
    
    3. 单击"启动任务"，完成任务创建。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854047.png "点击放大")
       
     
12. 任务创建成功。 任务创建成功后，返回任务列表查看创建的任务状态。
    ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934208.png "点击放大")
    
 
 #### 步骤五：迁移后进行数据校验
当任务状态变为"增量同步"，说明全量同步已经完成，全量同步完成后，登录GaussDB查看数据迁移结果。
1. 等待迁移任务状态变为"增量同步"。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934206.png "点击放大")
   
2. 单击任务名称，进入任务详情页。
3. 在"同步进度"页签查看全量同步结果。 如图所示，本次迁移将**TEST_INFO** 库中**DATATYPELIST** 表迁移至**shard_0**，共迁移了两条数据。
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854037.png "点击放大")
   
4. 验证数据一致性。
   1. 在"同步对比 \> 对象级对比"页面，查看库和表的迁移结果。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934200.png "点击放大")
      
   
   2. 在"同步对比 \> 数据级对比"页面，创建对比任务，查看表中行的迁移结果。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013883.png "点击放大")
      
    
5. 通过DAS连接GaussDB的目标库"**test_database_info** "。
   DAS连接实例的方法请参考[新增数据库登录](https://support.huaweicloud.com/usermanual-das/das_03_0002.html)。
   
6. 执行如下语句，查询全量同步结果。
   ```
   SELECT * FROM test_info.datatypelist_after;
   ```
   Oracle数据库中的模式迁移完成后，会在GaussDB库中作为Schema，所以查询语句中添加Schema精确查询。
   如图所示，查询表中的各个数据类型都迁移成功，并且数据正确无误。
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774306.png "点击放大")
   
7. 验证增量同步。
   由于本次迁移为"全量+增量"同步模式，全量同步完成后，如果在创建任务后有数据写入，这些写入的数据会一直同步至目标库中，直到任务结束。下面为模拟写入另外的数据。
   1. 根据本地的Oracle数据库的IP和地址，通过数据库连接工具连接数据库。
   
   2. 执行如下语句，在源库插入一条数据。
      插入一条"id"为1的数据。
      ```
      insert into test_info.DATATYPELIST values(1,'Migrate-test','test1','test2','test3','test4', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA');
      commit;
      ```
      
   
   3. 在目标库执行如下语句查询结果。
      ```
      SELECT * FROM test_info.datatypelist_after;
      ```
      如图所示，在源库新增的数据，可以实时同步至目标库。
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854033.png "点击放大")
      
     
8. 结束迁移任务。
   根据业务情况，待业务完全迁移至目标库，可以结束当前任务。
   1. 单击"操作"列的"结束"。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854035.png "点击放大")
      
   
   2. 仔细阅读提示后，单击"是"，结束任务。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774310.png "点击放大")
      
     
9. 迁移完成后，进行性能测试。 测试云数据库GaussDB性能的方法请参见[性能白皮书](https://support.huaweicloud.com/pwp-gaussdb/gaussdb_pwp_0001.html)。
   
 
