Compartir a través de


Solucionar problemas de las bases de datos reflejadas de Microsoft Fabric desde el servidor flexible de Azure Database for PostgreSQL

En este artículo se describen los pasos para la creación de reflejo de servidor flexible de Azure Database for PostgreSQL.

Solución de problemas de mensajes de error o advertencia durante la selección de tablas para la creación de reflejo

Al crear una nueva base de datos reflejada, en la página de elegir datos, es posible que reciba algunos comentarios visuales sobre tablas específicas de la base de datos de origen. En la tabla siguiente se proporciona una lista de posibles problemas, incluido el mensaje mostrado y la descripción relacionada sobre cómo resolver el problema.

Código de estado Tipo de estado Mensaje Descripción
SCHEMA_DOES_NOT_EXIST ERROR El esquema {} no existe El esquema dado no existe. Podría haberse quitado mientras Fabric extraía información de tabla pertinente. Vuelva a intentarlo.
TABLE_DOES_NOT_EXIST ERROR En el esquema {}, la tabla {} no existe. La tabla dada no existe. Podría haberse quitado mientras Fabric extraía información de tabla pertinente. Vuelva a intentarlo.
FORBIDDEN_CHARS_IN_COLUMN_NAME ERROR La tabla {}.{} contiene caracteres prohibidos en el nombre de las columnas {} La columna dada tiene caracteres no admitidos en el nombre. 1
UNSUPPORTED_DATA_TYPE ERROR La tabla {}.{} tiene un tipo de datos no admitido en la columna {} Una (o varias) de las columnas de la tabla tiene actualmente tipos de datos no admitidos. 3
FORBIDDEN_CHARS_IN_TABLE_NAME ERROR La tabla {}.{} contiene caracteres prohibidos en el nombre El nombre de tabla tiene caracteres no admitidos. 1
NOT_REGULAR_TABLE ERROR La tabla {}.{} no es una tabla normal No se admite el tipo de tabla para la creación de reflejo. 2
HAS_PRIMARY_KEY De acuerdo La tabla {}.{} tiene una clave principal La tabla es una tabla normal y tiene una clave principal válida que se usa para la creación de reflejo.
HAS_UNIQUE_INDEX De acuerdo La tabla {}.{} tiene un índice único adecuado La tabla no tiene una clave principal, pero tiene un índice único que se usará para la creación de reflejo.
NO_INDEX_FULL_IDENTITY Advertencia  La tabla {}.{} no tiene un índice único adecuado. Uso de la identidad completa La tabla no tiene una clave principal o un índice único, por lo que se requiere REPLICA IDENTITY FULL para admitir la creación de reflejo, lo que puede causar problemas de rendimiento.

1 No se admiten identificadores de objeto con un carácter de espacio (' ').

2 No se admite este tipo de tabla para la creación de reflejo. Actualmente, no se admiten vistas, vistas materializadas, tablas externas ni tablas con particiones.

3 Para obtener una lista de tipos de datos no admitidos, consulte Limitaciones. Solo se admiten los siguientes tipos de columnas:

  • bigint
  • bigserial
  • boolean
  • bytea
  • character
  • character varying
  • date
  • double precision
  • integer
  • numeric
  • real
  • serial
  • oid
  • money
  • smallint
  • smallserial
  • text
  • time without time zone
  • time with time zone (* no como clave principal)
  • timestamp without time zone
  • timestamp with time zone
  • uuid

En Postgres, dos valores de "hora con zona horaria" que corresponden exactamente al mismo momento, pero en zonas horarias diferentes, se consideran diferentes. Por ejemplo: 06:24:00.59+05 y 05:24:00.59+04 corresponden a la misma época, pero Postgres las trata de forma diferente.

Cambios en la capacidad o área de trabajo de Fabric

