Резервное копирование

Материал из Такси Диспетчер
Перейти к: навигация, поиск

Описание


Резервное копирование и восстановление базы данных
В программе предусмотрена функция сохранения базы данных в резервную копию и механизм восстановления базы из резервной копии. При
создании резервной копии в ней сохраняется полностью все содержимое базы данных. В дальнейшем из резервной копии может быть восстановлено
все содержимое базы на момент ее резервирования. Таким образом всегда имеется возможность отката базы к определенному состоянию. Как
резервное копирование, так и восстановление базы данных выполняются с помощью утилиты bin\backup.exe, входящей в стандартный дистрибутив
программы.

Резервное копирование базы данных


Данная функция доступна непосредственно из меню Администрирование|Резервное копирование базы. Альтернативный способ - запустить утилиту
резервного копирования непосредственно из операционной системы.

При запуске bin\backup.exe (без параметров) появляется окно:


Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения



Вызов окна "Резервное копирование базы данных" из системы


При запуске с параметром bin\backup.exe -backup или из главного меню программы Администрирование|Резервное копирование базы появляется окно:


Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения



Вызов окна "Резервное копирование базы данных" из программы

Окно содержит поле редактирования пути, который будет использоваться при записи резервной копии. По умолчанию поле недоступно, а резервную
копию предлагается сохранять в каталог по умолчанию. При необходимости установить альтернативный путь, снимите "галочку" Путь по умолчанию,
при этом поле редактирования пути станет активным, также станет доступна кнопка вызова дерева каталогов.

При нажатии на кнопку Начать выполняется сохранение резервной копии базы, после чего в случае успешного завершения выводится сообщение с
указанием полного пути к резервной копии.

При сохранении резервной копии по умолчанию используется каталог backup\<дата сохранения >\, при этом имя файла резервной копии имеет
формат текущего времени (ЧЧММСС). Пример пути по умолчанию:

C:\Program Files\F-Group\Taxi\backup\07.08.2004\171538.fbk - для версии Firebird

C:\Program Files\F-Group\Taxi\backup\07.08.2004\171538.sql - для версии MySQL

в указанных примерах резервные копии были созданы 07.08.2004 в 17:15:38.

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

Существует возможность Автоматического резервирования базы данных, чтобы открыть настройки автоматического резервирования, нужно нажать
на кнопку Настройка. Откроется окно:


Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения



Вызов окна "Резервное копирование базы данных" из программы


Здесь находятся следующие опции:

* флажок Запускать вместе с Windows - устанавливает режим запуска утилиты резервироания при старте Windows
* флажок Сворачивать в трей при запуске - значок программы будет отображаться в системном трее
* флажок Выполнять автоматическое резервирование - активизирует режим автоматического резервирования и активизирует поля - каждые х часов и с какого момента
* флажок Использовать нестандартные пароли - позволяет установить логин и пароль если они отличаются от стандартных.
* флажок Сохранять резервные копии в каталог по умолчанию - активизирует режим сохранения копий в каталог установленный по умолчанию, обычно это - ":\Program Files\F-Group\Taxi\backup\.."
* флажок Сохранять резервные копии по указанному пути - активизирует режим сохранения копий в каталог установленный в поле ниже

Восстановление базы из резервной копии


Восстановление базы рекомендуется выполнять при выключенной программе Такси-Диспетчер.

Для выполнения данной функции необходимо запустить утилиту резервного копирования непосредственно из операционной системы.

При запуске bin\backup.exe (без параметров) в поле Действие следует выбрать пункт Восстановление. При этом окно утилиты выглядит следующим образом:


Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения



Выбор режима восстановления базы данных

При запуске с параметром bin\backup.exe -restore утилита запускается сразу в режиме восстановления:


Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения



Запуск утилиты в режиме восстановления


Для восстановления необходимо:

* указать путь к файлу резервной копии, из которого будет производится восстановление базы
* нажать кнопку Начать

После успешного завершения операции появится сообщение о выполненном восстановлении.

Вопросы

Вопрос 1: Резервное копирование\восстановление произошло с ошибкой. Что проверять?

Ответ: Проверьте

