Программа для бэкапа и восстановления файлов фронтола и firebird
ВАЖНО! Перед началом восстановления убедитесь что все пользователи отключены от сервера и сделайте копию файла базы данных. Если нет доступа ко всем компьютерам в сети на которых запущены приложения подключенные к базе данных, то на сервере запретите (сделайте неактивным) сетевое подключение или просто достаньте сетевой кабель из розетки на системном блоке. Подождите несколько минут пока сервер не закроет все неактивные коннекты и перезагрузите операционную систему.
Войдите в каталог Bin в папке, куда был установлен сервер Interbase/Firebird/Yaffil [1] . Для того, чтобы не работать с "голым" окном командной строки, рекомендуется использовать любую файловую утилиту вроде Far или Total Commander.
Проверим базу данных на наличие повреждений:
вместо gdbase.gdb укажите полный путь к своему файлу базы данных (хорошая идея: для того чтобы не обременять себя вводом длинного пути, скопировать файл базы данных непосредственно в каталог BIN). Имя сервера указывать не надо!
Если утилита отработала и не выдала ничего на экран, то с базой все нормально.
Проверим, исправились ли все повреждения:
Если повреждения остались, то запишем информацию в Bak-файл, а потом восстановим в другой новой базе данных. Для этого последовательно выполним команды:
Здесь применены следующие ключи:
- -b -- создавать архивную копию базы;
- -v -- выводить на экран подробный лог;
- -ig -- игнорировать ошибки в данных;
- -g -- запретить сборку мусора при чтении из базы.
Обратите внимание, что при указании имени базы данных необходимо указать имя сервера и через двоеточие полный путь к файлу базы данных на сервере (обратите внимание, что если вы даже скопировали файл базы данных в одну папку с утилитой резервного копирования все равно необходимо указать полный путь к файлу). При указании имени архива следует указать только полный путь к файлу без указания имени сервера.
Спасти базу можно следующим образом: сначала восстановить ее без внешних ссылок (индексов) с помощью команды:
Затем, с помощью любой оболочки, например IBExpert, один за одним активизировать внешние ключи с целью выявить поврежденные таблицы. По мере выявления следует, либо удалить записи которые содержат ссылки на несуществующие записи, либо добавить несуществующие записи, либо обнулить ссылки. Здесь, хорошим подспорьем может стать наличие пусть и устаревшего, но неповрежденного архива этой же базы.
Если база повреждена настолько, что одной деактивации индексов недостаточно, то можно попробовать ключи -n (отключение проверок целостности данных) и -o (комит данных после каждой таблицы при восстановлении).
Пример команды с вышеупомянутыми ключами:
Как и в предыдущем случае, после разархивирования базы и ручного восстановления целостности данных базу следует еще раз сархивировать и восстановить из архива уже с обычным набором ключей.
Подскажите, пожалуйста, можно ли и как поднять базу с бэкапа в другом каталоге на этой же машине? Мне это нужно для того, чтобы пользоваться БД в разрезе определенного дн, чтобы я мог на нет проводить различные тесты, ибо на рабочей БД как-то боязно.
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Восстановление базы из метадаты
Всем привет. Дело в следующем: есть база, которая почти что полностью упала. после долгой пляски с.
Восстановление (RESTORE) не всей базы, а нескольких таблиц из бэкапа
Может кто знает, реально ли это сделать в MS SQL Server 2000? в Оракле 9-ке ресторить из бэкапа.
Восстановление бэкапа
Всем привет! Ребят, я никогда не работал с дампом и возникла проблема при восстановлении бд из.
Восстановление данных из бэкапа
Хочу восстановить сайт из бэкапа хостинга, и файлы и базу данных. На сайте есть действующее.
Задам глупый вопрос, но практика показала, что не надо бояться задавать глупые вопросы..
Моя база лежит в c:\BD
хочу тестовую поднять в c:\TST
правильно ли будет?
gbak -c С:\TST\e.gbk C:\TST\e.gdb
или я могу зайти в каталог С:\TST и там запустить
gbak -c e.gbk e.gdb
?
Я заметил, что в бэкапе сохраняются пути в бд.
Запуск команды выше не испортит рабочую бд, или не затронет как-нибудь?
ключ -c не затирает существующие базы (создает только если новые)
ключ -c появился не так давно. В древнющей версии 5 его не было. лучше всегда указывать полные пути, не надеясь на текущий каталог.
ключ -c не затирает существующие базы (создает только если новые)
ключ -c появился не так давно. В древнющей версии 5 его не было. Значит, запускаю
gbak -c С:\TST\e.gbk C:\TST\e.gdb
и у меня поднимется новая база, которая никак не затронет рабочую (в том смысле, что не удалит)? Никаких айпишников не надо прописывать при запуске этой команды?
Почему так много уточняю, потому что заметил, что в gbk прописаны альясы самой базы, которую бэкапишь. Я ее прочитал, но сопоставив с предпоследней, решил задать уточняющий вопрос.
Потому что статья на самом деле мне не помогла, и не ответила на мои вопросы: можно ли и как восстановить бд из резервной копии в другом каталоге, не затронув рабочую БД на том же сервере?
А вы мне отвечаете, что ключ -c мне не подходит.
Что тогда подходит? Вам нужно использовать ключ -r
Если один файл указывает на бекап, а второй - на новый файл, то старую БД вы по определению не можете повредить. Вам нужно использовать ключ -r
Если один файл указывает на бекап, а второй - на новый файл, то старую БД вы по определению не можете повредить.
Будь у меня ваш опыт. Когда нет опыта - нет уверенности.
Значит
1)
gbak -r С:\TST\e.gbk C:\TST\e_tst.gdb (например, по-другому будет бд называться)
?
2)
Нужно ли к пути прописывать айпишник машины или сервера?
и вообще насколько это необходимо?
>Нужно ли к пути прописывать айпишник машины или сервера?
в этом нет необходимости, если вы делаете всё на одной машине.
>gbak -r С:\TST\e.gbk C:\TST\e_tst.gdb
добавить еще ключи с логином/паролем и вперед.
я бы только не стал использовать расширение .gdb для БД. Хотя к Win2000 этот случай вроде не относится.
>Нужно ли к пути прописывать айпишник машины или сервера?
в этом нет необходимости, если вы делаете всё на одной машине.
>gbak -r С:\TST\e.gbk C:\TST\e_tst.gdb
добавить еще ключи с логином/паролем и вперед.
я бы только не стал использовать расширение .gdb для БД. Хотя к Win2000 этот случай вроде не относится.
Поставил сервер на ХР, восстановил базы с бэкапа. Вроде работает.
На XP: System Properties | System Restore | Turn off System Restore on all drives.
либо убрать из списка расширение gdb, отредактировав файл
на XP: $WINNT$\system32\Restore\filelist.xml
на Me: . (примерно аналогичный, точное имя данного файла на ME не указано)
Или просто-напросто изменить расширение файла базы данных, на такой, для которого указанная функциональность не работает (например, для баз InterBase начиная с 7.0 рекомендуется расширение *.ib, только по указанной выше причине).
Попробовать бесплатноВерсия 8.3.2 от 1 ноября 2021. 112 MB
30-дневный полнофункциональный пробный период
Преимущества Handy Backup
- Широкий выбор устройств хранения данных, включая локальные и USB диски, NAS, FTP и различные облачные сервисы, такие, как Amazon S3 и Яндекс.Диск;
- Сохранение исходного формата данных при копировании, что делает возможным использование данных, взятых прямо из резервных копий;
- Множество предлагаемых источников данных, позволяющие объединить в рамках одной задачи бэкап Firebird и любой другой информации.
- Полный набор функций резервного копирования, включая сжатие, шифрование, запуск по времени или при подключении связанного устройства, и т.д.;
- Большой набор управляющих функций, включающий в себя использование программы в качестве службы Windows и уведомление пользователей по почте о ходе задач;
С помощью этих и многих других возможностей администратор или пользователь СУБД Firebird может создать сколь угодно сложную стратегию бэкапа и восстановления Firebird, в соответствии с общими принципами резервного копирования серверных данных.
Рекомендуемое решение
2900 ₽ за лицензию
Handy Backup Professional
Решение для бэкапа баз данных Firebird и любых других данных уровня рабочей станции. Предоставляется бесплатный пробный период на 30 дней!
Как выполнить резервное копирование баз данных Firebird с Handy Backup
Handy Backup использует драйвер ODBC для создания резервной копии Firebird. Возможности конкретного драйвера ODBC полностью определяют, может ли Handy Backup выполнить горячий бэкап без остановки СУБД.
- Выберите вашу базу данных Firebird в качестве источника данных.
- Продолжайте создавать задачу резервного копирования как обычно (за детальными инструкциями обратитесь к Руководству пользователя).
Такая задача будет автоматически создавать резервную копию Firebird при вызове. Вы можете настроить задачу на повторение через определённый промежуток времени, производить резервное копирование базы данных Firebird при подключении диска USB или вручную.
Восстановление базы Firebird
Вы можете выполнить восстановление Firebird с помощью задачи восстановления. Создающейся точно тем же способом, что и задача резервного копирования. Синхронизация Firebird достигается за счёт автоматического восстановления базы данных в новое место.
Попробовать бесплатноВерсия 8.3.2 от 1 ноября 2021. 112 MB
30-дневный полнофункциональный пробный период
Программа резервного копирования Firebird под названием GBAK поставляется в комплекте с СУБД. Это утилита для командной строки, требующая от пользователя некоторых познаний и навыков. В ней нет средств автоматизации, но она может быть встроена в командный файл.
Несмотря на то, что утилита GBAK может быть использована для некоторых задач, Handy Backup зарекомендовала себя как более эффективная программа для резервного копирования баз данных Firebird и их восстановления.
В режиме бекапа source это путь к существующей БД (может включать имя сервера и\или альяс), а target файл резервной копии, это также может быть специальное устройство например /dev/stdout (для отправки резервной копии в STDOUT) или /dev/st для отправки на кассету.
В режиме востановления source это существующая резервная копия (или специальное устройство /dev/stdin,/dev/st), а target путь к БД (может включать имя сервера и\или альяс).
Все опции могут быть сокращены.
COMMON OPTIONS
-user username Пользователь для подключения к БД.
-ro[le] Роль подключения к БД
-pas[sword] password Пароль подключения к БД
-se[rvice] Использовать сервисный менеджер при работе с БД. (Позволяет работать с security2.fdb)
-v[erify] Выводить отчет о каждом действии.
-z Сообщить полную версию.
BACKUP OPTIONS
-b[ackup_database] Сделать резервную копию.
-co[nvert] Конвертировать внешние (external) таблицы в обычные. Без данной опции внешние таблицы игнорируются при резервном копировании.
-fa[ctor] blocking factor (древний параметр, использовавшийся при бэкапе на магнитные ленты)
-g[arbage_collect] не производить сборку мусора. Рекомендуемая опция.
-ig[nore] Игнорировать записи не прошедшие контрольную сумму. Эта опция должна использоваться только при поврежденной БД.
-l[imbo] Игнорировать транзакции в limbo. Изменения, произведенные незавершенными транзакциями двухфазного коммита, будут игнорироваться.
-m[etadata_only] Сохранять только метаданные.
-nt Использовать не переносимый формат файла. По умолчанию формат «переносимый». Под переносимостью понимается перенос с одной аппаратной платформы на другую (с разной последовательностью младших и старших байт в целых числах).
-ol[d_descriptions] Сохранять описания объектов в старом (InterBase 3.3) стиле.
RESTORE OPTIONS
-c[reate_database] Восстановить БД. Если файл БД существует, будет выдана ошибка.
-r[eplace_database] Восстановить БД, с перезаписью существующего файла БД. Начиная с Firebird 2.0 требуется указание или полного имени параметра (-replace_database), или параметра o[verwrite] (-r o).
-bu[ffers] num Установить размер кэша, который будет использовать сервер для этой БД (в этом случае опция конфига DefaultDbCachePages будет игнорироваться).
-e[xpand] Отключает компрессию RLE для строк.
-i[nactive] Не активировать индексы (все).
-k[ill] Не восстанавливать теневую копию.
-mo[de] access Востановить БД с заданным типом доступа. Возможные варианты read_only и read_write.
-n[o_validity] Восстанавливать БД без проверки constraints.
-o[ne_at_a_time] Делать commit после восстановления каждой таблицы.
-p[age_size] num Задать новый размер страницы. Возможные значения 1024, 2048, 4086, 8192, 16384. С Firebird 2.0 размеры страницы 1024 и 2048 игнорируются, база создается всегда с размером страницы не менее 4096 байт.
-use_[all_space] Не оставлять резервное место на страницах данных. Рекомендуется только для read_only баз данных.
Востановление многофайловой БД
многофайловые базы данных - атавизм, использовать не рекомендуется для Firebird 1.0 и выше.
При востановлении многофайловой БД target будет выглядеть так : file_1 pages_1 file_2 pages_2 … file_N-1 pages_N-1 file_N
Каждый pages_n показывает как много страниц будет помещенно в файл file_n. В последний файл (без указания размера) будут помещенный все страницы которые не поместились в файл file_N-1. Помните что pages_n измеряется в страницах, а не в байтах. и зависит от размера страницы.
Например вам надо разбить БД на куски по 2Гб. Если размер страницы 8192, то каждый файл может иметь максимум 2*1024*1024*1024/8192 = 262144 pages.
Читайте также: