表Meta診斷

更新時間:
Copy as MD

Hologres資料庫中的中繼資料管理器(Storage Master)和FE節點儲存的表中繼資料不一致時,會導致DDL操作報錯或影響費用等。Hologres提供了表Meta診斷功能,以檢測當前執行個體中表中繼資料的一致性,並每周更新一次診斷結果,您可以根據對應中繼資料問題的解決方案進行修複,以提高執行個體的可用性和穩定性。

操作步驟

您可以通過HoloWeb可視化查看錶Meta診斷。

  1. 進入HoloWeb開發頁面,詳情請參見串連HoloWeb並執行查詢

  2. 單擊頂部導覽列的診斷與優化

  3. 在左側導覽列,選擇實例診斷>Meta診斷,進行查詢。

診斷列表

診斷時效性為每周更新一次診斷內容。診斷問題、影響和修複方案如下表。

問題

影響

修複方案

注意事項

分區子表的Distribution Key與父表不一致

若不修複,當查詢命中對應分區子表時會報錯。

重建立分區父表和所有子表。

建議在業務低峰期執行。

表設定的Distribution Key與中繼資料不一致

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

分區子表的Clustering Key與父表不一致

若不修複,當查詢命中對應分區子表時會報錯。

重建立分區父表和所有子表。

建議在業務低峰期執行。

表設定的Clustering Key與中繼資料不一致

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

分區子表的Segment Key與父表不一致

若不修複,當查詢命中對應子表時會報錯。

重建立立分區父表和所有子表。

建議在業務低峰期執行。

表設定的Segment Key與中繼資料不一致

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

表設定的Encryption屬性與中繼資料不一致

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

表設定的Storage Mode與中繼資料不一致

若不修複,查詢時會報錯。

執行call set_table_property('<schema_name>.<table_name>', 'table_storage_mode', 'hot/cold');修複此問題,可根據業務需求將表設定為熱存或冷存。

建議在業務低峰期執行,在冷熱資料搬遷過程中,可能會使用一定的系統資源。

表設定的Storage Format與中繼資料不一致

若不修複,查詢時會報錯。

執行call set_table_property('<schema_name>.<table_name>', 'storage_format', 'orc');修複,將錶轉為ORC格式。

建議在業務低峰期執行,在ORC格式轉換過程中,可能會使用一定的系統資源。

表設定的Proxima Vectors與中繼資料不一致

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

表設定的Proxima Vectors存在非法值

若不修複,查詢時會報錯。

重建立表。

建議在業務低峰期執行。

表設定的TTL與中繼資料不一致

若不修複,可能會影響資料的生命週期,導致資料被意外刪除。

修複SQL如下:call set_table_property('<schema_name>.<table_name>', 'time_to_live_in_seconds', '<target_value>');建議設定一個較長的值。

建議在業務低峰期執行。

表設定的Binlog TTL與中繼資料不一致

若不修複,可能會影響Binlog的生命週期,導致Binlog被意外刪除。

修複SQL如下:call set_table_property('<schema_name>.<table_name>', 'binlog.ttl', '<target_value>');建議設定一個較長的值。

建議在業務低峰期執行。

表設定的Binlog屬性與中繼資料不一致

可能表未開啟Binlog功能,但在中繼資料中啟用了Binlog,則可能導致表的儲存空間增加。

修改一次Binlog的屬性,可以先關閉。修複SQL如下:call set_table_property('<parent_schema_name>.<parent_table_name>', 'binlog.level','none');也可以根據業務情況開啟Binlog。

請根據業務情況選擇Binlog的開關,否則會影響相關Binlog任務。

分區子表設定的Binlog屬性與父表不一致

父表可能未開啟Binlog,而子表開啟了Binlog,導致分區表的Binlog屬性不一致。這種情況下,如果查詢命中子表,可能會報錯,同時還可能導致表的儲存空間增加。

修改一次Binlog的屬性,可以先關閉。修複SQL如下:call set_table_property('<parent_schema_name>.<parent_table_name>', 'binlog.level', 'none');也可以根據業務情況開啟Binlog。

請根據業務情況選擇Binlog的開關,否則會影響相關Binlog任務。

表設定的Index數量與中繼資料不一致

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表設定的index屬性與中繼資料不一致

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表設定的Readonly屬性與中繼資料不一致

若不修複,查詢時會報錯。

執行call set_table_property('<schema_name>.<table_name>', 'readonly', 'false');修複,關閉表的ReadOnly屬性。

建議在業務低峰期執行。

表的欄位數量與中繼資料不一致

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表名與中繼資料不一致

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表欄位的Nullable屬性與中繼資料不一致

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表欄位名存在不支援的異常字元

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表沒有欄位

不合法的表,建議刪除,否則會佔用中繼資料記憶體。

刪除表。

建議在業務低峰期執行。

表設定的Clustering Key包含不支援的資料類型

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表設定的Segment Key包含不支援的資料類型

若不修複,查詢時會報錯。

需要重建立表。

建議在業務低峰期執行。

表中繼資料有嚴重異常,無法訪問

表的中繼資料問題較為嚴重,且自動診斷難以識別更多具體原因。如果不進行修複,查詢將會報錯。

需要重建立表。

建議在業務低峰期執行。