Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| 
                    repair [2014/05/26 20:28] sd  | 
                
                    repair [2020/04/07 16:18] (текущий) | 
            ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ''' | + | Восстановление поврежденной базы данных  | 
| - | Войдите в каталог Bin в папке, куда был  | + | <WRAP center round important 100%> | 
| + | ВАЖНО! Перед началом восстановления убедитесь что все пользователи отключены от сервера и сделайте копию файла базы данных. Если нет доступа ко всем компьютерам в сети на которых запущены приложения подключенные к базе данных, то на сервере запретите (сделайте неактивным) сетевое подключение или просто достаньте сетевой кабель из розетки на системном блоке. Подождите несколько минут пока сервер не закроет все неактивные коннекты и перезагрузите операционную систему. | ||
| + | </WRAP> | ||
| + | |||
| + | |||
| + | Войдите в каталог Bin в папке, куда был установлен сервер Firebird. Для того, чтобы не работать с " | ||
| Проверим базу данных на наличие повреждений: | Проверим базу данных на наличие повреждений: | ||
| - |  gfix -v -full -user SYSDBA -pas masterkey  | + | **'' | 
| вместо gdbase.gdb укажите полный путь к своему файлу базы данных (хорошая идея: для того чтобы не обременять себя вводом длинного пути, скопировать файл базы данных непосредственно в каталог BIN). Имя сервера указывать не надо! | вместо gdbase.gdb укажите полный путь к своему файлу базы данных (хорошая идея: для того чтобы не обременять себя вводом длинного пути, скопировать файл базы данных непосредственно в каталог BIN). Имя сервера указывать не надо! | ||
| Строка 13: | Строка 18: | ||
| Если есть повреждения, | Если есть повреждения, | ||
| - |  gfix -mend -full -ignore -user SYSDBA -pas masterkey  | + | **'' | 
| Проверим, | Проверим, | ||
| - |  gfix -v -full -user SYSDBA -pas masterkey  | + | '' | 
| Если повреждения остались, | Если повреждения остались, | ||
| - |  gbak -b -v -ig -g -user SYSDBA -pas masterkey  | + | '' | 
| Здесь применены следующие ключи: | Здесь применены следующие ключи: | ||
| - | * -b -- создавать архивную копию базы; | + |      | 
| - | * -v -- выводить на экран подробный лог; | + | -v -- выводить на экран подробный лог; | 
| - | * -ig -- игнорировать ошибки в данных; | + |     -ig -- игнорировать ошибки в данных; | 
| - | * -g -- запретить сборку мусора при чтении из базы.  | + |     -g -- запретить сборку мусора при чтении из базы.  | 
| - |  gbak -c -v -user SYSDBA -pas masterkey  | + | '' | 
| - | + | ||
| - | Обратите внимание, | + | |
| При серьезных повреждениях базы данных в некоторых таблицах могут пропасть записи из-за чего не восстановятся внешние ссылки на эти таблицы. Или наоборот, | При серьезных повреждениях базы данных в некоторых таблицах могут пропасть записи из-за чего не восстановятся внешние ссылки на эти таблицы. Или наоборот, | ||
| Строка 38: | Строка 41: | ||
| Спасти базу можно следующим образом: | Спасти базу можно следующим образом: | ||
| - |  gbak -c -i -user SYSDBA -pas masterkey  | + | '' | 
| - | Затем, с помощью любой оболочки, | + | Затем, с помощью любой оболочки, | 
| Если база повреждена настолько, | Если база повреждена настолько, | ||
| Строка 46: | Строка 49: | ||
| Пример команды с вышеупомянутыми ключами: | Пример команды с вышеупомянутыми ключами: | ||
| - |  gbak -c -i -n -o -user SYSDBA -pas masterkey  | + | '' | 
| - | + | ||
| - | Как и в предыдущем случае, | + | |
| - | + | ||
| - | ====Примечания==== | + | |
| - | < | + | Как и в предыдущем случае, | 
| + | Дополнительно о восстановлении базы можно почитать на сайте IBase.ru [[http:// | ||