次の方法で共有


Azure Database for PostgreSQL フレキシブル サーバーからのファブリック ミラー化されたデータベースのトラブルシューティング

この記事では、Azure Database for PostgreSQL フレキシブル サーバーをミラーリングするためのトラブルシューティング手順について説明します。

ミラーリングのテーブル選択中のエラー/警告メッセージのトラブルシューティング

ミラー化された新しいデータベースを作成すると、[ データの選択 ] ページで、ソース データベース内の特定のテーブルに関する視覚的なフィードバックを受け取ることがあります。 次の表に、表示されるメッセージや問題の解決方法に関する関連する説明など、潜在的な問題の一覧を示します。

状態コード 状態の種類 メッセージ Description
SCHEMA_DOES_NOT_EXIST エラー スキーマ {} が存在しません 指定されたスキーマが存在しません。 Fabric が関連するテーブル情報をプルしている間に削除された可能性があります。 再試行してください。
TABLE_DOES_NOT_EXIST エラー スキーマ {}では、テーブル {} は存在しません。 指定されたテーブルが存在しません。 Fabric が関連するテーブル情報をプルしている間に削除された可能性があります。 再試行してください。
FORBIDDEN_CHARS_IN_COLUMN_NAME エラー テーブル {}.{} には、列の名前に禁止文字が含まれています {} 指定された列の名前にサポートされていない文字が含まれます。 1
UNSUPPORTED_DATA_TYPE エラー テーブル {}.{} の列のデータ型がサポートされていません {} テーブルの列の 1 つ (または複数) には、現在サポートされていないデータ型があります。 3
FORBIDDEN_CHARS_IN_TABLE_NAME エラー テーブル {}.{} に名前に禁止文字が含まれています テーブル名にサポートされていない文字があります。 1
NOT_REGULAR_TABLE エラー Table {}.{} が通常のテーブルではありません テーブルの種類は、ミラーリングではサポートされていません。 2
HAS_PRIMARY_KEY [OK] Table {}.{} には主キーがあります テーブルは通常のテーブルであり、ミラーリングに使用される有効な主キーを持ちます。
HAS_UNIQUE_INDEX [OK] Table {}.{} には、適切な一意のインデックスがあります テーブルには主キーはありませんが、ミラーリングに使用する一意のインデックスがあります。
NO_INDEX_FULL_IDENTITY 警告 Table {}.{} には、適切な一意のインデックスがありません。 完全な 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 では、まったく同じ瞬間に対応する 2 つの "タイム とタイム ゾーン" の値が異なると見なされます。 たとえば、 06:24:00.59+0505:24:00.59+04 は同じエポック時間に対応しますが、Postgres ではそれらを異なる方法で処理します。

Microsoft 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>);
ファブリック試用版の容量が期限切れになりました ミラーリングが自動的に停止する 「Fabric 試用版の容量の有効期限が切れる」を参照してください。
ファブリックの容量を超えました ミラーリングの一時停止 オーバーロード状態が終了するか、容量を更新するまで待ちます。 オーバーロードの状況から復旧するために実行できるアクションの詳細を確認します。 容量が復旧されると、ミラーリングは続行されます。
その他のリソース エラー ミラーリングが無効になっている コンピューティング リソースが影響を受けないようにし、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 です。 t (true) 以外の値は、潜在的な問題を示します。

  4. トラブルシューティングが必要な場合は、サポートにお問い合わせください

マネージド ID

Azure Database for PostgreSQL フレキシブル サーバーのシステム割り当てマネージド ID (SAMI) を有効にする必要があり、プライマリ ID である必要があります。 詳細については、「 PostgreSQL フレキシブル サーバーのシステム割り当てマネージド ID」を参照してください。

有効化後、SAMI 設定の状態が後で無効になった後で再度有効になった場合、Azure Database for PostgreSQL フレキシブル サーバーから Fabric OneLake へのミラーリングは失敗します。

次のクエリで SAMI が有効になっていることを確認します。 show azure.service_principal_id;

SAMI のアクセス許可

ファブリック ミラー化されたデータベース項目に対する Azure Database for PostgreSQL フレキシブル サーバーのシステム割り当てマネージド ID (SAMI) 共同作成者アクセス許可を削除しないでください。

SAMI アクセス許可を誤って削除した場合、Azure Database for PostgreSQL フレキシブル サーバーのミラーリングは想定どおりに機能しません。 ソース データベースから新しいデータをミラー化することはできません。

Azure Database for PostgreSQL フレキシブル サーバー SAMI のアクセス許可を削除した場合、またはアクセス許可が正しく設定されていない場合は、次の手順を使用します。

  1. ミラー化されたデータベース項目の ... 省略記号オプションを選択して、フレキシブル サーバー SAMI をユーザーとして追加します。
  2. [ アクセス許可の管理] オプションを選択します。
  3. Azure Database for PostgreSQL フレキシブル サーバーの名前を入力します。 読み取りと書き込みのアクセス許可を指定します。