实例录入数据管理DMS后,DMS会自动采集实例中数据库的字典信息。当您在DMS发现实例信息不一致时,您可以手动同步字典。如果您在DMS进行数据库结构变更,DMS会自动同步字典,否则需要手动同步字典。
背景信息
字典信息用于实现数据库、表、字段、可编程对象的权限分级管控。DMS采集的字典信息包含如下内容:
-
数据库名称和字符集信息。
说明管控模式为安全协同模式的实例,在采集元数据时会默认屏蔽系统库。详细信息,请参见DMS默认屏蔽的实例系统库。
-
表的名称、占用的存储空间、记录行数、字符集、字段、索引和描述信息。
-
字段类型、精度和描述信息。
字典更新规则:
-
如果结构变更通过DMS执行,DMS会自动同步字典信息。
-
如果结构变更未通过DMS执行,需要手动执行同步字典的操作。
关于字典的更多信息,请参见元数据。
前提条件
系统角色为DBA或管理员。查看用户角色,请参见查看我的系统角色。
操作步骤
方法一
登录数据管理DMS 5.0。
在顶部菜单栏中,选择。
说明若您使用的是极简模式的控制台,请单击控制台左上角的
图标,选择。-
单击实例列表页签。
-
在目标实例的操作列,单击。
-
在同步字典对话框中,单击确认。
方法二
登录数据管理DMS 5.0。
-
在首页左侧实例列表中,右键单击目标实例,选择刷新 / 同步字典。
-
在同步字典对话框中,单击确认。
常见问题
Q:DMS 同步元数据较慢,手动刷新字典已等待较长时间,仍无法看到新创建的库或表,如何处理?
A:出现该问题可能由以下两个主要原因导致:
1. DMS 账号缺少新库的访问权限,在 RDS SQL Server 上新建的数据库,默认不会自动授权给 DMS 所使用的账号。即使已刷新字典,若账号无权访问该库,DMS 仍将无法显示。
-
登录阿里云控制台,在左侧导航栏选择实例列表。
-
在顶部菜单栏选择目标地域,进入实例列表页面。
-
找到目标实例,点击实例ID进入基本信息页。
-
在左侧导航栏中选择账号管理。
-
找到 DMS 使用的数据库账号,在操作列中点击修改权限或重置账号权限,确保该账号授予了新库的访问权限。
2. 库表数量多,元数据同步耗时较长。DMS 的元数据同步时间与实例内数据库和表的数量成正比。若实例中包含大量库表,同步任务可能需要数分钟甚至更长时间才能完成。
Q:为什么在 DMS 中看不到新建的库、表、函数,或已删除的库仍显示?
A:这是由于 DMS 的元数据(库/表/函数等结构信息)非实时同步。若结构变更未通过 DMS 执行(例如直接在 RDS 控制台、Mongo Shell 或其他客户端操作),DMS 不会自动感知,需要手动刷新字典。
解决方法:在首页左侧实例列表中,右键单击目标实例,选择刷新 / 同步字典,通常立即生效,无需等待特定时间。
特殊场景说明:
-
MongoDB 集合不显示:建议先通过 Mongo Shell 执行
show collections,确认集合确实存在后,再执行刷新 / 同步字典。 -
SDK ListDatabases 返回已删除库:已删除库的元数据状态被标记为 NOT_EXIST 但尚未清理,导致 ListDatabases 仍返回该库。执行刷新 / 同步字典后,元数据将完成清理,不再返回已删除的库。
-
SQL Server 函数不可见:SQL Server 函数等可编程对象的自动同步周期通常为一天一次,存在一定延迟。如需立即更新,请手动执行刷新 / 同步字典。
Q:DMS 中 MySQL 表未显示大数据量标志提示怎么办?
A:大数据量标志是 DMS 界面的辅助提醒,用于在操作数据量较大的表时给出提示。该标志不显示属于正常现象,原因如下:
-
大数据量标志由后台辅助任务计算生成,该任务通常在低峰期或凌晨执行,因此标志的展示可能存在一定延迟。
-
若实例元数据尚未更新,也可能导致该标志未能及时显示。
解决方法:右键单击目标实例,选择刷新 / 同步字典,触发底层元数据信息的更新。操作完成后,在后台辅助任务下次执行后(通常为低峰期),观察界面是否出现大数据量标志。
Q:RDS 数据库数据更新后在 DMS 中能否立即看到?
A:需要区分数据与元数据两种情况:
-
数据查询(如 INSERT/UPDATE/DELETE 操作):数据落盘后,只要账号具备相应的查询权限,通过 DMS 的 SQL 查询窗口可以立即查到最新数据,无需执行刷新/同步字典操作。
-
元数据显示(如新建库/表/函数等结构变更):若结构变更未通过 DMS 执行,DMS 不会自动感知,新建的对象不会立即显示。此时需手动执行刷新 / 同步字典,将元数据更新为最新状态后,方可在 DMS 中正常显示。
Q:安全托管模式下如何修改实例访问方式及切换数据库用户?
A:若需要切换数据库访问账号(例如使用具有 DDL 权限的特定账号执行结构变更),可通过修改实例的访问方式来实现。
适用场景:
-
当前访问方式为安全托管-自动,需切换为安全托管-手动或不托管以使用指定账号。
-
安全托管模式下因账号权限限制导致 DDL 操作失败,需临时切换至其他账号执行。
操作步骤:
-
在首页左侧实例列表中,右键单击目标实例,选择编辑实例。
-
在编辑实例页面,找到访问方式配置项,根据需要选择以下方式之一:
-
安全托管-手动:选择后需输入具备所需权限的真实数据库账号和密码,单击测试连接验证账号连通性,确认无误后保存。
-
不托管:选择后直接保存,后续每次登录数据库时,DMS 将要求手动输入账号和密码,可使用任意有权限的账号。
-
-
完成所需操作后,可按上述步骤将访问方式恢复为安全托管模式。
修改访问方式会影响 DMS 访问该实例所使用的账号,请确保切换后的账号具备执行所需操作的权限。
更多刷新/同步字典相关常见问题(包括权限排查、系统库屏蔽、Redis和Oracle专题等),请参见DMS刷新同步字典(同步元数据)常见问题。