1.20. コンプライアンスデータの復元
Grafana データソースは主に、history.local_compliance という名前のテーブルから取得されます。そのレコードは、毎晩 00:00:00 に開始される要約ルーチンによって生成されます。通常、要約プロセスを手動で実行する必要はありません。場合によっては、コンプライアンスジョブの実行時に予期しないエラーが発生する可能性があるため、データベースに手動でログインして概要プロセス全体を実行し、生成されなかったデータを回復する必要があります。手動での要約プロセスの実行 の手順に従ってデータを回復できます。
1.20.1. オプション: 既存のテーブルをパーティションテーブルに手動でアップグレードする リンクのコピーリンクがクリップボードにコピーされました!
GA より前に Multicluster Global Hub の初期バージョンをインストールしている場合は、現在の Multicluster Global Hub Operator と互換性があるようにテーブルをアップグレードする必要があります。アップグレードの主な目的は、event.local_policies、event.local_root_policies、および history.local_compliance テーブルをパーティション化されたテーブルに変換することです。
次の例は、日付が 2023-08 に設定された event.local_policies テーブルの変換を示しています。他の 2 つのテーブルのアップグレード手順は同様です。
ターゲットがパーティション化されていることを確認してください。
SELECT relname, relkind FROM pg_class WHERE relname = 'local_policies';テーブルの出力は次の例のようになります。
Expand relname
relkind
local_policies
r
relkindがpの場合、現在のテーブルはパーティション化されます。存在する場合は、残りの手順をスキップして、他のテーブルをアップグレードできます。通常のテーブルをパーティションテーブルに変換します。
-- start a transaction BEGIN; -- Rename the legacy TABLE_NAME ALTER TABLE event.local_policies RENAME TO local_policies_old; -- Partition tables: https://github.com/stolostron/multicluster-global-hub/blob/main/operator/pkg/controllers/hubofhubs/database/2.tables.sql#L283-L318 CREATE TABLE IF NOT EXISTS event.local_policies ( event_name character varying(63) NOT NULL, policy_id uuid NOT NULL, cluster_id uuid NOT NULL, leaf_hub_name character varying(63) NOT NULL, message text, reason text, count integer NOT NULL DEFAULT 0, source jsonb, created_at timestamp without time zone DEFAULT now() NOT NULL, compliance local_status.compliance_type NOT NULL, -- Rename the constraint to avoid conflicts CONSTRAINT local_policies_unique_partition_constraint UNIQUE (event_name, count, created_at) ) PARTITION BY RANGE (created_at); -- Create partitions, load the old data to the previous partition table CREATE TABLE IF NOT EXISTS event.local_policies_2023_08 PARTITION OF event.local_policies FOR VALUES FROM ('2023-08-01') TO ('2023-09-01'); CREATE TABLE IF NOT EXISTS event.local_policies_2023_07 PARTITION OF event.local_policies FOR VALUES FROM ('2000-01-01') TO ('2023-08-01'); -- Move the records from regular table to partition table INSERT INTO event.local_policies SELECT * FROM event.local_polcies_old; DROP TABLE IF EXISTS event.local_policies_old; -- commit the transaction COMMIT;テーブル名と現在の日付に従って、次の値を置き換えることができます。
-
event.local_policies_2023_08は、現在の月 の接尾辞が付いたパーティション名です。例として 8 月を使用します。 -
'2023-08-01'と'2023-09-01'は、現在の月のパーティションの最小境界と最大境界です。 -
event.local_policies_2023_07は、前月 (7 月) の接尾辞が付いたパーティション名です。 -
'2000-01-01'と'2023-08-01'は、前月のパーティションの最小境界と最大境界です。
-