Este tema proporciona respuestas a preguntas comunes sobre cómo actualizar o sincronizar el diccionario de datos (metadatos) en Data Management (DMS). Se abordan problemas generales, así como temas específicos de Redis y Oracle.
General
¿Por qué faltan bases de datos o tablas en DMS aunque existen en mi base de datos?
DMS no siempre lee la información de bases de datos y tablas directamente desde la base de datos en tiempo real.
Instancias con hosting seguro: DMS recopila y almacena los metadatos de la instancia. Se activa una recolección completa de metadatos cuando se registra una instancia por primera vez, y se ejecuta una recolección completa programada diariamente a las 18:00.
Instancias sin hosting seguro: DMS solo conserva la información a nivel de base de datos. Los demás metadatos se cargan en tiempo real después de iniciar sesión en la instancia.
Los cambios DDL ejecutados a través de DMS activan una recolección incremental de metadatos. El esquema actualizado suele estar disponible en DMS aproximadamente 5 segundos después de completar la operación, aunque el tiempo real puede variar según la carga de la base de datos y el estado de la tarea de recolección.
Los cambios realizados mediante la consola de la base de datos u otros clientes pueden requerir una actualización manual o la sincronización del diccionario de datos.
Para obtener más información, consulte Recolección, visualización y búsqueda de metadatos de bases de datos.
¿Cómo actualizo manualmente la información de bases de datos y tablas?
Utilice uno de los siguientes métodos:
Método 1: En la lista de instancias ubicada en el lado izquierdo de la página principal de DMS, haga clic derecho en la instancia objetivo y seleccione Refresh/Synchronize Data Dictionary. Confirme la operación y espere a que finalice la recolección.
Método 2: En la barra de navegación superior, elija . En la instance list, busque la instancia objetivo y elija .
Si los cambios se realizaron mediante otro cliente, también intente iniciar sesión nuevamente en la instancia para volver a cargar los metadatos.
Para obtener más información, consulte Synchronize the data dictionary of a database instance y Cuándo y por qué DMS vuelve a cargar los metadatos de la base de datos.
¿Qué debo hacer si siguen faltando bases de datos después de sincronizar el diccionario de datos?
Se recomienda comprobar los siguientes elementos en orden:
1. Compruebe los permisos de la cuenta de base de datos utilizada por DMS
DMS solo recopila metadatos de las bases de datos a las que tiene acceso la cuenta configurada. Este problema puede presentarse en ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, ApsaraDB RDS for SQL Server, PolarDB for MySQL, PolarDB for PostgreSQL, así como en bases de datos de terceros o autogestionadas.
Verifique lo siguiente:
La cuenta de base de datos y la contraseña configuradas en DMS son válidas.
La cuenta tiene permisos de acceso a la base de datos objetivo.
Después de crear una nueva base de datos, se han otorgado permisos a la cuenta utilizada por DMS sobre dicha base de datos.
Para mostrar todas las bases de datos bajo una instancia, la cuenta debe tener permisos de acceso a todas las bases de datos objetivo.
En bases de datos basadas en PostgreSQL, compruebe también los permisos sobre la base de datos objetivo, el esquema y los objetos relacionados.
En ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, ApsaraDB RDS for SQL Server, PolarDB for MySQL y PolarDB for PostgreSQL, es posible que una base de datos recién creada no se autorice automáticamente para la cuenta utilizada por DMS. En este caso, la base de datos no se muestra en DMS incluso después de sincronizar el diccionario de datos. Primero debe otorgar permisos de acceso a la nueva base de datos para la cuenta utilizada por DMS y luego sincronizar nuevamente el diccionario de datos.
Los métodos de autorización varían según el motor de base de datos. Para obtener más información, consulte los siguientes temas:
ApsaraDB RDS for MySQL: Modificar permisos de una cuenta estándar
ApsaraDB RDS for PostgreSQL: Crear una cuenta y otorgar permisos de base de datos
PolarDB for MySQL: Crear y gestionar cuentas y permisos de base de datos
PolarDB for PostgreSQL: Crear una cuenta y otorgar permisos de base de datos
Registrar una base de datos de terceros o autogestionada - Permisos de cuenta de base de datos
2. Compruebe el estado de conexión de la instancia
Verifique lo siguiente:
La instancia de base de datos se ejecuta correctamente.
La dirección de la base de datos, el puerto, la cuenta y la contraseña son correctos.
Las direcciones IP de DMS se han agregado a la lista blanca de la base de datos.
Los security groups, firewalls y enlaces de red permiten el acceso desde DMS.
Si SSL/TLS está habilitado en la base de datos, el método de conexión SSL correspondiente también está configurado en DMS.
Para obtener más información, consulte Solucionar problemas de inicio de sesión y conexión a la base de datos y Agregar direcciones IP de DMS a la lista blanca de la instancia.
3. Compruebe si las reglas de filtro de bases de datos del sistema están bloqueando la base de datos
El modo de control de colaboración de seguridad oculta ciertas bases de datos del sistema de forma predeterminada. Las reglas de seguridad también definen filtros personalizados para bases de datos o esquemas. Cuando se filtra una base de datos, DMS no recopila sus metadatos, por lo que no es posible buscarla ni visualizarla.
Para obtener más información, consulte Bases de datos del sistema bloqueadas por DMS de forma predeterminada y Personalizar filtros de bases de datos del sistema.
4. Compruebe los permisos de acceso a metadatos del usuario actual de DMS
Incluso si la cuenta de base de datos tiene permisos de acceso, es posible que el usuario actual de DMS no cuente con los permisos obligatorios. Cuando el control de acceso a metadatos está habilitado, los usuarios sin permisos de instancia o base de datos no ven los recursos correspondientes.
Si los administradores ven la base de datos pero los usuarios regulares no, compruebe primero los siguientes elementos:
Si está habilitado el control de acceso a metadatos a nivel de usuario, base de datos o instancia.
Si el usuario tiene permisos de consulta, exportación o cambio en la base de datos objetivo.
Si un DBA o administrador ha asignado los permisos obligatorios al usuario.
Para obtener más información, consulte Configure metadata access control.
¿Por qué tarda mucho en completarse la sincronización del diccionario de datos?
El tiempo necesario para la sincronización de metadatos depende del número de bases de datos y tablas en la instancia. Si la instancia contiene una gran cantidad de tablas, la tarea de sincronización puede tardar varios minutos o más.
El sistema actual impone un tiempo de espera máximo de 120 segundos para las sentencias SQL de recolección de metadatos. Si una sola base de datos contiene una cantidad extremadamente grande de tablas (por ejemplo, del orden de 100,000 o más), la sentencia SQL de recolección puede agotar el tiempo de espera, lo que impide completar la sincronización de metadatos. Como resultado, DMS no muestra la lista de tablas para esa base de datos. Esta es una limitación conocida del sistema. La cifra de 100,000 tablas es una referencia aproximada y no un umbral estricto. La ocurrencia de un tiempo de espera también depende del rendimiento de la base de datos, la carga y las condiciones de la red.
Recomendaciones:
Evite activar la sincronización repetidamente en un periodo corto.
Espere a que finalice la tarea de sincronización actual y luego compruebe los resultados.
Compruebe que la conexión a la base de datos sea estable.
Compruebe que los permisos de la cuenta de base de datos no hayan cambiado.
Para instancias sin hosting seguro, intente iniciar sesión nuevamente en la instancia.
Para obtener más información, consulte Synchronize the data dictionary of a database instance.
¿Por qué solo algunos usuarios no ven una base de datos?
Generalmente se trata de un problema de permisos de usuario en DMS y no de un problema de recolección de metadatos.
Compruebe lo siguiente:
Si está habilitado el control de acceso a metadatos a nivel de usuario, base de datos o instancia.
Si el usuario tiene permisos de consulta, exportación o cambio en la base de datos objetivo.
Si un DBA o administrador ha asignado permisos de instancia o base de datos al usuario.
Si los administradores ven la base de datos pero los usuarios regulares no, priorice la revisión de esta área.
¿Por qué no son visibles las bases de datos del sistema o ciertos esquemas?
El modo de control de colaboración de seguridad oculta ciertas bases de datos del sistema de forma predeterminada. Por ejemplo:
MySQL:
mysql,information_schema,performance_schema, entre otras.SQL Server:
master,model,msdb,tempdb, entre otras.PostgreSQL: Filtra principalmente esquemas del sistema como
information_schemaypg_catalog.
Además, para instancias en el modo de control de colaboración de seguridad, defina filtros personalizados navegando a . Filtre bases de datos del sistema o bases de datos empresariales sensibles por nombre exacto o expresión regular. Para bases de datos basadas en PostgreSQL, el filtro se aplica a los esquemas. Después de modificar las reglas de filtro, sincronice nuevamente el diccionario de datos o espere a la sincronización automática diaria de metadatos a las 18:00 para que los cambios surtan efecto.
Para obtener más información, consulte Bases de datos del sistema bloqueadas por DMS de forma predeterminada para cada tipo de base de datos y Personalizar filtros de bases de datos del sistema en DMS.
¿Por qué no son visibles los esquemas después de que la base de datos se bloquea o entra en un estado anómalo?
Cuando DMS actualiza o sincroniza el diccionario de datos, se conecta a la base de datos objetivo y ejecuta sentencias SQL de recolección de metadatos. Si la instancia de ApsaraDB RDS o la base de datos objetivo está bloqueada o no disponible, DMS no recupera el esquema ni otros metadatos. Sincronizar repetidamente el diccionario de datos generalmente no resuelve este problema.
Se recomiendan los siguientes pasos:
Compruebe el estado de ejecución de la instancia y de la base de datos objetivo en la consola de base de datos en la nube correspondiente.
Si la base de datos está bloqueada, siga las instrucciones en la consola de base de datos en la nube para desbloquearla y restaurar el acceso normal.
En DMS, pruebe la conexión para confirmar que la base de datos es accesible.
Ejecute Refresh/Synchronize Data Dictionary nuevamente y espere a que finalice la recolección antes de actualizar la lista de objetos.
Para obtener más información, consulte Solucionar problemas de inicio de sesión y conexión a la base de datos.
Redis
¿Por qué solo veo DB0 después de registrar un clúster de Redis a través de Internet?
Según la documentación de DMS, después de registrar un clúster de Redis de terceros o autogestionado en DMS, solo se muestra DB0.
Esta es una limitación conocida del producto. Actualizar o sincronizar repetidamente el diccionario de datos no resuelve este problema.
Recomendaciones:
Para instancias de Alibaba Cloud Tair o Redis, registre la instancia utilizando el origen de base de datos de Alibaba Cloud.
Para clústeres de Redis de terceros o autogestionados, confirme previamente las capacidades de visualización de DMS.
Para obtener más información, consulte Registrar una base de datos de terceros o autogestionada.
¿Cómo identifica DMS el modo de clúster de Redis?
La capacidad para identificar arquitecturas de clúster de Redis depende del origen de la instancia y del método de registro.
Para instancias de clúster de Alibaba Cloud Tair o Redis, se recomienda registrar la instancia utilizando el origen de base de datos de Alibaba Cloud.
Los clústeres de Redis registrados a través de Internet o desde orígenes de terceros o autogestionados tienen capacidades limitadas.
Como se indica en la documentación, los clústeres de Redis de terceros y autogestionados actualmente solo admiten DB0.
Oracle
¿Por qué siguen faltando esquemas, tablas o columnas después de sincronizar el diccionario de datos para una instancia de Oracle?
Cuando DMS recopila metadatos de Oracle, consulta tablas del sistema o vistas del sistema de Oracle utilizando la cuenta de base de datos configurada durante el registro de la instancia. Si la cuenta carece de permisos de consulta sobre los objetos relevantes, los metadatos como esquemas, tablas, columnas, índices, restricciones y comentarios pueden recopilarse de manera incompleta, y permanecen invisibles en DMS incluso después de sincronizar el diccionario de datos.
Asegúrese de que la cuenta de base de datos utilizada por DMS tenga como mínimo permisos de consulta en las siguientes tablas o vistas del sistema:
V$INSTANCESYS.DBA_USERSSYS.DBA_TABLESSYS.DBA_SEGMENTSSYS.DBA_TAB_COMMENTSSYS.DBA_TAB_COLUMNSSYS.DBA_COL_COMMENTSSYS.DBA_SYNONYMSSYS.DBA_OBJECTSSYS.DBA_INDEXESSYS.DBA_CONSTRAINTSSYS.DBA_IND_COLUMNS
V$INSTANCE suele ser un sinónimo de una vista de rendimiento dinámico. Al otorgar permisos, es posible que necesite que el DBA de Oracle conceda permisos de consulta sobre el objeto subyacente SYS.V_$INSTANCE. Los requisitos específicos dependen de la versión de Oracle y de la configuración de permisos.
Después de otorgar los permisos obligatorios, ejecute Refresh/Synchronize Data Dictionary nuevamente.