web-dev-qa-db-ja.com

あまり明確でない「テーブル 'mytable'がいっぱいです」エラー

Mysqld.logのエラー:

2020-02-02T01:17:32.133974Z 3069 [ERROR] /usr/sbin/mysqld: The table 'IS_DUT_IFID' is full

このエラーについて私が見つけた多くのスレッドのどれも、この問題の解決に役立ちませんでした。

これまでに確認または試した内容は次のとおりです。

  • innodb_data_file_path-autoextend
  • innodb_temp_data_file_path-autoextend
  • innodb_file_per_table-[〜#〜] on [〜#〜](実際には)
  • / var/lib/mysqlおよび/ tmpディスク容量-47GB利用可能
  • innodb_buffer_pool _*増加
    • 128 MB(デフォルト)の1つのインスタンスが256 MBの4つのインスタンスに増加し、合計1 GB
  • 私の知る限り使用されている余分な大きなblobはありませんでしたが、念のため、これが私が見つけた唯一の提案であったため、これを行いました:
    • innodb_log_file_sizeが50MB(デフォルト)から128 MBに増加
    • innodb_log_buffer_sizeが16MB(デフォルト)から32 MBに増加

IS_DUT_IFID.ibdが最近4GBのマークを通過したことに気づきました。ファイルは、Red Hat 6.8が管理するext4ボリュームにあります。それは32ビットですが、4GBを超えるファイルはOSに問題を引き起こしていないようであり、次のようにOSの制限に達してはなりません: https://access.redhat.com/記事/ rhel-limits

サーバーには8 GBのRAMがありますが、32ビットであるため、どのプロセスでも4 GBしか使用できないと思います。 MySQLは一度にチャンクをインテリジェントに処理し、必要なものだけをロードするので、これは問題にならないという印象を受けました。たぶん私は間違っています?

私の唯一の考えは、OSを64ビットにアップグレードしてMySQL 64ビットを実行できるようにすることですが、このサーバーは可能な限りそのままにしておくことをお勧めします。アドバイスは大歓迎です!

MySQL情報:

mysql> show table status like 'IS_DUT_IFID';
+-------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name        | Engine | Version | Row_format | Rows     | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation         | Checksum | Create_options | Comment |
+-------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| IS_DUT_IFID | InnoDB |      10 | Dynamic    | 35362861 |             32 |  1160773632 |               0 |   2279604224 |   6291456 |           NULL | 2020-01-30 15:11:10 | 2020-02-02 11:00:38 | NULL       | latin1_swedish_ci |     NULL |                |         |
+-------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)

