对象名修改(对象名映射)
实时同步功能可以支持源数据库和目标数据库中的同步对象(包括数据库、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 库映射
- 修改名称。
在弹出的编辑框中,填写新的数据对象名称,修改后的名称即为保存在目标数据库中的名称。
图2 修改库名
图3 修改schema名
图4 修改表名
- 查看修改结果。
修改成功后,您会看到修改前和修改后的名称,至此,表示完成对象名映射的配置。图5 查看修改结果
多对一同步
实时同步过程中,可以使用对象名映射功能修改库、schema、表名称,实现多对一的同步。
以库级多对一为例,schema、表级多对一场景可参考如下步骤:
- 在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行多对一同步的数据库,分别单击“编辑”按钮。
- 在“编辑库名”的弹出框中,统一填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。
例如,将源库中的库test_16和库auto_nprocess_001,修改为同样的库test_16_new。
图6 修改结果
- 库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示已完成多对一库映射的配置。
- 配置完成后,等待任务启动并完成同步后,即可实时库test_16、库auto_nprocess_001到库test_16_new的同步。