Это видео недоступно.
Сожалеем об этом.
Партиционирование (Секционирование, создание разделов таблиц) базы данных MySQL Partitioning Zabbix
HTML-код
- Опубликовано: 17 авг 2024
- Сайт с инструкцией diyit.ru/viewt...
Данная инструкция подойдет в качестве образца для любой базы MySQL
00:00 - Что такое партицирование
00:34 - Как работает очистка zabbix по дефолту
07:05 - О таблицах которые будут разбиты на разделы
08:10 - Отключение стандартной очистки (хаускипера)
09:32 - Проверка и настройка параметров MySQL
12:40 - Резервное копирование (для восстановления истории) + теория
18:12 - Удаление связей зависимости таблиц
22:14 - Очистка таблиц
22:26 - Создание разделов партаций вручную для восстановления истории
27:33 - Восстановление истории из дампа
28:12 - Первый способ Партицирования
28:28 - Партицирование MySQL на основе процедур и события
33:19 - После создание что есть что
34:55 - Тестируем + разная инфа
40:48 - 2 Второй способ Партицирования по скрипту
О скрипте
41:55 - Создание скрипта назначение прав
42:34 - Кратко о скрипте об основных параметрах
45:39 - Запуск скрипта просмотр ошибки
45:54 - Установка дополнений Perl
47:18 - До запуска скрипта
47:47 - Запуск скрипта
48:06 - Результат
48:38 - Добавление в крон (планировщик заданий)
Интересное видео. Спасибо за труд.
блекхон, майэскьюэльДУМП, конвектор. Красавчик! :D
У вас на 32:46 ошибка. Процедура не создалась из-за ошибки в синтаксисе.
Вот правильная процедура:
DELIMITER $$
USE `zabbixdb`$$
DROP PROCEDURE IF EXISTS `drop_partitions`$$
CREATE PROCEDURE `drop_partitions`(IN_SCHEMANAME VARCHAR(64))
BEGIN
DECLARE TABLENAME_TMP VARCHAR(64);
DECLARE PARTITIONNAME_TMP VARCHAR(64);
DECLARE VALUES_LESS_TMP INT;
DECLARE PERIOD_TMP VARCHAR(12);
DECLARE KEEP_HISTORY_TMP INT;
DECLARE KEEP_HISTORY_BEFORE INT;
DECLARE DONE INT DEFAULT 0;
DECLARE get_partitions CURSOR FOR
SELECT p.`table_name`, p.`partition_name`, LTRIM(RTRIM(p.`partition_description`)), mp.`period`, mp.`keep_history`
FROM information_schema.partitions p
JOIN manage_partitions mp ON mp.tablename = p.table_name
WHERE p.table_schema = IN_SCHEMANAME
ORDER BY p.table_name, p.subpartition_ordinal_position;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN get_partitions;
loop_check_prt: LOOP
IF DONE THEN
LEAVE loop_check_prt;
END IF;
FETCH get_partitions INTO TABLENAME_TMP, PARTITIONNAME_TMP, VALUES_LESS_TMP, PERIOD_TMP, KEEP_HISTORY_TMP;
CASE WHEN PERIOD_TMP = 'day' THEN
SET KEEP_HISTORY_BEFORE = UNIX_TIMESTAMP(DATE(NOW() - INTERVAL KEEP_HISTORY_TMP DAY));
WHEN PERIOD_TMP = 'month' THEN
SET KEEP_HISTORY_BEFORE = UNIX_TIMESTAMP(DATE(NOW() - INTERVAL KEEP_HISTORY_TMP MONTH - INTERVAL DAY(NOW())-1 DAY));
ELSE
BEGIN
ITERATE loop_check_prt;
END;
END CASE;
IF KEEP_HISTORY_BEFORE >= VALUES_LESS_TMP THEN
CALL drop_old_partition(IN_SCHEMANAME, TABLENAME_TMP, PARTITIONNAME_TMP);
END IF;
END LOOP loop_check_prt;
CLOSE get_partitions;
END$$
DELIMITER ;
Спасибо поправил!
Отличие скриптов моего и подписчика, у меня были доп строки откуда они взялись.... возможно скопировались с чем то...
на 3 команды больше
FETCH get_partitions INTO TABLENAME_TMP, PARTITIONNAME_TMP, VALUES_LESS_TMP, PERIOD_TMP, KEEP_HISTORY_TMP;
CASE WHEN PERIOD_TMP = 'week' THEN
SET KEEP_HISTORY_BEFORE = UNIX_TIMESTAMP(DATE(NOW() - INTERVAL KEEP_HISTORY_TMP WEEK));
Может тупой вопрос, но почему нужно создавать например в таблицах на каждый день именно 15 файлов?
Это не обязательно можно создавать по одному файлу
Могли бы Вы снять ролик как восстанавливать MySQL после падения, когда он не стартует и в браузере пишет, нет коннекта к базам
Такой ролик вряд ли можно сделать , причин может быть очень много почему не стартует mysql. Надо смотреть логи, или конфиги или базы и тд очень много вариантов , в плоть до того что можно тестировать базы на другом временном сервере, либо же сохранить конфиги и переустановить mysql.
Артём Андреевич Мамзиков информация с логами есть, причина падения в некорректном отключении питания сервера.
@@Silencer-311 Ничего конкретного сказать не смогу тем более не видя ничего, возможно повредились какие то файлы на диске от mysql вовремя отключения электричества. Я бы начал с ошибок в логах поискать что есть на них в интернете и как исправить.
Артём Андреевич Мамзиков если логи предоставлю, поможете ?
@@Silencer-311 Глянуть могу но ничего не обещаю скинь мне их на почту anji12@mail.ru