前提条件
- 目前结构对比的支持数据库类型有:MySQL、Postgresql。源数据库实例和目标数据库实例的数据库类型需要相同。
- 结构对比目前为企业版功能,请用户使用该功能前,切换到DMS企业版,切换步骤及实例注意事项详见 版本说明 。
- 结构对比要求当前用户以及登录实例的账户,拥有源数据库和目标数据库的查询权限。如需要添加对比的数据库到DMS,请详见 实例管理 ;查询及修改用户对实例的操作权限,请详见 我的权限 。
功能介绍
结构对比功能支持同构数据库中,不同表及可编程对象之间的结构差异对比,即比较库/模式之间的元数据信息是否一致,并生成差异化脚本(变更SQL)供用户自行复制执行,以修复源库和目标库结构不一致的情况。
例如:可对比两个表的基本信息、字段、索引、约束(主键、唯一键、check约束等)是否一致。生成的变更SQL不涉及表名称的变更。
另外,结构对比还支持可编程对象类型的对比。例如MySQL数据库支持的可编程对象有:视图、函数、事件,Postgresql数据库支持的可编程对象有:视图、函数、存储过程、序列、触发器。
说明
结构对比功能只展示元数据差异信息,不对源库和目标库之间进行结构同步,请用户自行复制对比结果的变更SQL到目标库执行。
变更SQL可能涉及到表中字段的增删改操作,请用户谨慎操作。
生成的变更SQL不涉及表和可编程对象名称的变更,即目标表或可编程对象名不变。
操作步骤
- 登录数据管理服务。
- 在左侧菜单栏,点击 开发空间>结构对比,进入结构对比工单列表页面。
- 点击结构对比按钮,打开新建结构对比工单填写界面,工单输入说明如下:
输入内容 说明 源数据库 从数据库/模式列表中选择对比源,目前源数据库支持的数据库类型有:MySQL、PostgreSQL。 目标数据库 从数据库/模式列表中选择对比目标。
用户选择了源数据库之后,目标数据库列表中只能选择相同数据库类型的列表。
如果重新选择了目标数据库,则下面的对比内容列表则会清空。
对比内容 选择表或可编程对象进行结构对比。 不同数据库类型,支持展示的对比内容类型不同:
MySQL:表、视图、函数、事件。
PostgreSQL:表、视图、函数、存储过程、序列、触发器。
如果选择了“部分表”,则用户需要手动逐行添加对比源和对比目标名称。如果选择了“全部表”,则会选择源和目标之间的全部同名对象进行结构对比。
工单说明 描述工单备注内容。
4.选择好对比源和目标中的内容之后,点击“提交”,返回结构对比工单列表。
5.点击对比工单号或“详情”,可查看对比工单的概括内容,如对比对象的数目、进度条等。
6.如果对比工单状态为“执行中”或“执行完成”,可点击“对比结果页面”,查询对比内容是否一致,以及它们的DDL和变更SQL。用户可通过复制变更SQL到变更工单或查询窗口执行,也可以直接点击变更SQL弹窗中的“发起变更”按钮跳转到变更工单页,以修复源和目标对象结构不一致的情况。