全部產品
Search
文件中心

PolarDB:表結構說明

更新時間:Aug 27, 2025

DLM功能使用了兩張系統資料表,即mysql.dlm_policies表和mysql.dlm_progress表,您可以使用高許可權賬戶查看當前叢集上所有可用的DLM策略和DLM策略的執行記錄。系統啟動時會自動建立這兩張表,無需您手動建立。

mysql.dlm_policies表

mysql.dlm_policies主要用於記錄當前叢集上所有可用的DLM策略。

表結構

CREATE TABLE `dlm_policies` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Table_schema` varchar(64) NOT NULL,
  `Table_name` varchar(64) NOT NULL,
  `Policy_name` varchar(64) NOT NULL,
  `Policy_type` varchar(64) DEFAULT NULL,
  `Archive_type` varchar(20) DEFAULT NULL,
  `Storage_mode` varchar(20) DEFAULT NULL,
  `Storage_engine` varchar(64) DEFAULT NULL,
  `Storage_media` varchar(20) DEFAULT NULL,
  `Storage_schema_name` varchar(64) DEFAULT NULL,
  `Storage_table_name` varchar(64) DEFAULT NULL,
  `Data_compressed` varchar(10) DEFAULT 'OFF',
  `Compressed_algorithm` varchar(64) DEFAULT NULL,
  `Enabled` varchar(10) DEFAULT 'ON',
  `Priority_number` int(11) NOT NULL,
  `Tier_partition_number` int(11) DEFAULT '0',
  `Tier_condition` varchar(512) DEFAULT NULL,
  `Extra_info` json NOT NULL,
  `Comment` varchar(2048) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `unique_policy` (`Table_schema`,`Table_name`,`Policy_name`)
) /*!50100 TABLESPACE `mysql` */ ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PolarDB DLM policies table'
1 row in set (0.00 sec)

參數說明

參數

說明

Id

自增主鍵。

Table_schema

DLM策略對應表所在資料庫。

Table_name

DLM策略對應表的表名稱。

Policy_name

DLM策略的名稱。

Policy_type

DLM策略的類型。取值範圍:

  • TABLE(預設):歸檔為表。

  • PARTITION:歸檔為分區。

  • NONE:直接刪除資料。

Archive_type

DLM策略的執行方式。取值範圍:

  • PARTITION COUNT(預設):將滿足分區數量的資料進行歸檔。

  • CONDITION:將滿足條件的資料進行歸檔。暫不支援。

Storage_mode

儲存模式。取值範圍:

  • READ ONLY(預設):唯讀。

  • READ WRITE:讀寫。暫不支援。

Storage_engine

DLM表的儲存引擎,目前僅支援將資料歸檔為CSV格式。

Storage_media

DLM表的儲存介質,目前僅支援OSS引擎,對應OSS儲存。

Storage_schema_name

DLM歸檔為表時,表所在的資料庫。

Storage_table_name

DLM歸檔為表時的表名稱。

Data_compressed

歸檔後的資料是否壓縮。暫不支援。

Compressed_algorithm

資料壓縮演算法。暫不支援。

Enabled

DLM策略是否生效。取值範圍:

  • ENABLED(預設):DLM策略生效。

  • DISABLED:DLM策略不生效。

Priority_number

DLM策略的執行優先順序。暫不支援。

Tier_partition_number

PARTITION COUNT進行資料歸檔時,執行的分區數量。

Tier_condition

CONDITION進行資料歸檔時的執行條件。暫不支援。

Extra_info

其他資訊。

Comment

DLM策略的備忘。

mysql.dlm_progress表

mysql.dlm_progress主要用於儲存當前叢集上DLM策略的執行記錄。

表結構

CREATE TABLE `dlm_progress` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Table_schema` varchar(64) NOT NULL,
  `Table_name` varchar(64) NOT NULL,
  `Policy_name` varchar(64) NOT NULL,
  `Policy_type` varchar(64) DEFAULT NULL,
  `Archive_option` varchar(64) DEFAULT NULL,
  `Storage_engine` varchar(64) DEFAULT NULL,
  `Storage_media` varchar(20) DEFAULT NULL,
  `Data_compressed` varchar(10) DEFAULT 'OFF',
  `Compressed_algorithm` varchar(64) DEFAULT NULL,
  `Archive_partitions` varchar(2048) DEFAULT NULL,
  `Archive_stage` varchar(64) DEFAULT NULL,
  `Archive_percentage` int(11) DEFAULT NULL,
  `Archived_file_info` json NOT NULL,
  `Start_time` datetime NOT NULL,
  `End_time` datetime DEFAULT NULL,
  `Extra_info` json NOT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `unique_progress` (`Table_schema`,`Table_name`,`Policy_name`,`Start_time`)
) /*!50100 TABLESPACE `mysql` */ ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PolarDB DLM progress table'
1 row in set (0.00 sec)

參數說明

參數

說明

Id

自增主鍵。

Table_schema

DLM策略對應表所在資料庫。

Table_name

DLM策略對應表的表名稱。

Policy_name

DLM策略的名稱。

Policy_type

DLM策略的類型。取值範圍:

  • TABLE(預設):歸檔為表。

  • PARTITION:歸檔為分區。

  • NONE:直接刪除資料。

Archive_option

DLM策略的執行條件。

Storage_engine

DLM策略的儲存引擎,目前僅支援將資料歸檔為CSV格式。

Storage_media

DLM策略的儲存介質。取值範圍:

  • OSS(預設):OSS儲存。

  • DISK:對應本地PFS儲存。暫不支援。

Data_compressed

歸檔後的資料是否壓縮。暫不支援。

Compressed_algorithm

資料壓縮演算法。暫不支援。

Archive_partitions

DLM歸檔分區的名稱。

Archive_stage

DLM的執行階段。具體階段如下:

  • INITIALIZE:執行任務初始化階段。

  • WAITING:任務等待執行階段。

  • DATA_COPYING:複製需要的資料到新的儲存介質。

  • STORAGE_MOVING:修改需要歸檔的資料所對應的引擎。

  • DATA_VERIFYING:驗證歸檔後的資料是否與未經處理資料一致。

  • DATA_DELETING:刪除未經處理資料,釋放儲存空間。

  • ARCHIVE_COMPLETE:策略執行完成。

  • ARCHIVE_ERROR:策略執行錯誤。

說明
  • 如果某一個DLM策略正在執行,即執行階段為除ARCHIVE_COMPLETE之外的其他階段,重複執行當前DLM策略會自動跳過。

  • 如果DLM策略執行階段為ARCHIVE_ERROR,則表示當前DLM流程執行出錯,錯誤資訊會儲存在mysql.dlm_progress表中的Extra_info欄位中。您需要在確定DLM策略執行失敗的原因後,手動刪除當前DLM策略的執行記錄,或者將當前策略的狀態改為ARCHIVE_COMPLETE,即運行UPDATE mysql.dlm_progress SET Archive_stage = "ARCHIVE_COMPLETE" where Id = current_progress_id;語句,再次重新執行DLM策略。

Archive_percentage

當前DLM策略執行進度百分比。

Archived_file_info

DLM策略歸檔後的檔案資訊。

Start_time

開始執行DLM策略的時間。

End_time

DLM策略執行結束的時間。

Extra_info

其他資訊。