다음을 통해 공유


Azure Database for PostgreSQL 유연한 서버에서 패브릭 미러된 데이터베이스 문제 해결

이 문서에서는 Azure Database for PostgreSQL 유연한 서버를 미러링하기 위한 문제 해결 단계를 설명합니다.

미러링을 위해 테이블을 선택하는 동안 오류/경고 메시지 문제 해결

새 미러된 데이터베이스를 만들 때 데이터 선택 페이지에서 원본 데이터베이스의 특정 테이블에 대한 시각적 피드백을 받을 수 있습니다. 다음 표에서는 표시된 메시지와 문제 해결 방법에 대한 관련 설명을 포함하여 잠재적인 문제 목록을 제공합니다.

상태 코드 상태 유형 Message Description
SCHEMA_DOES_NOT_EXIST ERROR 스키마 {} 가 없습니다. 지정된 스키마가 없습니다. 패브릭이 관련 테이블 정보를 끌어당기는 동안 제거되었을 수 있습니다. 다시 시도하십시오.
TABLE_DOES_NOT_EXIST ERROR 스키마 {}에는 테이블 {} 이 없습니다. 지정된 테이블이 없습니다. 패브릭이 관련 테이블 정보를 끌어당기는 동안 제거되었을 수 있습니다. 다시 시도하십시오.
FORBIDDEN_CHARS_IN_COLUMN_NAME ERROR 테이블 {}.{} 열 이름에 사용할 수 없는 문자가 포함되어 있습니다. {} 지정된 열의 이름에 지원되지 않는 문자가 있습니다. 1
UNSUPPORTED_DATA_TYPE ERROR 테이블에 {}지원되지 않는 데이터 형식이 열에 있습니다.{}{} 테이블 열 중 하나 이상에는 현재 지원되지 않는 데이터 형식이 있습니다. 3
FORBIDDEN_CHARS_IN_TABLE_NAME ERROR 테이블 {}.{} 이름에 사용할 수 없는 문자가 포함되어 있습니다. 테이블 이름에는 지원되지 않는 문자가 있습니다. 1
NOT_REGULAR_TABLE ERROR 테이블{}이 일반 테이블이 아닙니다.{} 테이블 형식은 미러링에 지원되지 않습니다. 2
HAS_PRIMARY_KEY 그래 테이블에 {}기본 키가 있습니다.{} 테이블은 일반 테이블이며 미러링에 사용되는 유효한 기본 키가 있습니다.
HAS_UNIQUE_INDEX 그래 테이블에 {}적합한 고유 인덱스가 있습니다.{} 테이블에는 기본 키가 없지만 미러링에 사용할 고유 인덱스가 있습니다.
NO_INDEX_FULL_IDENTITY 경고 {} 테이블에 {}적절한 고유 인덱스가 없습니다. 전체 ID 사용 테이블에는 기본 키 또는 고유 인덱스가 없으므로 미러링을 지원해야 하므로 REPLICA IDENTITY FULL 성능 문제가 발생할 수 있습니다.

1 공백(' ') 문자가 있는 개체 식별자는 지원되지 않습니다.

2 이 테이블 형식은 미러링에 지원되지 않습니다. 현재 뷰, 구체화된 뷰, 외장 테이블 및 분할된 테이블은 지원되지 않습니다.

3 지원되지 않는 데이터 형식 목록은 제한 사항을 참조하세요. 다음 형식의 열만 지원됩니다.

  • 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 (* 기본 키 아님)
  • timestamp without time zone
  • timestamp with time zone
  • uuid

Postgres에서 정확히 같은 순간에 해당하지만 다른 표준 시간대에 해당하는 두 개의 '표준 시간대가 있는 시간' 값은 다른 것으로 간주됩니다. 예를 들어 동일한 06:24:00.59+0505:24:00.59+04 Epoch 시간에 해당하지만 Postgres는 이를 다르게 처리합니다.

Fabric 용량 또는 작업 영역 변경

