Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: alan54 от 01 Марта 2022, 16:51:11

Название: Как сжать базу данных?
Отправлено: alan54 от 01 Марта 2022, 16:51:11
База данных разрослась почти до 5 ГБ. Можно ли ее сжать средствами Simple-SCADA или MySQL? 
Название: Re: Как сжать базу данных?
Отправлено: Simple-Scada от 02 Марта 2022, 11:45:10
Здравствуйте.

Можно включить сжатие таблиц на уровне СУБД (https://dev.mysql.com/doc/refman/8.0/en/innodb-compression.html#:~:text=Using%20the%20compression%20features%20of,on%20disk%20and%20in%20memory.). Но оно не будет эффективным для таблицы трендов, т.к. она состоит из чисел и значения обычно не повторяются. Для таблицы сообщений сжатие будет работать лучше, т.к. в ней есть текстовые данные.

Также можно ограничить архив трендов (https://simple-scada.com/help/manual/trendsset.html) и сообщений (https://simple-scada.com/help/manual/messet.html) по времени. Тогда скада будет периодически посылать запросы на удаление данных старше заданного срока. Это скорее всего не приведёт к уменьшению размера БД, т.к. СУБД может только пометить данные как удалённые (без физического удаления из файла), но рост БД может прекратиться.
Название: Re: Как сжать базу данных?
Отправлено: alan54 от 02 Марта 2022, 13:03:32
Спасибо за подробный ответ. И еще один вопрос - можно ли автоматизировать процесс создания резервных копий БД в MySQL по расписанию?
Название: Re: Как сжать базу данных?
Отправлено: ART63 от 03 Марта 2022, 09:15:27
Это зависит от ОС, на которой установлен MySQL.
Можно погуглить для своей. Вот пример для Win - https://internet-lab.ru/mysql_backup_cmd
Название: Re: Как сжать базу данных?
Отправлено: alan54 от 03 Марта 2022, 12:54:00
Это зависит от ОС, на которой установлен MySQL.
Можно погуглить для своей. Вот пример для Win - https://internet-lab.ru/mysql_backup_cmd
Спасибо, этот способ я нашел. Но мне он показался слишком сложным. Нет ли более простого?
P.S. Оказалось ничего сложного. Скопировал и отредактировал батник, проверил - работает! Большое спасибо автору!
Название: Re: Как сжать базу данных?
Отправлено: Виктор К от 03 Марта 2022, 14:10:39
Bat файл для стандартного планировщика задач:
Код
"c:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" --single-transaction -c -u root -pПАРОЛЬ_К_БД ИМЯ__БД > c:\arch\dump.sql
"c:\Program Files\WinRAR\winrar.exe" a -r -tl -ep -ag  c:\arch\sql\sql_.rar "c:\arch\dump.sql"
Еще можно через dbForge Studio, там тоже можно настроить дамп базы. Запуск так же идет через стандартный планировщик.
Название: Re: Как сжать базу данных?
Отправлено: alan54 от 03 Марта 2022, 22:14:20
С учетом вышеопубликованных советов я создал свой батник и включил его ежедневный запуск в планировщик заданий Windows:
Код
@set CURDATE=%date: =0%
@set CURTIME=%time: =0%
@"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqlpump.exe" --single-transaction --user=root --password=root "ИМЯ_БД" > E:\Backup\MySQL_Dumps\Dump%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%%CURTIME:~0,2%%CURTIME:~3,2%.sql
@set CURDATE=
@set CURTIME=