searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

MySQL 数据库至 OceanBase 数据库 MySQL 租户的同步 DDL

2024-12-19 09:14:55
7
0

MySQL数据库至OceanBase数据库MySQL租户的同步DDL(数据定义语言)涉及一系列的操作和注意事项。以下是对该过程的详细解析:

一、同步DDL支持的范围

在MySQL数据库至OceanBase数据库MySQL租户的迁移过程中,同步DDL支持以下操作:

  1. 创建表(CREATE TABLE)
    • 可以在OceanBase中创建与MySQL中结构相同的表。
  2. 修改表(ALTER TABLE)
    • 支持添加列(ALTER TABLE ADD COLUMN)。
    • 支持修改列的长度(MODIFY COLUMN),但不支持修改列的类型
    • 支持修改列的默认值(ALTER COLUMN SET DEFAULT或ALTER COLUMN DROP DEFAULT)。
    • 支持删除列(DROP COLUMN)。
    • 支持表重命名(RENAME TABLE或ALTER TABLE RENAME)。
  3. 清空表(TRUNCATE TABLE)
    • 可以清空OceanBase中表的所有数据,与MySQL中的TRUNCATE TABLE操作相同。
  4. 删除表(DROP TABLE)
    • 可以删除OceanBase中的表,与MySQL中的DROP TABLE操作相同。
  5. 创建索引(CREATE INDEX)或添加索引(ALTER TABLE ADD INDEX)
    • 可以在OceanBase中的表上创建索引。
  6. 删除索引(DROP INDEX)或删除表中的索引(ALTER TABLE DROP INDEX)
    • 可以删除OceanBase中的索引。

二、同步DDL的注意事项

  1. 不支持的操作
    • 同步DDL不支持创建、删除或修改数据库(CREATE/DROP/ALTER DATABASE)等高级操作。
    • 不支持创建、删除或修改函数、过程、事件、视图、角色、触发器和用户等对象。
  2. DDL操作的顺序
    • 不能频繁对一张表进行DDL操作。需要等待Store处理完当前DDL后(根据位点判断),再进行下一个DDL。
    • 在新建Store前的一段时间和启动过程中,需要确保无DDL操作。
    • 如果是回拉操作,需要确保回拉点至当前时间无DDL操作。
  3. 表重命名的特殊要求
    • RENAME TABLE前后的表名,必须全在需要同步的表中,或者全不在需要同步的表中。
  4. 索引操作的警告
    • 开启同步DDL后,DROP INDEX命令会无差别执行,可能导致目标端索引丢失。

三、同步DDL的配置与执行

  1. 配置同步任务
    • 在数据传输服务中配置MySQL数据库至OceanBase数据库MySQL租户的同步任务。
    • 选择源端MySQL数据库和目标端OceanBase数据库MySQL租户。
  2. 选择迁移对象和类型
    • 通过指定对象或匹配规则选择需要同步的数据库对象。
    • 选择合适的迁移类型,如结构迁移、全量迁移、增量同步等。
  3. 启动并监控同步任务
    • 启动同步任务后,在任务列表中监控其进度和状态。
    • 如遇异常或任务失败,根据错误信息进行排查和处理。

四、总结

MySQL数据库至OceanBase数据库MySQL租户的同步DDL是一个复杂的过程,需要仔细规划、配置和监控。通过合理的配置和优化,可以实现高效的数据同步和冗余备份,提高数据的可用性和灾难恢复能力。同时,也需要注意同步DDL的支持范围和限制条件,以避免可能的错误和冲突。

0条评论
0 / 1000
每日知识小分享
873文章数
7粉丝数
每日知识小分享
873 文章 | 7 粉丝
原创

MySQL 数据库至 OceanBase 数据库 MySQL 租户的同步 DDL

2024-12-19 09:14:55
7
0

MySQL数据库至OceanBase数据库MySQL租户的同步DDL(数据定义语言)涉及一系列的操作和注意事项。以下是对该过程的详细解析:

一、同步DDL支持的范围

在MySQL数据库至OceanBase数据库MySQL租户的迁移过程中,同步DDL支持以下操作:

  1. 创建表(CREATE TABLE)
    • 可以在OceanBase中创建与MySQL中结构相同的表。
  2. 修改表(ALTER TABLE)
    • 支持添加列(ALTER TABLE ADD COLUMN)。
    • 支持修改列的长度(MODIFY COLUMN),但不支持修改列的类型
    • 支持修改列的默认值(ALTER COLUMN SET DEFAULT或ALTER COLUMN DROP DEFAULT)。
    • 支持删除列(DROP COLUMN)。
    • 支持表重命名(RENAME TABLE或ALTER TABLE RENAME)。
  3. 清空表(TRUNCATE TABLE)
    • 可以清空OceanBase中表的所有数据,与MySQL中的TRUNCATE TABLE操作相同。
  4. 删除表(DROP TABLE)
    • 可以删除OceanBase中的表,与MySQL中的DROP TABLE操作相同。
  5. 创建索引(CREATE INDEX)或添加索引(ALTER TABLE ADD INDEX)
    • 可以在OceanBase中的表上创建索引。
  6. 删除索引(DROP INDEX)或删除表中的索引(ALTER TABLE DROP INDEX)
    • 可以删除OceanBase中的索引。

二、同步DDL的注意事项

  1. 不支持的操作
    • 同步DDL不支持创建、删除或修改数据库(CREATE/DROP/ALTER DATABASE)等高级操作。
    • 不支持创建、删除或修改函数、过程、事件、视图、角色、触发器和用户等对象。
  2. DDL操作的顺序
    • 不能频繁对一张表进行DDL操作。需要等待Store处理完当前DDL后(根据位点判断),再进行下一个DDL。
    • 在新建Store前的一段时间和启动过程中,需要确保无DDL操作。
    • 如果是回拉操作,需要确保回拉点至当前时间无DDL操作。
  3. 表重命名的特殊要求
    • RENAME TABLE前后的表名,必须全在需要同步的表中,或者全不在需要同步的表中。
  4. 索引操作的警告
    • 开启同步DDL后,DROP INDEX命令会无差别执行,可能导致目标端索引丢失。

三、同步DDL的配置与执行

  1. 配置同步任务
    • 在数据传输服务中配置MySQL数据库至OceanBase数据库MySQL租户的同步任务。
    • 选择源端MySQL数据库和目标端OceanBase数据库MySQL租户。
  2. 选择迁移对象和类型
    • 通过指定对象或匹配规则选择需要同步的数据库对象。
    • 选择合适的迁移类型,如结构迁移、全量迁移、增量同步等。
  3. 启动并监控同步任务
    • 启动同步任务后,在任务列表中监控其进度和状态。
    • 如遇异常或任务失败,根据错误信息进行排查和处理。

四、总结

MySQL数据库至OceanBase数据库MySQL租户的同步DDL是一个复杂的过程,需要仔细规划、配置和监控。通过合理的配置和优化,可以实现高效的数据同步和冗余备份,提高数据的可用性和灾难恢复能力。同时,也需要注意同步DDL的支持范围和限制条件,以避免可能的错误和冲突。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0