원인 결과 권장 솔루션
패브릭 용량 일시 중지/삭제됨 미러링 중지 1. Azure Portal에서 용량 다시 시작 또는 할당
2. 패브릭 미러된 데이터베이스 항목으로 이동합니다. 도구 모음에서 복제 중지를 선택합니다.
3. 패브릭 포털에서 미러된 항목에 대한 미러 데이터베이스 를 선택하여 복제를 시작합니다.
패브릭 용량 다시 시작 미러링이 다시 시작되지 않습니다. 1. 패브릭 미러된 데이터베이스 항목으로 이동합니다. 도구 모음에서 복제 중지를 선택합니다.
2. 패브릭 포털에서 미러된 항목에 대한 미러 데이터베이스 를 선택하여 복제를 시작합니다.
작업 영역이 삭제됨 미러링이 자동으로 중지됩니다. Azure Database for PostgreSQL 유연한 서버에서 미러링이 여전히 활성 상태인 경우 서버 관리자를 사용하여 연결하고 PostgreSQL 서버 select azure_cdc.list_tracked_publications();에서 다음 명령을 실행합니다. 그런 다음 반환된 게시 이름을 사용하고 실행합니다. select azure_cdc.stop_publication(<publication_name>);
패브릭 평가판 용량이 만료됨 미러링이 자동으로 중지됩니다. 패브릭 평가판 용량 만료를 참조하세요.
패브릭 용량을 초과했습니다. 미러링 일시 중지 오버로드 상태가 끝날 때까지 기다리거나 용량을 업데이트합니다. 오버로드 상황을 복구하기 위해 수행할 수 있는 작업에서 자세히 알아보세요. 용량이 복구되면 미러링이 계속됩니다.
기타 모든 리소스 오류 미러링을 사용할 수 없습니다. 컴퓨팅 리소스가 영향을 받지 않도록 하고 Azure Database for PostgreSQL 유연한 서버에 미치는 영향을 최소화하려면 미러링이 영구 리소스 오류를 사용하지 않도록 설정합니다.
"사용자가 Fabric 외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다." 설정이 비활성화됨 "복제자 - 테이블이 복제 상태에 도달할 수 없음" 테넌트 설정을 사용하도록 사용자가 Fabric외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다.

문제 해결을 위한 SQL 쿼리

미러링 문제가 발생하는 경우 시스템 뷰 및 함수를 사용하여 다음 서버 수준 검사를 수행하여 구성의 유효성을 검사합니다.

  1. 다음 쿼리를 실행하여 변경 내용이 제대로 작동하는지 확인합니다.

    select * from azure_cdc.tracked_publications;
    

    게시가 활성 상태이고 스냅샷이 생성되었는지 확인합니다. 쿼리를 통해 후속 변경 일괄 처리가 생성되었는지 확인할 수도 있습니다.

    select * from azure_cdc.tracked_batches;
    
  2. 보기에 azure_cdc.tracked_publications 증분 변경 처리 진행률이 표시되지 않으면 다음 SQL 쿼리를 실행하여 보고된 문제가 있는지 확인합니다.

    SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
    
  3. 보고된 문제가 없는 경우 다음 명령을 실행하여 미러된 PostgreSQL 데이터베이스의 현재 구성을 검토합니다. 제대로 사용하도록 설정되었는지 확인합니다.

    SELECT * FROM pg_replication_slots;
    

    여기에서 찾을 키 열은 slot_nameactive입니다. (true) 외에 t 모든 값은 잠재적인 문제를 나타냅니다.

  4. 문제 해결이 필요한 경우 고객 지원에 문의하세요.

관리형 아이덴티티

Azure Database for PostgreSQL 유연한 서버의 SAMI(시스템 할당 관리 ID)를 사용하도록 설정해야 하며 기본 ID여야 합니다. 자세한 내용은 PostgreSQL 유연한 서버에 대한 시스템 할당 관리 ID를 참조하세요.

사용 후 SAMI 설정 상태를 나중에 사용하지 않도록 설정한 다음 다시 사용하도록 설정하면 Azure Database for PostgreSQL 유연한 서버에서 Fabric OneLake로의 미러링이 실패합니다.

다음 쿼리를 사용하여 SAMI가 사용하도록 설정되어 있는지 확인합니다. show azure.service_principal_id;

SAMI 권한

패브릭 미러된 데이터베이스 항목에 대한 Azure Database for PostgreSQL 유연한 서버 SAMI(시스템 할당 관리 ID) 기여자 권한을 제거하지 마세요.

실수로 SAMI 권한을 제거하는 경우 Azure Database for PostgreSQL 유연한 서버 미러링이 예상대로 작동하지 않습니다. 원본 데이터베이스에서 새 데이터를 미러링할 수 없습니다.

Azure Database for PostgreSQL 유연한 서버 SAMI 권한을 제거하거나 사용 권한이 올바르게 설정되지 않은 경우 다음 단계를 사용합니다.

  1. 미러된 데이터베이스 항목에서 줄임표 옵션을 선택하여 ... 유연한 서버 SAMI를 사용자로 추가합니다.
  2. 사용 권한 관리 옵션을 선택합니다.
  3. Azure Database for PostgreSQL 유연한 서버의 이름을 입력합니다. 읽기쓰기 권한을 제공합니다.