вторник, 18 января 2011 г.

Бекапы базы Testlinkа

Если Вы используете Testlink для хранения тестов, то как можно организовать сохранность самой базы Testlink?
Речь в сегодняшней заметке пойдет о том как делать ежедневные бекапы mysql базы данных Testlinkа под windows. Для бекапов можно использовать утилиту mysqldumpНадо написать батник, который будет использовать эту утилиту. Например, так:


rem Снятие бекапа с помощью mysqldump утилиты
C:\WebServers\usr\local\mysql5\bin\mysqldump.exe -u root testlink --character-sets-dir=C:\WebServers\usr\local\mysql5\share\charsets > C:\backups\testlink.sql
rem Переменование бекапа. К названию добавляется сегодняшняя дата
for /F "delims=. tokens=1-3" %%a in ('echo %date%') do copy testlink.sql "testlink_%%c%%b%%a.sql"
rem Копирование и переименование бекапа на другой сервер
for /F "delims=. tokens=1-3" %%a in ('echo %date%') do copy testlink.sql "\\<сервер>\testlinkbackups\testlink_%%c%%b%%a.sql"
rem Удаление скопированного бекапа после переименования
del testlink.sql

Запуск батника настраивается через task sheduler.  Скажем каждый день в 23:00. Теперь давайте разберем каждую строчку нашего батника.
1. Основную работу делает строка обращения к нашей утилите:
mysqldump.exe -u root testlink > C:\backups\testlink.sql
Делается дамп базы, и сохраняется во "временный" файл testlink.sql в заранее созданной папке C:\backups.
Под windows могут возникнуть проблемы с кодировками. Для этого есть специальный ключик, который указывает где лежат настройки кодировок для mysql:
--character-sets-dir=C:\WebServers\usr\local\mysql5\share\charsets
2. Бекапы создаем каждый день. И если сохранять их в файле с одинаковым названием, то бекапы будут перезатираться. Чтобы этого не происходило создаем копию бекапа, и к названию добавляем дату создания бекапа. Тогда будут создаваться файлы с примерно таким названием: testlink_20110118.sql.
3. Хранить бекапы только в одном месте плохо, поэтому для надежности делаем копию еще на какой-нибудь <сервер> в соответствующую папку. Строчку можно повторить еще несколько раз, смотря сколько копий и где Вам необходимы.
4. Удаляем "временный" файл testlink.sql после всех переименований и необходимых копирований.

3 комментария:

  1. Да уж, бедные тестировщики, использующие TestLink... Я со своей командой для создания тестовой документации, хранения ее и выполнения тестов использую DEVPROM, в котором резервное копирование выполняется автоматически.

    Нужно лишь периодически перекладывать архивы на болванки

    ОтветитьУдалить
  2. Зато у testlink код открытый )

    ОтветитьУдалить
  3. Ну так причем тут testlink, просто бакапим mysql.
    Неплохо бы проверить наличие файла и прав.

    ОтветитьУдалить