この記事では、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+05
と 05: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 クエリ
ミラーリングの問題が発生している場合は、システム ビューと関数を使用して次のサーバー レベルのチェックを実行して、構成を検証します。
次のクエリを実行して、変更が適切にフローするかどうかをチェックします。
select * from azure_cdc.tracked_publications;
パブリケーションがアクティブで、スナップショットが生成されているかどうかを確認します。 次のクエリを実行して、後続の変更バッチが生成されているかどうかを確認することもできます。
select * from azure_cdc.tracked_batches;
azure_cdc.tracked_publications
ビューに増分変更の処理に関する進行状況が表示されない場合は、次の SQL クエリを実行して、問題が報告されているかどうかを確認します。SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
問題が報告されていない場合は、次のコマンドを実行して、ミラーリングされた PostgreSQL データベースの現在の構成を確認します。 正しく有効になっていることを確認します。
SELECT * FROM pg_replication_slots;
ここで探すキー列は
slot_name
とactive
です。t
(true) 以外の値は、潜在的な問題を示します。
マネージド 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 のアクセス許可を削除する場合、またはアクセス許可が正しく設定されていない場合は、次の手順を使用します。
- ミラーリングされたデータベース項目の
...
省略記号オプションを選択して、フレキシブル サーバーの SAMI をユーザーとして追加します。 - [アクセス許可の管理] オプションを選択します。
- Azure Database for PostgreSQL フレキシブル サーバーの名前を入力します。 読み取りと書き込みのアクセス許可を指定します。