mysql> show variables like '%innodb%';
+------------------------------------------+------------------------+
| Variable_name                            | Value                  |
+------------------------------------------+------------------------+
| ignore_builtin_innodb                    | OFF                    |
| innodb_adaptive_flushing                 | ON                     |
| innodb_adaptive_flushing_lwm             | 10                     |
| innodb_adaptive_hash_index               | ON                     |
| innodb_adaptive_hash_index_parts         | 8                      |
| innodb_adaptive_max_sleep_delay          | 150000                 |
| innodb_api_bk_commit_interval            | 5                      |
| innodb_api_disable_rowlock               | OFF                    |
| innodb_api_enable_binlog                 | OFF                    |
| innodb_api_enable_mdl                    | OFF                    |
| innodb_api_trx_level                     | 0                      |
| innodb_autoextend_increment              | 64                     |
| innodb_autoinc_lock_mode                 | 1                      |
| innodb_buffer_pool_chunk_size            | 268435456              |
| innodb_buffer_pool_dump_at_shutdown      | ON                     |
| innodb_buffer_pool_dump_now              | OFF                    |
| innodb_buffer_pool_dump_pct              | 25                     |
| innodb_buffer_pool_filename              | ib_buffer_pool         |
| innodb_buffer_pool_instances             | 4                      |
| innodb_buffer_pool_load_abort            | OFF                    |
| innodb_buffer_pool_load_at_startup       | ON                     |
| innodb_buffer_pool_load_now              | OFF                    |
| innodb_buffer_pool_size                  | 1073741824             |
| innodb_change_buffer_max_size            | 25                     |
| innodb_change_buffering                  | all                    |
| innodb_checksum_algorithm                | crc32                  |
| innodb_checksums                         | ON                     |
| innodb_cmp_per_index_enabled             | OFF                    |
| innodb_commit_concurrency                | 0                      |
| innodb_compression_failure_threshold_pct | 5                      |
| innodb_compression_level                 | 6                      |
| innodb_compression_pad_pct_max           | 50                     |
| innodb_concurrency_tickets               | 5000                   |
| innodb_data_file_path                    | ibdata1:12M:autoextend |
| innodb_data_home_dir                     |                        |
| innodb_deadlock_detect                   | ON                     |
| innodb_default_row_format                | dynamic                |
| innodb_disable_sort_file_cache           | OFF                    |
| innodb_doublewrite                       | ON                     |
| innodb_fast_shutdown                     | 1                      |
| innodb_file_format                       | Barracuda              |
| innodb_file_format_check                 | ON                     |
| innodb_file_format_max                   | Barracuda              |
| innodb_file_per_table                    | ON                     |
| innodb_fill_factor                       | 100                    |
| innodb_flush_log_at_timeout              | 1                      |
| innodb_flush_log_at_trx_commit           | 1                      |
| innodb_flush_method                      |                        |
| innodb_flush_neighbors                   | 1                      |
| innodb_flush_sync                        | ON                     |
| innodb_flushing_avg_loops                | 30                     |
| innodb_force_load_corrupted              | OFF                    |
| innodb_force_recovery                    | 0                      |
| innodb_ft_aux_table                      |                        |
| innodb_ft_cache_size                     | 8000000                |
| innodb_ft_enable_diag_print              | OFF                    |
| innodb_ft_enable_stopword                | ON                     |
| innodb_ft_max_token_size                 | 84                     |
| innodb_ft_min_token_size                 | 3                      |
| innodb_ft_num_Word_optimize              | 2000                   |
| innodb_ft_result_cache_limit             | 2000000000             |
| innodb_ft_server_stopword_table          |                        |
| innodb_ft_sort_pll_degree                | 2                      |
| innodb_ft_total_cache_size               | 640000000              |
| innodb_ft_user_stopword_table            |                        |
| innodb_io_capacity                       | 200                    |
| innodb_io_capacity_max                   | 2000                   |
| innodb_large_prefix                      | ON                     |
| innodb_lock_wait_timeout                 | 50                     |
| innodb_locks_unsafe_for_binlog           | OFF                    |
| innodb_log_buffer_size                   | 33554432               |
| innodb_log_checksums                     | ON                     |
| innodb_log_compressed_pages              | ON                     |
| innodb_log_file_size                     | 134217728              |
| innodb_log_files_in_group                | 2                      |
| innodb_log_group_home_dir                | ./                     |
| innodb_log_write_ahead_size              | 8192                   |
| innodb_lru_scan_depth                    | 1024                   |
| innodb_max_dirty_pages_pct               | 75.000000              |
| innodb_max_dirty_pages_pct_lwm           | 0.000000               |
| innodb_max_purge_lag                     | 0                      |
| innodb_max_purge_lag_delay               | 0                      |
| innodb_max_undo_log_size                 | 1073741824             |
| innodb_monitor_disable                   |                        |
| innodb_monitor_enable                    |                        |
| innodb_monitor_reset                     |                        |
| innodb_monitor_reset_all                 |                        |
| innodb_numa_interleave                   | OFF                    |
| innodb_old_blocks_pct                    | 37                     |
| innodb_old_blocks_time                   | 1000                   |
| innodb_online_alter_log_max_size         | 134217728              |
| innodb_open_files                        | 2000                   |
| innodb_optimize_fulltext_only            | OFF                    |
| innodb_page_cleaners                     | 4                      |
| innodb_page_size                         | 16384                  |
| innodb_print_all_deadlocks               | OFF                    |
| innodb_purge_batch_size                  | 300                    |
| innodb_purge_rseg_truncate_frequency     | 128                    |
| innodb_purge_threads                     | 4                      |
| innodb_random_read_ahead                 | OFF                    |
| innodb_read_ahead_threshold              | 56                     |
| innodb_read_io_threads                   | 4                      |
| innodb_read_only                         | OFF                    |
| innodb_replication_delay                 | 0                      |
| innodb_rollback_on_timeout               | OFF                    |
| innodb_rollback_segments                 | 128                    |
| innodb_sort_buffer_size                  | 1048576                |
| innodb_spin_wait_delay                   | 6                      |
| innodb_stats_auto_recalc                 | ON                     |
| innodb_stats_include_delete_marked       | OFF                    |
| innodb_stats_method                      | nulls_equal            |
| innodb_stats_on_metadata                 | OFF                    |
| innodb_stats_persistent                  | ON                     |
| innodb_stats_persistent_sample_pages     | 20                     |
| innodb_stats_sample_pages                | 8                      |
| innodb_stats_transient_sample_pages      | 8                      |
| innodb_status_output                     | OFF                    |
| innodb_status_output_locks               | OFF                    |
| innodb_strict_mode                       | ON                     |
| innodb_support_xa                        | ON                     |
| innodb_sync_array_size                   | 1                      |
| innodb_sync_spin_loops                   | 30                     |
| innodb_table_locks                       | ON                     |
| innodb_temp_data_file_path               | ibtmp1:12M:autoextend  |
| innodb_thread_concurrency                | 0                      |
| innodb_thread_sleep_delay                | 10000                  |
| innodb_tmpdir                            |                        |
| innodb_undo_directory                    | ./                     |
| innodb_undo_log_truncate                 | OFF                    |
| innodb_undo_logs                         | 128                    |
| innodb_undo_tablespaces                  | 0                      |
| innodb_use_native_aio                    | ON                     |
| innodb_version                           | 5.7.29                 |
| innodb_write_io_threads                  | 4                      |
+------------------------------------------+------------------------+
134 rows in set (0.01 sec)

