Отработка отказа / резервное копирование базы данных MySQL

Текущий статус

У меня есть сервер MySQL (MariaDB 10.2) с различными базами данных, к которому имеет доступ множество людей. Это означает, что пользователи могут создавать таблицы / базы данных MyISAM или InnoDB.

Проблема

Упомянутый сервер MySQL не имеет серьезных резервных копий / резервных копий, кроме ежедневных резервных копий. Раньше использовалась простая репликация главный-подчиненный, но после многочисленных проблем с синхронизацией ее пришлось остановить. Я предполагаю, что большинство проблем возникло из-за сочетания таблиц MyISAM и InnoDB, но я не мог определить проблему со 100% точностью.

Вопрос

Как лучше всего настроить репликацию / откат, которая будет работать с минимальным контролем?

Одна из проблем заключается также в том, что размер баз данных составляет около 100 ГБ, и время простоя нежелательно. Если я хочу настроить репликацию, есть ли возможность сделать это без серьезных простоев?

Облачные решения не подходят.

«Я предполагаю, что большинство проблем возникло из-за сочетания таблиц MyISAM и InnoDB, но я не мог определить проблему со 100% точностью». - Мы используем репликацию Master - 3 Slaves без каких-либо проблем, с сочетанием таблиц InnoDB и MyISAM и более 100 ГБ данных без проблем с синхронизацией. Думаю, у вас могут быть разные причины проблем с синхронизацией.

Madhur Bhaiya 05.10.2018 09:52

«Одна из проблем также в том, что размер баз данных составляет около 100 ГБ, и время простоя нежелательно. Если я хочу настроить репликацию, есть ли какой-нибудь вариант сделать это без серьезных простоев?» Зачем тебе простои. Просто возьмите дамп мастера в фоновом режиме (это вызовет некоторую временную замедленность); затем настроить ведомое устройство отдельно, используя дамп.

Madhur Bhaiya 05.10.2018 09:53

Но разве мне не нужно блокировать таблицы для дампа, чтобы я мог проверить позицию бинлога?

Sigismund 05.10.2018 15:19

Почему я думаю, что проблема была в механизме хранения: у нас было несколько часов простоя на ведомом устройстве из-за принудительного отключения, и я подозреваю, что ведомое устройство находилось в середине транзакции. Таким образом, запросы InnoDB были возвращены, а запросы MyISAM прошли. Могу ошибаться, но на тот момент это звучало как наиболее логичная причина.

Sigismund 05.10.2018 15:24

Пожалуйста, не отправляйте кросс-посты.

Rick James 16.10.2018 02:31
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
37
0

Другие вопросы по теме