全部產品
Search
文件中心

PolarDB:表結構說明

更新時間:Jul 06, 2024

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_schemaDLM策略對應表所在資料庫。
Table_nameDLM策略對應表的表名稱。
Policy_nameDLM策略的名稱。
Policy_typeDLM策略的類型。取值範圍:
  • TABLE(預設):歸檔為表。
  • PARTITION:歸檔為分區。暫不支援。
  • NONE:直接刪除資料。
Archive_typeDLM策略的執行方式。取值範圍:
  • PARTITION COUNT(預設):將滿足分區數量的資料進行歸檔。
  • CONDITION:將滿足條件的資料進行歸檔。暫不支援。
Storage_mode儲存模式。取值範圍:
  • READ ONLY(預設):唯讀。
  • READ WRITE:讀寫。暫不支援。
Storage_engineDLM表的儲存引擎,目前僅支援將資料歸檔為CSV格式。
Storage_mediaDLM表的儲存介質,目前僅支援OSS引擎,對應OSS儲存。
Storage_schema_nameDLM歸檔為表時,表所在的資料庫。
Storage_table_nameDLM歸檔為表時的表名稱。
Data_compressed歸檔後的資料是否壓縮。暫不支援。
Compressed_algorithm資料壓縮演算法。暫不支援。
EnabledDLM策略是否生效。取值範圍:
  • ENABLED(預設):DLM策略生效。
  • DISABLED:DLM策略不生效。
Priority_numberDLM策略的執行優先順序。暫不支援。
Tier_partition_numberPARTITION COUNT進行資料歸檔時,執行的分區數量。
Tier_conditionCONDITION進行資料歸檔時的執行條件。暫不支援。
Extra_info其他資訊。
CommentDLM策略的備忘。

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_schemaDLM策略對應表所在資料庫。
Table_nameDLM策略對應表的表名稱。
Policy_nameDLM策略的名稱。
Policy_typeDLM策略的類型。取值範圍:
  • TABLE(預設):歸檔為表。
  • PARTITION:歸檔為分區。暫不支援。
  • NONE:直接刪除資料。
Archive_optionDLM策略的執行條件。
Storage_engineDLM策略的儲存引擎,目前僅支援將資料歸檔為CSV格式。
Storage_mediaDLM策略的儲存介質。取值範圍:
  • OSS(預設):OSS儲存。
  • DISK:對應本地PFS儲存。暫不支援。
Data_compressed歸檔後的資料是否壓縮。暫不支援。
Compressed_algorithm資料壓縮演算法。暫不支援。
Archive_partitionsDLM歸檔分區的名稱。
Archive_stageDLM的執行階段。具體階段如下:
  • 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_infoDLM策略歸檔後的檔案資訊。
Start_time開始執行DLM策略的時間。
End_timeDLM策略執行結束的時間。
Extra_info其他資訊。