Causa Resultado Resolución recomendada
Capacidad de Fabric en pausa o eliminada Se detiene la creación de reflejo 1. Reanude o asigne capacidad desde Azure Portal
2. Vaya al elemento de base de datos reflejado de Fabric. En la barra de herramientas, seleccione Detener replicación.
3. Inicie la replicación seleccionando Base de datos reflejada para el elemento reflejado en el portal de Fabric.
Capacidad de Fabric reanudada La creación de reflejo no se reanudará 1. Vaya al elemento de base de datos reflejado de Fabric. En la barra de herramientas, seleccione Detener replicación.
2. Inicie la replicación seleccionando Base de datos reflejada para el elemento reflejado en el portal de Fabric.
Área de trabajo eliminada La creación de reflejo se detiene automáticamente Si la creación de reflejo sigue activa en el servidor flexible de Azure Database for PostgreSQL, conéctese mediante un administrador del servidor y ejecute los siguientes comandos en el servidor de PostgreSQL: select azure_cdc.list_tracked_publications();, luego use el nombre de publicación devuelto y ejecute select azure_cdc.stop_publication(<publication_name>);
Capacidad de prueba de Fabric expirada La creación de reflejo se detiene automáticamente Consulte Capacidad de prueba de Fabric expirada.
Capacidad de tejido superada La creación de reflejo se pausa Espere hasta que el estado de sobrecarga supere o actualice la capacidad. Obtenga más información en Acciones que puede tomar para recuperarse de situaciones de sobrecarga. La creación de reflejo continúa una vez recuperada la capacidad.
Cualquier otro error de recurso La duplicación está deshabilitada Para asegurarse de que los recursos de proceso no se ven afectados y para minimizar el impacto del servidor flexible de Azure Database for PostgreSQL, la creación de reflejo se deshabilita en los errores de recursos persistentes.
La opción "Los usuarios pueden acceder a los datos almacenados en OneLake con aplicaciones externas a Fabric" deshabilitadas "Replicador: las tablas no pueden alcanzar el estado de replicación" Habilite la opción Inquilino Los usuarios pueden acceder a los datos almacenados en OneLake con aplicaciones externas a Fabric.

Consultas SQL para la solución de problemas

Si tiene problemas con la creación de reflejo, realice las siguientes comprobaciones de nivel de servidor mediante las funciones y vistas del sistema para validar la configuración.

  1. Ejecute la consulta siguiente para comprobar si los cambios fluyen correctamente:

    select * from azure_cdc.tracked_publications;
    

    Compruebe si la publicación está activa y se ha generado la instantánea. También puede comprobar si se han generado lotes de cambios posteriores consultando:

    select * from azure_cdc.tracked_batches;
    
  2. Si la vista azure_cdc.tracked_publications no muestra ningún progreso en el procesamiento de cambios incrementales, ejecute la siguiente consulta SQL para comprobar si hay algún problema notificado:

    SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
    
  3. Si no se notifica ningún problema, ejecute el siguiente comando para revisar la configuración actual de la base de datos reflejada de PostgreSQL. Confirme que se ha habilitado correctamente.

    SELECT * FROM pg_replication_slots;
    

    Las columnas de clave que se van a buscar aquí son slot_name y active. Cualquier valor además de t (true) indica un posible problema.

  4. Póngase en contacto con soporte técnico si se requiere una solución de problemas.

Identidad administrada

La identidad administrada asignada por el sistema (SAMI) del servidor flexible de Azure Database for PostgreSQL debe estar habilitada y debe ser la identidad principal. Para obtener más información, consulte Identidad administrada asignada por el sistema en el servidor flexible de PostgreSQL.

Después de la habilitación, si el estado de la configuración de SAMI se deshabilita y se vuelve a habilitar más tarde, se produce un error en la creación de reflejo del servidor flexible de Azure Database for PostgreSQL en Fabric OneLake.

Compruebe que SAMI está habilitado con la siguiente consulta: show azure.service_principal_id;

Permisos de SAMI

No quite los permisos de colaborador de la identidad administrada asignada por el sistema (SAMI) del servidor flexible de Azure Database for PostgreSQL en el elemento de base de datos reflejada de Fabric.

Si quita accidentalmente los permisos SAMI, la creación de reflejo del servidor flexible de Azure Database for PostgreSQL no funciona según lo previsto. No se pueden reflejar datos nuevos desde la base de datos de origen.

Si quita los permisos de SAMI del servidor flexible de Azure Database for PostgreSQL o los permisos no están configurados correctamente, siga estos pasos.

  1. Para agregar el SAMI de servidor flexible como usuario, seleccione la opción de puntos suspensivos ... en el elemento de la base de datos reflejada.
  2. Seleccione la opción Administrar permisos.
  3. Escriba el nombre del servidor flexible de Azure Database for PostgreSQL. Proporcione permisos de lectura y escritura.