Em um DBMS MySQL e MariaDB, é possível armazenar dados das seguintes formas:
ibdata1
).Usar um espaço de tabela compartilhado aumenta o risco de fragmentação. Como não é possível executar uma operação SHRINK
, um arquivo em um espaço de tabela compartilhado pode ocupar cerca de 90% do espaço em disco. Isso prejudica o desempenho do subsistema de disco. Portanto, é útil optar por um espaço de tabela individual.
Este artigo descreve como mover dados de um espaço de tabela compartilhado para um espaço de tabela individual. Se os DBMSs MySQL ou MariaDB também forem utilizados por outros aplicativos, será necessário mover os bancos de dados desses aplicativos para o espaço de tabela individual.
Recomendamos que o procedimento seja executado somente se você estiver utilizando DBMSs MySQL ou MariaDB para o Servidor de Administração.
Mover dados de um espaço de tabela compartilhado para um espaço de tabela individual pode aumentar a carga no subsistema de disco.
Pré-requisitos
Antes de começar, certifique-se de que:
O espaço em disco necessário corresponde a 150% do tamanho total atual dos bancos de dados (tamanho atual do arquivo ibdata1
).
Processar
Para mover dados de um espaço de tabela compartilhado para um espaço de tabela individual:
fix_tablespace.sql
.
É possível visualizar os scripts fix_tablespace.sql
clicando nestes links:
Visualizar o script para MySQL 5.7 e MariaDB 10.1+
Visualizar o script para MySQL 8.0+
A execução do script não deve ser interrompida.
Se nenhum erro de DBMS ocorreu, mas você interrompeu a execução do script, execute o script novamente ou pare de executar as etapas deste procedimento, reinicie o serviço DBMS e restaure os dados do Servidor de Administração a partir do backup.
[mysqld]
do arquivo my.cnf, defina o parâmetro innodb_file_per_table
como 1
.Os dados serão movidos de um espaço de tabela compartilhado para um espaço de tabela individual.
Topo da página