更新时间:2022-11-10 GMT+08:00
Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin
由于不同的数据库支持的字符集有差异,Oracle等数据库迁移到MySQL后,会转换成支持字符相对全面的UTF8MB4字符集。此字符集对应的默认排序字符集为utf8_general_ci,是大小写不敏感的,即认为"abc"和"ABC"是相同数据。为了避免Oracle等大小写敏感的数据库到MySQL迁移失败(主键冲突等),或者迁移后对业务有影响(查询结果和Oracle有区别),请参考以下建议。
1. 使用DRS做目标端为MySQL的异构迁移/同步时,DRS自动将数据库(仅涉及迁移的库)字符集排序为utf8mb4_bin默认字符集,可以后续确保同库内新增表、列与迁移表、列的排序规格一致,从而避免因表、列的排序规则不一致时进行关联查询,执行计划中因索引数据排序不同而无法利用索引的情况。
2. 可在实例级设置参数collation_server = utf8mb4_bin,该设定可以确保全实例默认字符集(有别于建议1,建议1是仅迁移的库,这里是全局)一致,均为utf8mb4_bin,需要用户根据业务情况决策是否应用于全实例。
父主题: 实时迁移
实时迁移 所有常见问题
- 如何判断数据迁移任务可以停止
- MySQL迁移中Definer强制转化后如何维持原业务用户权限体系
- MySQL存储过程迁移上云后遇到调用权限的问题,如何解决
- 如何确保业务数据库的全部业务已经停止
- 迁移日志提示can not get agency token
- Oracle到MySQL迁移时,索引超长如何处理
- Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin
- RDS for MySQL不支持MyISAM引擎表,迁移时MyISAM如何处理
- 低版本迁移至MySQL 8.0,应该注意哪些问题
- MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因
- 如何关闭集合均衡器Balancer
- 如何批量导出、导入事件(event)和触发器(trigger)
- 源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表
- 分片集群MongoDB迁移前清除孤儿文档
- MySQL账号迁移后权限显示多了反斜杠“\”
more