|
|
|||||||||||||||||||||||||||||
|
Резервное копирование и последующее восстановление базы данных InterBase/FireBirdИсточник: delphiplus Волох Д.А.
Резервное копирование и восстановление из копии является одним из самых важных процессов в администрировании базы данных InterBase/FireBird. Резервное копирование - один из самых надежных способов сохранить и предохранить свои данные от потери или порчи. Процесс резервного копирования также делается в профилактических целях, для увеличения производительности базы данных - это достигается за счет того, что в момент копирования происходит считывание последних версий всех записей, старые же версии в копию никогда не попадают. Здесь важно заметить, что недостаточно одного лишь резеврного копирования, нужно иногда проверять восстанавливаемость базы данных из резеверной копии, потому что бывают случаи, что база данных работает в режиме 24*7, то есть 24 часа в сутки и 7 дней в неделю, backup базы данных может происходит нормально, но в силу определенных причин база данных не восстанавливается, последствия могут быть плачевными для всех данных. Причины могут следующими: в базе данных есть ограничения, такие как NOT NULL поля, внешние ключи, уникальность, а существующие данные в базе данных этим ограничениям не соответствуют по каким-либо причинам. Такие данные могут мирно существовать до тех пор, пока они не будут задействованы в операциях редактирования или удаления. В процессе восстановления "прощупываются" все данные - в первую очередь создаются ограничения и затем заливаются данные, в этот момент и происходит ошибка. Для профилактики следует восстанавливать базу данных в тестовую, и лишь при успешном завершении процесса восстановления, делать Restore в текущую базу. В случае возникновения ситуации с поврежденным файлом backup"а следует найти в базе данных несоответствия и исправить их. Рассмотрим два способа резервирования/восстановления базы данных с помощью утилиты gbak и компонентов FIBPlus: 1. Утилита gbak с соответствующими ключами позволяет совершать резервирование и восстановление базы данных, синтаксис выполнения операций следующий:
Следует отметить один нюанс, если запустить утилиту gbak без ключа -B или -R/-C, то будет начат процесс резервного копирования базы данных. 2. С помощью компонентов FIBPlus можно также программно запускать процессы резервирования и восстановления базы данных. Для резервирования базы данных использовался компонент TpFIBBackupService, для начала процесс нужно заполнить определенные поля в компоненте: fibBackUp.DatabaseName := edBackUpPath.Text; // указываем путь к базе данных Результат бекапа будет выведен в Memo-поле: На следующем рисунке представлена форма с помощью, которой можно осуществит восстановление базы данных: Для процесса restore использовался компонент TpFIBRestoreService, в листинге показаны часть настроек, которые необходимо установить перед запуском процесса восстановления.
//восстанавливаем базу данных в новый указанный файл Результат восстановления представлен на следующем рисунке: Ссылки по теме
|
|