全部產品
Search
文件中心

PolarDB:冷資料歸檔常見問題

更新時間:May 07, 2025

本文匯總了PolarDB冷資料歸檔相關的常見問題。

出現"[Data Lifecycle Management] DLM storage engine is not support. The value of polar_dlm_storage_mode is OFF."報錯,如何處理?

您需要在PolarDB控制台上開啟冷資料歸檔功能。詳情請參見開啟冷資料歸檔

為什麼PolarDB控制台導覽列中沒有冷資料歸檔這個菜單?

申請開啟冷資料歸檔功能成功後,會有一定的延遲,等待幾分鐘重新整理頁面後即可出現冷資料歸檔菜單。

冷資料檔案的格式是什嗎?

目前支援CSV和ORC格式。

如何判斷當前表或分區是否歸檔成功?

歸檔完成後,您可以通過以下兩種方式來查看錶或分區是否歸檔成功:

  • 執行SHOW CREATE TABLE table_name;命令查看錶結構資訊,以此來確認表或者分區是否歸檔成功。

    • 普通表:回顯資訊中顯示STORAGE OSS或CONNECTION='default_oss_server',則表示當前資料歸檔成功。

    • 分區表:分區表中的分區顯示ENGINE=CSV/ORC,則表示當前資料歸檔成功。

  • 在控制台上查看是否歸檔成功。

    登入PolarDB控制台在目的地組群的配置與管理 > 冷資料歸檔路徑下,查看是否存在對應的表名,若存在,則說明當前資料已經歸檔至OSS。

執行歸檔語句時出現,"[Data Lifecycle Management] errmsg: Not allowd archive the archived table."報錯,如何處理?

不支援對已歸檔的表進行再次歸檔操作。請確認您歸檔語句中的表是否已經歸檔。

如何下載歸檔後的冷資料?

目前暫不支援下載歸檔後的冷資料,如果您有下載需求,請前往配額中心,根據配額IDpolardb_mysql_download_oss找到配額名稱,在對應的操作列單擊申請下載歸檔後的冷資料。

如何查看歸檔後的冷資料大小?

您可以在控制台查看歸檔後的冷資料大小,或者直接在叢集上查詢對應的冷資料表。具體操作請參見查看冷資料歸檔資訊

如何查詢歸檔後的冷資料?

對普通表和分區表執行冷資料歸檔操作後,您可以通過以下方法查詢歸檔後的冷資料:

  • 普通表:執行冷資料歸檔後,查詢冷資料的方法和查詢熱資料的方法一致,不需要修改訪問方式。

  • 分區表:執行冷資料歸檔後,查詢冷資料的操作方法請參見查詢混合分區

如何修改對應的冷資料?

暫不支援直接修改已歸檔到OSS上的CSV或ORC格式的冷資料,您可以通過ALTER TABLE table_name ENGINE=InnoDB文法將OSS上的表資料導回至PolarStore,修改完成後,再通過ALTER TABLE t ENGINE = CSV STORAGE OSS;指令碼將表資料歸檔至OSS。詳情請參見將OSS資料導回至PolarStore

如何刪除歸檔後的冷資料?

說明

請使用高許可權帳號執行刪除歸檔表操作。

首先,你需要使用DROP TABLE刪除歸檔表,然後再通過CALL dbms_oss.delete_table_file('database_name', 'table_name');來刪除歸檔後的冷資料。

自動歸檔資料如何觸發?

目前自動歸檔資料通過event的方式觸發,詳情請參見冷熱資料分離管理

自動歸檔資料有日誌嗎?

自動歸檔資料的日誌記錄在mysql.dlm_progress表中,您可以使用有mysql庫許可權的帳號查看。詳情請參見mysql.dlm_progress表

如何查看當前自動歸檔資料的策略?

自動歸檔資料的策略記錄在mysql.dlm_policies表中,您可以使用有mysql庫許可權的帳號查看。詳情請參見mysql.dlm_policies表

如何把資料歸檔到自己的OSS引擎上?

目前暫不支援將資料歸檔至自己的OSS引擎中,您可以使用select into ossoutfile將資料匯出至OSS引擎。詳情請參見將本地表串列匯出至OSS引擎

