O AliSQL oferece o recurso Purge Large File Asynchronously para aumentar a estabilidade do seu service de banco de dados.
Informações básicas
A execução da instrução DROP TABLE para excluir dados remove diretamente o arquivo de dados correspondente do InnoDB do sistema de arquivos. Se esse arquivo for grande, a exclusão pode causar problemas graves de estabilidade no sistema de arquivos POSIX (Portable Operating System Interface). O recurso Purge Large File Asynchronously inicia uma thread para remover o arquivo de dados de forma assíncrona. Ao executar a instrução DROP TABLE, o sistema salva o arquivo de dados correspondente como um arquivo temporário e inicia uma thread para excluí-lo de maneira assíncrona e gradual.
Procedimento
-
Execute a seguinte instrução para visualizar as configurações de variáveis globais da sua instância RDS:
SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';O código a seguir mostra um exemplo de resultado da consulta:
+----------------------------------------+-------+ | 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 tabela a seguir descreve as variáveis globais.
Variável
Descrição
innodb_data_file_purge
Defina se o recurso Purge Large File Asynchronously deve ser ativado.
innodb_data_file_purge_all_at_shutdown
Indica se todos os arquivos devem ser excluídos quando o host da instância RDS for desligado.
innodb_data_file_purge_dir
Diretório onde os arquivos temporários são armazenados.
innodb_data_file_purge_immediate
Determina se os arquivos de dados devem ser mantidos, removendo apenas seus links.
innodb_data_file_purge_interval
Intervalo entre as exclusões de arquivos. Unidade: milissegundos.
innodb_data_file_purge_max_size
Tamanho máximo de um único arquivo que pode ser excluído. Unidade: MB.
innodb_print_data_file_purge_process
Controla se o sistema exibe uma barra de progresso durante a exclusão dos arquivos.
NotaRecomendamos utilizar as seguintes configurações:
set global INNODB_DATA_FILE_PURGE = on; set global INNODB_DATA_FILE_PURGE_INTERVAL = 100; set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128; -
Execute a instrução a seguir para visualizar o progresso da exclusão de arquivos:
select * from information_schema.innodb_purge_files;O código a seguir apresenta um exemplo de resultado da consulta:
+--------+---------------------+--------------------+---------------+-------------------------+--------------+ | 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 tabela a seguir detalha os parâmetros retornados no resultado.
Parâmetro
Descrição
start_time
Momento em que a exclusão foi iniciada.
original_path
Caminho original da pasta onde os arquivos de dados estavam armazenados antes da exclusão.
original_size
Tamanho original dos arquivos de dados antes da exclusão. Unidade: bytes.
temporary_path
Caminho da pasta onde os arquivos temporários ficam armazenados durante a exclusão.
current_size
Tamanho atual dos arquivos temporários pendentes de exclusão. Unidade: bytes.