4.4 Создание резервных копий с распределённой файловой системой (DFS) или сетью хранения (SAN)
Когда администраторы системы пытаются настроить MySQL и MySQL Enterprise Backup в среде, использующей распределённую файловую систему (DFS) или сеть хранения (SAN), сервер MySQL, каталог данных сервера, MySQL Enterprise Backup и каталог резервных копий могут оказаться на разных физических серверах. В этом случае операции mysqlbackup могут быть затронуты. Операция, наиболее подверженная негативному влиянию, — это горячая резервная копия, успех которой зависит от:
Каждая страница файла данных копируется последовательно, то есть все байты в странице соответствуют одному и тому же LSN.
Ни одна скопированная страница не старше момента, отмечающего начало временного периода, который резервная копия должна охватывать.
Журнал переигрывания (redo log) копируется последовательно, то есть копируется непрерывный фрагмент журнала переигрывания, который включает все изменения с начала временного периода, который резервная копия должна охватывать, до окончания операции резервного копирования. Каждый блок скопированного журнала переигрывания должен быть последовательным.
Условие 1 легко выполняется с большинством DFS или SAN с приемлемой производительностью. Однако условие 2 может оставаться невыполненным, даже если условие 1 выполнено: например, mysqlbackup может скопировать все страницы табличного пространства правильно, за исключением одной страницы, для которой mysqlbackup включил в копию старую версию. Если LSN этой старой версии страницы меньше LSN, первой встреченной mysqlbackup в начале процесса резервного копирования, полученная резервная копия будет некорректной. Этот пример показывает, что mysqlbackup может иметь проблемы с выполнением горячей резервной копии, если не может увидеть записи в файловой системе в правильном порядке, то есть в том порядке, в котором их выполнил сервер.
Что касается условия 3, в отличие от страниц файлов данных, блоки журнала переигрывания записываются последовательно, что означает, что условие 3 легче выполнить, чем условия 1 и 2. Однако, если mysqlbackup достигнет наибольшего LSN в скопированных страницах файлов данных, прежде чем встретит конец журнала переигрывания, резервная копия завершится с ошибкой. Ошибка также возникает, если mysqlbackup прочитает повреждённый блок журнала в любой момент во время копирования журнала переигрывания. Обе эти ошибки могут возникнуть, если mysqlbackup не видит такой же истории состояний файловой системы, как сервер MySQL.
Поэтому, чтобы использовать mysqlbackup с DFS или SAN, важно убедиться, что mysqlbackup видит все записи в файловой системе в том же порядке, что и сервер MySQL. Это условие наиболее вероятно выполнится, когда mysqlbackup и сервер MySQL работают на одном узле сервера, и маловероятно, что оно всегда выполняется в противном случае.
© 2025 Oracle
Licensed under the GPLv2 License.