Шел 2022 год… Я в своём познании Oracle EE и нахождении багов настолько преисполнился, что мне он стал скучен и не интересен. И взор пал на MySQL.
Я в качестве Oracle EE DBA
Все версии MySQL Server, MySQL InnoDB Cluster, включая последнюю 8.0.29, имеют проблемы целостности данных.
Вкратце, MySQL Server при старте не проверяет целостность данных. И если реплика кластера потеряла файл данных пользовательской базы данных или весь каталог пользовательской базы данных, то роль PRIMARY может быть назначена этой реплике.
Первая большая проблема в том, что если нарушена целостность данных сервера, то вы никогда не узнаете об этом, пока не обратитесь к этим данным. При этом не важно как мы потеряли данные: удалили файл таблицы руками или это сделал puppet по какой-нибудь маске или как-то еще. Очевидно, если при запуске MySQL Server нет проверки соответствия физического расположения файлов метаданным сервера, то нет никакой проверки повреждения файлов данных.
Вторая большая проблема в том, что механизм групповой репликации не работает должным образом. Он замечает отсутствие файлов на реплике и даже запускает механизм клонирования, но оно не работает.
Третья большая проблема вытекает из двух предыдущих. Вы можете назначить роль PRIMARY реплике с нарушенной целостностью данных.
1 мая 2022 года Oracle подтвердил 2 бага, которые связаны с данными проблемами.
Bug #34126233 Cluster Node working but Tablespace is missing for table (incremental recovery)
Bug #34126241 Clone does not work if folder manually removed from destination
Далее, я расскажу как воспроизвести проблему.
Обсуждение закрыто