Compartir a través de


Solución de problemas de bases de datos reflejadas de Fabric desde el servidor flexible de Azure Database for PostgreSQL

En este artículo se describen los pasos de solución de problemas para la creación de reflejo del 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 Elegir datos puede recibir 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 Message Description
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 nombre. 1
UNSUPPORTED_DATA_TYPE ERROR 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 Tabla {}.{} contiene caracteres prohibidos en el nombre El nombre de la tabla tiene caracteres no admitidos. 1
NOT_REGULAR_TABLE ERROR Tabla {}.{} no es una tabla normal No se admite el tipo de tabla para la creación de reflejo. 2
HAS_PRIMARY_KEY OK 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 OK 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 REPLICA IDENTITY FULL es necesario 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 Este tipo de tabla no se admite 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, vea Limitaciones. Solo se admiten columnas con los siguientes tipos:

  • 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 tejido en pausa o eliminada Se detiene la creación de reflejo 1. Reanudar o asignar 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 La base de datos reflejada para el elemento reflejado en el portal de Fabric.
Capacidad de tejido 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 La 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 postgreSQL: select azure_cdc.list_tracked_publications();, 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 Expiración de la capacidad de prueba de Fabric.
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 realizar 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 en el 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 solucionar problemas

Si tiene problemas de creación de reflejo, realice las siguientes comprobaciones de nivel de servidor mediante vistas del sistema y funciones 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 azure_cdc.tracked_publications vista 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 comando siguiente para revisar la configuración actual de la base de datos PostgreSQL reflejada. 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 t de (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 más información, consulte Identidad administrada asignada por el sistema para el servidor flexible de PostgreSQL.

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

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

Permisos 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, el servidor flexible de Creación de reflejo de Azure Database for PostgreSQL no funciona según lo previsto. No se puede reflejar ningún dato nuevo desde la base de datos de origen.

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

  1. Agregue el SAMI de servidor flexible como usuario seleccionando la opción de ... puntos suspensivos en el elemento de base de datos reflejado.
  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 .