1) путь, куда Вы создаете файл резервной копии,

2) место на диске, куда Вы создаете файл резервной копии,

3) Целостность базы данных

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

Вопрос 2: Как выполнить резервное копирование без утилиты?

Ответ: средствами любого редактора или средстами самого MySQL. Утилита резервного копирования выполняет копирование выполнением командной строки:

mysqldump -u fgstaxiroot --password="fgstaxirootpwd" -Q --add-drop-table --skip-comments -r "backup.sql" taxi1
где 
fgstaxiroot - логин пользователя на БД
fgstaxirootpwd - пароль пользователя на БД
backup.sql - имя файла
taxi1 - имя базы такси

Соттветственно восстановление будет выполняться

mysql -u fgstaxiroot --password="fgstaxirootpwd" --execute="source backup.sql" taxi1

Вопрос 3: Как настроить запуск резервного копирования Windows как сервиса?

Ответ: Для этого есть например вот этот вариант Настроить резервное копирование как сервис

Вопрос 4: По определенным причинам мы работали на версии базы, теперь хотим внести список заказов в нашу текущую базу. Это возможно?

Ответ: Нет. Так как должна соблюдаться уникальная номерация заказов, смен водителей и т.д. Если Вам необходимы данные во второй базе, тогда обычно:

1. Создаем новую базу такси в mysql
2. Подключаем к ней резервную копию - настройка имени базы в database.ini
3. Восстанавливаем ее утилитой backup.exe
4. Работаем с ней - снимаем необходимые отчеты и архивы. Если рабочее место необходимо использовать для старой базы - редактируем имя используемой базы в database.ini и перезапускаем программу.

Вопрос 5: Утилита резервного копирования запрашивает путь к mysql?

Ответ: Утилита резервного копирования просто выполняет консольные команды и может быть запущена только на сервере. Поэтому убедитесь, что у Вс коректно установлен mysql - в противном сулчае выполняйте резервное копирование через консольную команду - смотрите выше ответ и вопрос.

Вопрос 6: Утилита не восстанавливает всю базу, а только часть?

Ответ: Сначала необходимо проверить, целостная ли сама база данных. Вручную это проверить можно открыв файл *.sql и убедившись, что последняя восстанавливаемая таблица - words. Если нет - ищите целый файл резервной копии.

Если файл целый, тогда ошибка находится в файле резервной копии.

Вы можете действовать по 2 вариантам:

  • Найти причину ошибки восстановления - для этого нужно попробовать восстановить файл вручную как описано в вопросе 2 и посмотреть код ошибки, который даст консольная утилита резервного копирования. После этого необходимо устранить эту ошибку.
  • Выполнить восстановление не целый файлом, в по 1 запросу. Для этого:
Запустить mysql.exe
Выполнить подключение к базе данных: connect taxi1 (база по умолчанию)
Выполнить скрипт: source c:\taxi\backup.sql - файл будет выполнен по одной команде, те комманды которые содержат ошибку будут проигнорированы.

Пример ошибки - резервная копия делалась с некоректной базы данных и существуют 2 записи с одинаковым уникальным номером в базе -соответственно восстановление выдает ошибку и останавливается.

Вопрос 7: Файл резервной копии очень большой - как его редактировать?

Ответ: найти другой редактор, который позволяет работать с большими файлами (мы используем www.farmanager.com - редактируем до 750 Мб). Или использовать утилиту для разделения файлов (например http://rus.altarsoft.com/split_files.shtml). Разделив Вы сможете

Вопрос 8: не находит пусть к mysql.

Ответ: Программа автоматически ищет файл my.ini (в каталоге windows). В нем должен быть прописан путь к БД:

[mysqld]
basedir =С:\MySQL

Если этого каталога нет, или нет файла my.ini - создайте его или переустановите БД

Вопрос 9: Утилита пишет "Слишком большой файл невозможно сделать бекап".

Ответ: В Windows есть ограничение на максимальный размер файла, 2ГБ. Чтобы сделать бекап, нужно очистить старые данные с помощью утилиты очистки таблиц Утилита очистки и оптимизации базы данных.