mysql> show variables like '%tmp%';
+----------------------------------+----------+
| Variable_name                    | Value    |
+----------------------------------+----------+
| default_tmp_storage_engine       | InnoDB   |
| innodb_tmpdir                    |          |
| internal_tmp_disk_storage_engine | InnoDB   |
| max_tmp_tables                   | 32       |
| slave_load_tmpdir                | /tmp     |
| tmp_table_size                   | 16777216 |
| tmpdir                           | /tmp     |
+----------------------------------+----------+
7 rows in set (0.00 sec)

mysql> show variables like '%datadir%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.29    |
+-----------+
1 row in set (0.00 sec)

追加情報:

Perlスクリプトから発生したINSERTエラー:

The table 'IS_DUT_IFID' is full [for Statement "INSERT INTO IS_DUT_IFID ( ddv_id, dut_ifid_id, is_id) VALUES ( '84600', 3172, 1594897 )"]
2
user1111991

MySQLの64ビットバージョンを実行するには、OSを64ビットにアップグレードします。

興味深いことに、Windows 32ではInnoDBテーブルのサイズに制限があります。

注:Bulletpoint 10 of MySQL Documentation on "InnoDB Limits"

Windows 32ビットシステムでは、テーブルスペースファイルは4GBを超えることはできません( Bug#80149 )。

そのバグレポートの抜粋に注意してください(2020-01-26 08:10 AMに提出)

一時テーブルのサイズが4GBに達すると、テストケースは次のように失敗します。

mysql> t select * from tに挿入します。クエリは正常、98304行が影響を受けた(6分54.49秒)レコード:98304重複:0警告:0

mysql> t select * from tに挿入します。エラー1114(HY000):テーブル 'c:\ tmp#sql2cc04_17_10'がいっぱいです

o)Linux 64ビットおよびWindows 64ビットで動作します。 o)tmpdirとdatadirには十分な空き容量があります。

それもあなたの状況のようです。

おそらく、32ビットバージョンのMySQLにも同じ制限が存在します。

2
RolandoMySQLDBA

「テーブルがいっぱいです」は、ほとんどの場合、ディスク容量の問題を示しています。メインディスクパーティションまたは「tmp」パーティションにある可能性があります。

Buffer_poolはキャッシュを行います。あなたが持っている innodb_buffer_pool_size = 1G。したがって、32ビットか64ビットかに関係なく、またテーブルのサイズに関係なく、そのサイズは機能します-大きなテーブルではおそらく遅くなりますが、機能します。 (利用可能なRAMが2GB未満の場合、1Gは大きすぎます。しかし、再び、「テーブルがいっぱいです」とは表示されません。)

/ var/lib/mysqlおよび/ tmpディスク容量-47GB利用可能

両者に?またはそれぞれに? InnoDBは、テーブルが2つのディスクパーティションにまたがるほどスマートです。それで、それぞれでどれくらい利用できますか?

SHOW VARIABLES LIKE '%dir%';
0
Rick James