Сейчас 126 заметки.

Как выполнить резервное копирование MediaWiki

Материал из ЗАметки

Регулярное выполнение резервного копирования является обязательным для всех систем. эта статья расскажет о том как выполняется резервное копирование для типовой MediaWiki системы.

Общие сведения[править]

MediaWiki хранит данные в двух основных хранилищах:

База данных
Страницы и их содержимое, пользователи и их свойства, метаданные, индекс поиска и пр.
Файловая система
Файлы конфигурации, файлы тем, расширения, изображения (удаленные изображения).

Переведите MediaWiki в режим read-only прежде чем создать резервную копию - смотрите раздел Manual:$wgReadOnly. Это будет гарантией того, что все ваши резервные копии непротиворечивы (тем не менее, некоторые из установленных дополнений могут записывать данные в базу).

База данных[править]

Большинство критических данных wiki хранится в базе данных, что, по сути, делает ее критическим компонентом вашей системы. Выполнять резерные копии БД можно различными инструментами.

MySQL dump tool является приложением коммандной строки и предназначено для создания файлов "дампов" для базы данных.

Пример команды которую вы можете запустить через crontab выглядит так

/usr/bin/nice -n 19 /usr/bin/mysqldump -u $USER --password=$PASSWORD $DATABASE -c | /usr/bin/nice -n 19 \
/bin/gzip -9 > ~/backup/wiki-$DATABASE-$(date '+%Y%m%d').sql.gz

Установите правильные значения для переменных $USER, $PASSWORD, $DATABASE. будет создан файл ежедневной копии базы данных. если вы сохраняете файлы и расширения таким образом то вы можете использовать метод предложенный здесь.


Если Вы хотите добавить задание сохранения базы в планировщик Cron через Cpanel, то вы должны экранировать символ "%"

/usr/bin/mysqldump -u $USER --password=$PASSWORD $DATABASE -c |/bin/gzip > ~/backup/wiki-$DATABASE-$(date '+\%Y\%m\%d').sql.gz

В противном случае, Вы получите ошибку:

/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file


Таблицы[править]

В случае если фактор скорости восстановления для вас является основным резервные копии отдельных таблиц tables позволяют экономить дисковое пространство.

Обратитесь в список рассылки - раздел по данному вопросу.

Кодировка[править]

Увидеть какая используется кодировка можно следующим методом SHOW CREATE TABLE text; последняя строка будет включать в себя значение DEFAULT CHARSET.

Если последняя строка не включает в себя DEFAULT CHARSET и вы уверены что никто не изменял кодировку сервера то wiki база данных использует кодировку "по умолчанию". Команда STATUS позволит получить значение кодировки по умолчанию в выводе. смотрите секцию Server characterset:. вот пример:

mysql> status
- - - - - - - - -
mysql  Ver 12.22 Distrib 4.0.20a, for Win95/Win98 (i32)

Connection id:          13601
Current database:
Current user:           root@localhost
SSL:                    Not in use
Server version:         4.0.20a-nt
Protocol version:       10
Connection:             localhost via TCP/IP
Client characterset:    latin1
Server characterset:    latin1
TCP port:               3306
Uptime:                 27 days 4 hours 58 min 26 sec

В данном случае используйте опцию --default-character-set=latin1 в команде mysqldump.

Пример:

/usr/bin/nice -n 19 /usr/bin/mysqldump -u $USER -p$PASSWORD --default-character-set=$CHARSET $DATABASE -c \
| /usr/bin/nice -n 19 /bin/gzip -9 > ~/backup/wiki-sql-$(date '+%a').sql.gz

Файловая система[править]

MediaWiki сохраняет свои компоненты (файлы конфигураций LocalSettings.php, AdminSettings.php, файлы изображений (включая удаленные файлы), файлы тем и расширения)

Лучшим методом для сохранения этих данных является их сжатие в архив, например .tar файл. На Windows системах можно использовать Winzip или 7-zip.

XML dump[править]

Для дополнения дампа базы данных рекомендуется выполнять XML дапм. В XML дамп входит содержимое wiki-страниц и всех их ревизий (информация о логинаx пользователей, журналы, метаданные изображений в xml дампе не хранятся).

XML дампы независимы от структуры базы данных, и могут быть импортированы в новые версии MediaWiki. Вероятные проблемы при переносе данных или миграции wiki (например проблемы кодировки) можно решить при использовании XML дампов, так же они могут понадобиться в случае если восстановление БД из дампа созданного средствами mysqldump невозможно

XML дампы создаются инструментом командной строки dumpBackup.php, расположенный в каталоге maintenance. инструмент имеет дополнительные опции и вызывается php dumpBackup.php без аргументов для вывода всех доступных опций.

Если при попытке использования dumpBackup.php возникают проблемы обратитесь в раздел AdminSettings.php для исправления ошибки.

Для импорта XML-дампа в wiki используйте инструмент коммандной строки importDump.php. для небольшого набора данных вы можете использовать Special:Import через браузер (по умолчанию эта функция доступна только sysop группе). Альтернативой dumpBackup.php и importDump.php, является MWDumper, это быстрый инструмент требующий Java runtime environment. Для получения дополнительной информации посмотрите Manual:Importing XML dumps.