文档首页/ 数据复制服务 DRS/ 实时同步/ 任务管理/ 对象管理/ 对象名修改(对象名映射)
更新时间:2024-09-26 GMT+08:00

对象名修改(对象名映射)

实时同步功能可以支持源数据库和目标数据库中的同步对象(包括数据库、schema、表)的名称不同。对象名映射功能主要在如下场景使用:

  • 对象名修改:如果同步的数据库对象在目标数据库中的命名和源数据库中不同,那么可以使用DRS提供的对象名映射功能进行修改。
  • 多对一同步:如果需要进行库、schema、表的多对一同步,那么可以使用DRS提供的对象名映射功能实现。

本小节主要介绍如何在实时同步任务配置过程中,使用对象名映射功能,该功能的映射关系详情可参见查看同步映射章节。

使用须知

  • 不支持库名、表名带有换行符的对象进行映射。
  • 首次创建实时同步任务时,在选择同步对象阶段可设置映射,后续不可编辑映射。
  • 通过编辑同步对象功能来增加或者减少同步对象时,首次编辑的对象可以设置映射关系,已经在同步关系中的对象不可设置映射。
  • 若目标库是PG类(如GaussDB(DWS)、GaussDB和PostgreSQL),目的库的schema名称不能设置为以pg_开头,否则会迁移失败。
  • 以下链路,不支持包含smallserial, serial, bigserial 这3个类型的表进行schema映射。
    • GaussDB主备版->GaussDB分布式版
    • GaussDB主备版->GaussDB主备版
    • GaussDB分布式版->GaussDB分布式版
    • GaussDB分布式版->GaussDB主备版
  • 以下链路,支持多对一的对象映射。
    • MySQL->MySQL
    • MySQL->GaussDB(for MySQL)
    • MySQL->GaussDB(DWS)
    • MySQL->Kafka
    • GaussDB(for MySQL)->MySQL
    • GaussDB(for MySQL)->GaussDB(for MySQL)
    • GaussDB(for MySQL)->GaussDB(DWS)
    • Oracle->GaussDB
    • Oracle->GaussDB(DWS)

对象名修改

实时同步过程中,如果待同步的库、schema、表对象在源数据库和目标数据库中存储名称不同,可以使用实时同步提供的映射功能进行映射。例如:将源数据库中的A库同步到目标数据库,变成目标数据库中的B库,此时就可以使用库映射功能来实现。

  1. “设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的数据库,单击“编辑”按钮。

    图1 库映射

  2. 修改名称。

    在弹出的编辑框中,填写新的数据对象名称,修改后的名称即为保存在目标数据库中的名称。

    图2 修改库名
    图3 修改schema名
    图4 修改表名

  3. 查看修改结果。

    修改成功后,您会看到修改前和修改后的名称,至此,表示完成对象名映射的配置。
    图5 查看修改结果

多对一同步

实时同步过程中,可以使用对象名映射功能修改库、schema、表名称,实现多对一的同步。

以库级多对一为例,schema、表级多对一场景可参考如下步骤:

  1. “设定同步”页面,同步对象右侧已选对象框中,选择需要进行多对一同步的数据库,分别单击“编辑”按钮。
  2. “编辑库名”的弹出框中,统一填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。

    例如,将源库中的库test_16和库auto_nprocess_001,修改为同样的库test_16_new。

    图6 修改结果

  3. 库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示已完成多对一库映射的配置。
  4. 配置完成后,等待任务启动并完成同步后,即可实时库test_16、库auto_nprocess_001到库test_16_new的同步。