Если заканчивается место на разделе с базами данных, вы можете посмотреть какие базы занимают много места.
Обычно это ecss_calls_db, ecss_audit, ecss_statistics.
Посмотреть размер базы можно через ОС командой:
В операционной системе командой:
Блок кода |
---|
|
sudo du -h /var/lib/ecss-mysql |
Блок кода |
---|
|
ecss1> sudo du -h /var/lib/ecss-mysql
220K /var/lib/ecss-mysql/ecss_system
2.1M /var/lib/ecss-mysql/web_conf
28M /var/lib/ecss-mysql/ecss_address_book
1.1M /var/lib/ecss-mysql/ecss_dialer_db
220K /var/lib/ecss-mysql/ecss_numbers_db
6.3G /var/lib/ecss-mysql/ecss_statistics
112K /var/lib/ecss-mysql/history_db
57M /var/lib/ecss-mysql/ecss_meeting_db
9.4G /var/lib/ecss-mysql/ecss_audit
12G /var/lib/ecss-mysql/ecss_calls_db
26M /var/lib/ecss-mysql/ecss_subscribers
24G /var/lib/ecss-mysq |
- Или внутри mysql командой
Блок кода |
---|
|
SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "Real Size in MB", sum(data_free)/1024/1024 "Free data", sum(data_length + data_free + index_length)/1024/1024 "Size on Filesystem" FROM information_schema.TABLES GROUP BY table_schema; |
Блок кода |
---|
|
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "Real Size in MB", sum(data_free)/1024/1024 "Free data", sum(data_length + data_free + index_length)/1024/1024 "Size on Filesystem" FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+-----------------+---------------+--------------------+
| database_name | Real Size in MB | Free data | Size on Filesystem |
+--------------------+-----------------+---------------+--------------------+
| ecss_address_book | 9.09375000 | 8.00000000 | 17.09375000 |
| ecss_audit | 3982.21875000 | 5455.00000000 | 9437.21875000 |
| ecss_calls_db | 4846.84375000 | 6677.50000000 | 11699.02343750|
| ecss_dialer_db | 0.45312500 | 0.00000000 | 0.45312500 |
| ecss_meeting_db | 45.79687500 | 6.00000000 | 51.79687500 |
| ecss_numbers_db | 0.03125000 | 0.00000000 | 0.03125000 |
| ecss_statistics | 5898.81250000 | 5.00000000 | 5903.81250000 |
| ecss_subscribers | 16.07812500 | 4.00000000 | 20.07812500 |
| ecss_system | 0.03125000 | 0.00000000 | 0.03125000 |
| history_db | 0.01562500 | 0.00000000 | 0.01562500 |
| information_schema | 0.15625000 | 80.00000000 | 80.15625000 |
| mysql | 3.10166645 | 4.00092316 | 7.10258961 |
| performance_schema | 0.00000000 | 0.00000000 | 0.00000000 |
| sys | 0.01562500 | 0.00000000 | 0.01562500 |
| web_conf | 0.59375000 | 0.00000000 | 0.59375000 |
+--------------------+-----------------+---------------+--------------------+
15 rows in set (0.02 sec) |
В таблице мы имеем 3 значения размеров.
- Real size in MB - это полезные данные.
- Free data - пустое место "между" полезными данными. Оттуда ранее была удалена информация, у которой истек срок хранения.
- Size on filesystem - реально занимаемоем место на диске. Это сумма "Real size in MB" и " Free data"
Информация |
---|
Чтобы освободить место на диске, не обязательно удалять реальные данные из таблицы, ее можно оптимизировать (передвинуть данные, что бы они шли подряд,без разрывов т.е пустых мест). В mysql нельзя просто выполнить оптимизацию БАЗЫ, можно выполнить оптимизацию таблиц, поэтому, нужно узнать, какие таблицы содержат "разрывы", пустые места. |
Для примера возьмем базу ecss_calls_db
Воспользуемся командой:
Блок кода |
---|
|
SELECT table_name,data_free/1024/1024 "Free data",sum(index_length/1024/1024+data_length/1024/1024) "Real_size in MB" from information_schema.TABLES where table_schema = 'ecss_calls_db' group by table_name; |
Блок кода |
---|
|
mysql> select table_name,data_free/1024/1024 "Free data",sum(index_length/1024/1024+data_length/1024/1024) "Real_size in MB" from information_schema.TABLES where table_schema = 'ecss_calls_db' group by table_name;
+-------------+---------------+-----------------+
| table_name | Free data | Real_size in MB |
+-------------+---------------+-----------------+
| cdr | 3244.50000000 | 2282.33593750 |
| counters | 0.00000000 | 0.01562500 |
| data | 0.00000000 | 0.01562500 |
| inodes | 0.00000000 | 0.04687500 |
| ss | 98.00000000 | 54.96093750 |
| tolltickets | 3332.00000000 | 2684.07031250 |
| tree | 0.00000000 | 0.04687500 |
| tree_view | NULL | NULL |
| variables | 0.00000000 | 0.01562500 |
| version | 0.00000000 | 0.01562500 |
+-------------+---------------+-----------------+
10 rows in set (0.00 sec) |
Отсюда можно увидеть, что всего 2 таблицы имеют "пустоты", и только для них необходима оптимизация.
Выполним оптимизацию таблицы cdr командой
Блок кода |
---|
|
optimize table ecss_calls_db.cdr; |
Блок кода |
---|
|
mysql> optimize table cdr;
+-------------------+----------+----------+-------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------+----------+----------+-------------------------------------------------------------------+
| ecss_calls_db.cdr | optimize | note | Table does not support optimize, doing recreate + analyze instead |
| ecss_calls_db.cdr | optimize | status | OK |
+-------------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (2 min 18.51 sec) |
Даже если и написано, что таблица не поддерживает оптимизацию, реальные данные после оптимизации всеравно будут упорядочены и последовательны, без промежутков.
Проверим, остались ли пустоты в таблице cdr командой:
Блок кода |
---|
|
SELECT table_name,data_free/1024/1024 "Free data",sum(index_length/1024/1024+data_length/1024/1024) "Real_size in MB" from information_schema.TABLES where table_schema = 'ecss_calls_db' group by table_name; |
Блок кода |
---|
|
mysql> select table_name,data_free/1024/1024 "Free data",sum(index_length/1024/1024+data_length/1024/1024) "Real_size in MB" from information_schema.TABLES where table_schema = 'ecss_calls_db' group by table_name;
+-------------+---------------+-----------------+
| table_name | Free data | Real_size in MB |
+-------------+---------------+-----------------+
| cdr | 5.00000000 | 2107.65625000 |
| counters | 0.00000000 | 0.01562500 |
| data | 0.00000000 | 0.01562500 |
| inodes | 0.00000000 | 0.04687500 |
| ss | 98.00000000 | 54.96093750 |
| tolltickets | 3332.00000000 | 2684.07031250 |
| tree | 0.00000000 | 0.04687500 |
| tree_view | NULL | NULL |
| variables | 0.00000000 | 0.01562500 |
| version | 0.00000000 | 0.01562500 |
+-------------+---------------+-----------------+ |
Далее, optimize можно выполнить и с другими таблицами