冷資料歸檔之後,原表依然存在於資料庫中,是否需要執行手動刪除操作,以節約儲存空間?

冷資料歸檔後,PolarDB僅儲存該表的中繼資料資訊,實際的資料資訊已經儲存在OSS上,對您的儲存空間不會造成影響。

出現OSS error: error message: The OSS Access Key Id you provided does not exist in our records. 報錯,如何處理?

OSS error: 開頭的報錯均為OSS側的報錯資訊,您可以查看OSS錯誤碼瞭解具體的報錯原因。以上報錯的錯誤原因和解決方案如下:

  • 錯誤原因:臨時訪問憑證已到期,到期後自動失效。

  • 解決方案:請使用臨時存取金鑰(AccessKeyId和AccessKeySecret)向App伺服器申請新的臨時訪問憑證。具體操作請參見擷取臨時訪問憑證

執行冷資料歸檔操作後,為什麼在控制台上看不到歸檔的表資訊?

如果您歸檔的表是空表,歸檔成功後不會在OSS上產生CSV檔案,在控制台上也看不到對應的表資訊。

對歸檔至OSS的表執行rename操作,需要多長時間?

對歸檔至OSS的表執行rename操作會修改OSS上的檔案資訊,速度大約為100MB/s,您可以根據資料總量來估算時間長度。

出現ERROR 8185 (HY000): Change partition not support archive to engine CSV報錯,如何處理?

將分區表中的分區歸檔至OSS的功能目前處於灰階階段。如需使用,請前往配額中心,根據配額IDpolardb_mysql_hybrid_partition找到配額名稱,在對應的操作列單擊申請來開通該功能。

歸檔後的冷資料的資料量相比原表是變大還是變小?

歸檔後的冷資料的資料格式發生變化,會導致佔用的空間容量發生變化。具體變化如下:

  • 如果原表位於InnoDB引擎,歸檔後的資料的資料量可能會變小。

  • 如果原表位於X-Engine引擎,歸檔後的資料的資料量可能會變大。

歸檔為CSV格式的資料的資料量可能會比歸檔為ORC格式的資料的資料量更大。

為什麼歸檔後的冷資料及檔案在主帳號下面的OSS上看不到?

PolarDB的冷資料存放區在系統預設的OSS上,不在客戶的OSS裡,所以客戶無法看到。目前只支援在PolarDB控制台上查看歸檔後的冷資料和檔案。

預存程序中涉及到冷存表,報錯“Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.”是什麼原因?

如上報錯是因為CSV或ORC格式的冷存表不支援事務。如果預存程序中涉及到冷存表,即使沒有實際的寫入操作,也是不被允許的。您可以將儲存引擎修改為X-Engine,既可以降低儲存成本,又同時支援事務。

資料歸檔到OSS中執行恢複,報錯“The last packet successfully received from the server was 15,287 milliseconds ago. The last packet sent successfully to the server was 15,287 milliseconds ago.”是什麼原因?

如上報錯是因為在操作恢複過程中PolarDB MySQL版導致用戶端執行時間逾時。您可以適當調大叢集的最小PCU規格,然後重新執行恢複任務。

PolarDB MySQL版低版本如何開啟冷資料歸檔?

您可以將PolarDB MySQL版升級到符合要求的版本,您可點擊版本管理進行查看並進行相關升級操作。

PolarDB MySQL版歸檔為OSS冷存後資料容量是否變化?

PolarDB MySQL版歸檔為OSS冷存後,表大小會發生一定的變化。

說明
  • 相比於無索引的InnoDB表,歸檔為冷資料後會進行資料壓縮,最後歸檔產生的檔案通常小於InnoDB本地表的大小。

  • 對於帶有索引的InnoDB表,歸檔為冷資料後索引會被刪除,所以歸檔後表的大小會進一步縮小。

  • 對於高壓縮引擎(X-Engine)表,由於X-Engine在本地有很高的壓縮率,歸檔為冷資料表後,冷資料容量相比於本地表來說會更大一些。

  • 目前支援兩種格式,歸檔為CSV格式。對於以上兩種格式來說,ORC冷資料表相比於CSV冷資料表有更好的壓縮率,所以歸檔為ORC冷資料後,所佔的OSS容量會更少一些。