全部產品
Search
文件中心

ApsaraDB RDS:Purge Large File Asynchronously

更新時間:Feb 28, 2024

AliSQL通過非同步Purge資料檔案的方式來提高系統的穩定性。

背景資訊

當通過DROP TABLE來刪除資料時,對應的InnoDB資料檔案會直接從檔案系統中刪除。如果資料檔案非常大,直接刪除檔案會導致POSIX檔案系統出現嚴重的穩定性問題。AliSQL的大檔案清理功能會啟動一個後台線程來非同步清理資料檔案。當執行DROP TABLE時,對應的資料檔案會被重新命名為臨時檔案,然後通過檔案清理線程非同步、平緩地清理。

使用方法

  1. 使用如下命令查看執行個體全域變數設定:

    SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';

    返回結果如下:

      +----------------------------------------+-------+
      | Variable_name                          | Value |
      +----------------------------------------+-------+
      | innodb_data_file_purge                 | ON    |
      | innodb_data_file_purge_all_at_shutdown | OFF   |
      | innodb_data_file_purge_dir             |       |
      | innodb_data_file_purge_immediate       | OFF   |
      | innodb_data_file_purge_interval        | 100   |
      | innodb_data_file_purge_max_size        | 128   |
      | innodb_print_data_file_purge_process   | OFF   |
      +----------------------------------------+-------+

    參數說明如下:

    參數

    說明

    innodb_data_file_purge

    是否啟用非同步清除策略。

    innodb_data_file_purge_all_at_shutdown

    順利關機時全部清理。

    innodb_data_file_purge_dir

    臨時檔案目錄。

    innodb_data_file_purge_immediate

    取消資料檔案的連結但不清理。

    innodb_data_file_purge_interval

    清理時間間隔。單位:ms。

    innodb_data_file_purge_max_size

    每次清理單個檔案大小的最大值。單位:MB。

    innodb_print_data_file_purge_process

    是否列印檔案清理背景工作處理序。

    說明

    建議使用如下命令進行設定:

    set global INNODB_DATA_FILE_PURGE = on;
    set global INNODB_DATA_FILE_PURGE_INTERVAL = 100;
    set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128;
  2. 使用如下命令查看清理進度:

    select * from information_schema.innodb_purge_files;

    返回結果如下:

    +--------+---------------------+--------------------+---------------+-------------------------+--------------+
    | log_id | start_time          | original_path      | original_size | temporary_path          | current_size |
    +--------+---------------------+--------------------+---------------+-------------------------+--------------+
    |      0 | 2021-05-14 14:40:01 | ./file_purge/t.ibd |     146800640 | ./#FP_210514 14:40:01_9 |     79691776 |
    +--------+---------------------+--------------------+---------------+-------------------------+--------------+

    參數說明如下:

    參數

    說明

    start_time

    清理操作的開始時間。

    original_path

    表資料檔案的原始路徑。

    original_size

    表資料檔案的原始大小,單位:byte。

    temporary_path

    清理中的臨時檔案路徑。

    current_size

    待清理的剩餘臨時檔案大小,單位:byte。