次の方法で共有


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

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

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

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

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

Microsoft Fabric の容量またはワークスペースの変更

原因 結果 推奨される解決方法
Microsoft Fabric の容量の一時停止/削除 ミラーリングが停止します 1. Azure portal から容量を再開または割り当てます。
2. Microsoft Fabric ミラー化データベース項目に移動します。 ツール バーから [停止レプリケーション] を選択します。
3. Microsoft Fabric ポータルでミラー化されたアイテムの [ミラー データベース] を選択して、レプリケーションを開始します。
Microsoft Fabric の容量が再開されました ミラーリングは再開されません 1. Microsoft Fabric ミラー化データベース項目に移動します。 ツール バーから [停止レプリケーション] を選択します。
2. Microsoft Fabric ポータルでミラー化されたアイテムの [ミラー データベース] を選択して、レプリケーションを開始します。
ワークスペースが削除されました ミラーリングが自動的に停止します Azure Database for PostgreSQL フレキシブル サーバーでミラーリングがまだアクティブな場合は、サーバー管理者を使用して接続し、PostgreSQL サーバーで select azure_cdc.list_tracked_publications(); コマンドを実行します。次に、返されたパブリケーション名を使用して select azure_cdc.stop_publication(<publication_name>); を実行します
ファブリック試用版の容量が期限切れになった ミラーリングが自動的に停止します 「Fabric 試用版容量の期限切れ」を参照してください。
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 へのミラーリングは失敗します。

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

SAMI のアクセス許可

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

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

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

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