Manual:Backing up a wiki/ru

Регулярное выполнение резервного копирования является обязательным для всех систем. эта статья расскажет о том как выполняется резервное копирование для типовой 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 позволяют экономить дисковое пространство.

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

Кодировка
Увидеть какая используется кодировка можно следующим методом  последняя строка будет включать в себя значение 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</tt>.

Пример: /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</tt>, AdminSettings.php</tt>, файлы изображений (включая удаленные файлы), файлы тем и расширения)

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

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

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

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

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

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

Скрипты

 * неофициальный скрипт резервного копирования User:Duesentrieb: ; создает резервную копию всех файлов, дамп базы данных, xml дамп.
 * неофициальный скрипт резервного копирования User:Duesentrieb, изменен User:Kaotic
 * неофициальный скрипт резервного копирования Flominator: User:Flominator/Backup MW; создает резервную копию всех файлов и базы данных с возможной ротацией резервных копий.
 * неофициальный скрипт резервного копирования с веб интерфейсом mw_tools от Wanglong (allwiki.com); вы можете использовать его как для бэкапа вашей базы данных так и для восстановления ее.

Внешние ссылки

 * Siteground: MySQL Export: How to backup phpMyAdmin database