Tempo de carregamento longo do MysqlDump

2

estou usando mysqldump database > output.sql para despejar todos os dados em um banco de dados. O tamanho do arquivo de saída é de cerca de 3,3 GB. Eu estou importando isso usando mysql < output.sql no entanto, ele está funcionando há mais de 24 horas e ainda não terminou.

Isso é normal? Existe alguma maneira de acelerar a importação?

mysql> SHOW VARIABLES LIKE '%innodb%';
+-----------------------------------------+------------------------+
| Variable_name                           | Value                  |
+-----------------------------------------+------------------------+
| have_innodb                             | YES                    |
| ignore_builtin_innodb                   | OFF                    |
| innodb_adaptive_hash_index              | ON                     |
| innodb_additional_mem_pool_size         | 1048576                |
| innodb_autoextend_increment             | 8                      |
| innodb_autoinc_lock_mode                | 1                      |
| innodb_buffer_pool_size                 | 8388608                |
| innodb_checksums                        | ON                     |
| innodb_commit_concurrency               | 0                      |
| innodb_concurrency_tickets              | 500                    |
| innodb_data_file_path                   | ibdata1:10M:autoextend |
| innodb_data_home_dir                    |                        |
| innodb_doublewrite                      | ON                     |
| innodb_fast_shutdown                    | 1                      |
| innodb_file_io_threads                  | 4                      |
| innodb_file_per_table                   | OFF                    |
| innodb_flush_log_at_trx_commit          | 1                      |
| innodb_flush_method                     |                        |
| innodb_force_recovery                   | 0                      |
| innodb_lock_wait_timeout                | 50                     |
| innodb_locks_unsafe_for_binlog          | OFF                    |
| innodb_log_buffer_size                  | 1048576                |
| innodb_log_file_size                    | 5242880                |
| innodb_log_files_in_group               | 2                      |
| innodb_log_group_home_dir               | ./                     |
| innodb_max_dirty_pages_pct              | 90                     |
| innodb_max_purge_lag                    | 0                      |
| innodb_mirrored_log_groups              | 1                      |
| innodb_open_files                       | 300                    |
| innodb_rollback_on_timeout              | OFF                    |
| innodb_stats_on_metadata                | ON                     |
| innodb_support_xa                       | ON                     |
| innodb_sync_spin_loops                  | 20                     |
| innodb_table_locks                      | ON                     |
| innodb_thread_concurrency               | 8                      |
| innodb_thread_sleep_delay               | 10000                  |
| innodb_use_legacy_cardinality_algorithm | ON                     |
+-----------------------------------------+------------------------+
37 rows in set (0.12 sec)

mysql> SHOW VARIABLES LIKE '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.03 sec)

mysql> SHOW VARIABLES LIKE '%table%';
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| big_tables                 | OFF      |
| innodb_file_per_table      | OFF      |
| innodb_table_locks         | ON       |
| lower_case_table_names     | 0        |
| max_heap_table_size        | 16777216 |
| max_tmp_tables             | 32       |
| old_alter_table            | OFF      |
| sql_big_tables             | OFF      |
| table_definition_cache     | 256      |
| table_lock_wait_timeout    | 50       |
| table_open_cache           | 64       |
| table_type                 | MyISAM   |
| tmp_table_size             | 16777216 |
| updatable_views_with_limit | YES      |
+----------------------------+----------+
14 rows in set (0.00 sec)
Gordon
fonte
Além disso, as tabelas são InnoDB
Gordon

Respostas:

1

Não consigo imaginar tantos dados levando mais de uma ou duas horas em uma máquina razoavelmente moderna. Eu usaria o MySQL Administrator (encontrado em Ferramentas GUI MySQL ) ou mtop para ter certeza de que não está apenas pendurado.

yalestar
fonte
1

Provavelmente suas configurações do mysqld foram ajustadas para conter configurações muito baixas para uso de memória.

Para tabelas MyISAM, certifique-se de ter key_buffer_size e table_cache devidamente ajustado.

Para tabelas InnoDB, certifique-se de ter o innodb_buffer_pool_size devidamente ajustado. Com o InnoDB, também pode ser útil agrupar as instruções insert em torno de uma transação.

Por favor poste aqui a saída dos seguintes comandos:

SHOW VARIABLES LIKE '%innodb%';
SHOW VARIABLES LIKE '%key_buffer%';
SHOW VARIABLES LIKE '%table%';
Janne Pikkarainen
fonte
saída adicionada para postar
Gordon
0

Com
mostre o processlist cheio;
você pode ver todo o processo em execução, então, se ele ainda estiver inserindo dados, você deverá vê-lo.

MOSTRAR MESAS ABERTAS
SHOW TABLE STATUS

Deve também dar-lhe alguma informação. Experimente e mostre os resultados.

Não deve demorar mais de 2 horas. Concordo.

Remy
fonte
0

Na verdade, isso acabou sendo um problema de espaço em disco do meu lado. Nada para ver aqui.

Gordon
fonte