AliSQL, veritabanı hizmetinizin kararlılığını artırmak için Büyük Dosyaları Eş Zamanlı Olarak Temizle (Purge Large File Asynchronously) özelliğini sunar.
Genel bilgiler
Verileri silmek için DROP TABLE ifadesini çalıştırdığınızda ilgili InnoDB veri dosyası dosya sisteminden doğrudan silinir. Veri dosyası büyükse bu silme işlemi, Taşınabilir İşletim Sistemi Arayüzü (POSIX) dosya sisteminde ciddi kararlılık sorunlarına yol açar. Büyük Dosyaları Eş Zamanlı Olarak Temizle özelliği, veri dosyasını eş zamanlı olarak silmek için bir iş parçacığı başlatır. DROP TABLE ifadesini çalıştırarak verileri sildiğinizde ilgili veri dosyası geçici bir dosya olarak kaydedilir; ardından dosyanın eş zamanlı ve sorunsuz bir şekilde silinmesi için iş parçacığı başlatılır.
Yordam
-
RDS örneğinizin genel değişken ayarlarını görüntülemek için aşağıdaki ifadeyi çalıştırın:
SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';Aşağıdaki kod, örnek bir sorgu sonucunu gösterir:
+----------------------------------------+-------+ | 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 | +----------------------------------------+-------+Aşağıdaki tabloda genel değişkenler açıklanmıştır.
Değişken
Açıklama
innodb_data_file_purge
Büyük Dosyaları Eş Zamanlı Olarak Temizle özelliğinin etkin olup olmadığını belirtir.
innodb_data_file_purge_all_at_shutdown
RDS örneğinizin barındırıldığı ana bilgisayar kapatıldığında tüm dosyaların silinip silinmeyeceğini belirtir.
innodb_data_file_purge_dir
Geçici dosyaların depolandığı dizin.
innodb_data_file_purge_immediate
Veri dosyalarının korunup yalnızca bağlantılarının kaldırılacağını belirtir.
innodb_data_file_purge_interval
Dosyaların silinme aralığı. Birim: milisaniye.
innodb_data_file_purge_max_size
Silinebilecek tek bir dosyanın maksimum boyutu. Birim: MB.
innodb_print_data_file_purge_process
Sistemin dosya silme ilerlemesini göstermek için bir ilerleme çubuğu görüntüleyip görüntülemeyeceğini belirtir.NotAşağıdaki ayarları kullanmanızı öneririz:
set global INNODB_DATA_FILE_PURGE = on; set global INNODB_DATA_FILE_PURGE_INTERVAL = 100; set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128; -
Dosya silme ilerlemesini görüntülemek için aşağıdaki ifadeyi çalıştırın:
select * from information_schema.innodb_purge_files;Aşağıdaki kod, örnek bir sorgu sonucunu gösterir:
+--------+---------------------+--------------------+---------------+-------------------------+--------------+ | 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 | +--------+---------------------+--------------------+---------------+-------------------------+--------------+Aşağıdaki tabloda dönüş sonucundaki parametreler açıklanmıştır.
Parametre
Açıklama
start_time
Silme işleminin başladığı zaman.
original_path
Veri dosyaları silinmeden önce depolandıkları klasörün orijinal yolu.
original_size
Veri dosyaları silinmeden önceki orijinal boyut. Birim: bayt.
temporary_path
Geçici dosyalar silinirken depolandıkları klasörün yolu.
current_size
Silinecek geçici dosyaların boyutu. Birim: bayt.