Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Восстановление сервера с помощью onbar и ISM

Итак, резервная копия DB-пространств и журналов, созданная с помощью onbar и ISM, у нас есть (в предыдущей статье мы создали ее на диске, в каталогах c:\tmp\bardata и c:\tmp\barlog.). Достаточно ли созданных там файлов для успешного восстановления в случае любого сбоя? Конечно, нет!

Что еще надо копировать...

В разделе "Which Administrative Files to Back UP?" руководства по резервному копированию Informix сказано, что для успешного восстановления в случае сбоя дисков, на которых находилось ПО Informix, или для восстановления данных на другой машине, необходимо, в простейшем случае, иметь также актуальную копию следующих административных файлов:

  • Файл параметров конфигурации сервера Informix, ONCONFIG.имя_сервера в каталоге %INFORMIXDIR%\etc.
  • Файлы аварийной начальной загрузки
    Для ISM - это файл ixbar.номер_экземпляра в каталоге %INFORMIXDIR%\etc.
  • Файл sm_versions в каталоге %INFORMIXDIR%\etc.
    В нашем случае он является копией стандартного, sm_versions.std, так что, копировать его не так уж обязательно - можно будет воссоздать после переустановки ПО сервера Informix, если понадобится.
  • Реестр SQLHOSTS.
    Его можно будет либо воссоздать вручную, либо предварительно экспортировать с помощью программы regedit.
  • Файл oncfg_имя_сервера.номер_экземпляра.
    Этот файл изменяется при каждом успешном запуске сервера или изменении конфигурации дискового компонента.
  • Файлы конфигурации и данных диспетчера хранения данных.
    Вот это действительно тонкий момент, требующий знания особенностей используемого диспетчера хранения данных. В случае ISM можно, конечно, копировать все содержимое каталога %ISMDIR%. Но, это будет несколько "избыточное" решение. По идее, содержимого каталогов %ISMDIR%\index, %ISMDIR%\mm и %ISMDIR%\res будет вполне достаточно.

Актуальность копии административных файлов означает, что входящие в нее файлы соответствуют моменту создания последней успешной резервной копии сервера в целом. Рекомендуется копировать эти административные файлы сразу же после успешного резервного копирования сервера с помощью onbar.

Постановка задачи

Итак, считаем, что мы полностью подготовились к восстановлению. У нас есть резервные копии всех необходимых административных файлов, а также резервная копия сервера в целом, созданная так, как было описано в предыдущей статье.

И тут на нашем сервер Informix произошел сбой. В результате сбоя стали недоступны все чанки всех DB-пространств. Для демонстрации я просто удалю каталог c:\IFMXDATA, в котором у меня созданы чанки всех DB-пространств.

c:\IFMXDATA>cd c:\

c:\>rmdir /s /q IFMXDATA

Чанков нет вообще. Мы "потеряли" все данные. Попытаемся запустить сервер из окна командной строки Informix:

C:\Informix>starts ol_creator

C:\Informix>onstat -m

Informix Dynamic Server Version 9.30.TC2     -- Initialization
 -- Up 00:00:06 -- 17280 Kbytes

Message Log File: C:\Informix\ol_creator.log

... 

16:10:40  Informix Dynamic Server Started.

Sun May 16 16:10:41 2004

16:10:41  Booting Language <c> from module <>
16:10:41  Loading Module <CNULL>
16:10:41  Booting Language <builtin> from module <>
16:10:41  Loading Module <BUILTINNULL>
16:10:46  Informix Dynamic Server Version 9.30.TC2
     Software Serial Number AAC#J415297
16:10:46  Cannot Open Primary Chunk
 'C:\IFMXDATA\ol_creator\rootdbs_dat.000', errno = 2

C:\Informix>onstat -
shared memory not initialized for INFORMIXSERVER 'ol_creator'

Как видите, сервер не запускается, поскольку не доступен, как минимум, первый чанк rootdbs. Это и будет исходная задача, которую предстоит решать.

Мы предполагаем, что ОС работает, все диски уже доступны, ПО сервера Informix установлено и все содержимое каталога %INFORMIXDIR% доступно. Сервер зарегистрирован как служба, хотя и не запускается. Предполагаем также, что в %ISMDIR% доступно содержимое подкаталога bin (это программы, обеспечивающие работу ISM), и подкаталогов index, mm и res (это файлы конфигурации и данных диспетчера хранения данных, которые мы копировали отдельно). Предполагаем, что все три службы ISM успешно запущены. Кстати, в процессе запуска они и создадут, при необходимости, недостающие подкаталоги %ISMDIR%.

Все последующие шаги по восстановлению системы в целом я и опишу далее. Вариантов восстановления может быть несколько - до момента времени, до определенного журнала, до момента, максимально близкого к моменту сбоя и т.п. Все они будут отличаться, по сути, только опциями, которые надо будет задать утилите onbar на конечном этапе восстановления.

Конечно, возможны сбои, в результате которых у нас ничего описанного выше тоже не будет. Например, компьютер, на котором работает сервер Informix, могут просто украсть. Тогда надо сначала привести (новую) систему к тому состоянию, которое описано выше, а именно:

  1. Установить необходимую версию ОС.
  2. Воссоздать устройства, на которых было установлено ПО Informix и размещались чанки.
  3. Установить ПО сервера Informix. Я предлагаю сразу и проинициализировать экземпляр сервера Informix с тем же именем, что и ранее работавший, в тот же каталог %INFORMIXDIR%, с минимальной стандартной конфигурацией. Это даст нам все необходимые пять служб Informix, включая три службы ISM, автоматически запущенные. Будут также созданы необходимые серверу записи в реестре, пользователи и группы.

Описание всех этих действий выходит за рамки данной статьи. Выполнение же первых двух действий имеет отношение, скорее, к администрированию ОС...

Последовательность восстановления

1. Восстановить конфигурацию сервера и ISM

Останавливаем службы ISM, если они работают, и помещаем на свои места все описанные выше административные файлы. У вас ведь есть их актуальные копии, правда?

Речь идет о следующих файлах:

  • Файл ONCONFIG.имя_сервера из каталога %INFORMIXDIR%\etc.
  • Файл ixbar.номер_экземпляра из каталога %INFORMIXDIR%\etc.
  • Файл sm_versions из каталога %INFORMIXDIR%\etc.
  • Файл oncfg_имя_сервера.номер_экземпляра из каталога %INFORMIXDIR%\etc.
  • Файлы из каталогов %ISMDIR%\index, %ISMDIR%\mm и %ISMDIR%\res.

Далее, воссоздаем содержимое реестра SQLHOSTS. По идее, конфигурация, существовавшая на момент создания последней резервной копии, восстановлена. Снова запускаем службы ISM.

2. Проверить конфигурацию ISM

Если все файлы конфигурации и данных ISM восстановлены полностью, мы должны увидеть смонтированные устройства (они же были смонтированы на момент завершения копирования). В окне командной строки сервера Informix выполняем:

C:\Informix>set PATH=%PATH%;c:\ISM\2.20\bin

C:\Informix>ism_show -devices
(nothing) mounted on 4mm tape \\.\Tape0
file disk Data1 mounted on c:\tmp\bardata, write enabled
file disk Logs1 mounted on c:\tmp\barlog, write enabled

C:\Informix>ism_show -volumes
   volume        pool           flags written (%) expires
   Bootstrap1    ISMDiskData            0 KB      04/21/06
   Data1         ISMDiskData           16 MB 100% 04/21/06
   Logs1         ISMDiskLogs          192 KB 100% 04/21/06

Итак, устройства доступны, тома смонтированы. Если это не так (вы демонтировали тома, и лишь затем скопировали файлы конфигурации и данных ISM), придется воспользоваться командами монтирования томов (см. предыдую статью). Если отсутствуют устройства, с которыми вы ранее работали, значит, копия файлов данных и конфигурации ISM оказалась не настолько актуальной... Ищем актуальную копию или готовимся к тому, что данные восстановить не удастся.

У нас, похоже, конфигурация в порядке, поэтому можно переходить к восстановлению сервера в целом, с автоматическим созданием отсутствующих чанков.

3. Восстановить сервер с помощью onbar

Выполняем соответствующую команду onbar (см. руководство по восстановлению):

C:\Informix>onbar -r -w -O
Verifying physical disk space, please wait ...
Error opening file C:\IFMXDATA\ol_creator\rootdbs_dat.000.

Ага, проблемы... Похоже, файл чанка автоматически создать не получилось. Посмотрим, что пишет утилита onbar в своем журнале сообщений (по умолчанию, %INFORMIXDIR%\bar_имя_сервера.log):

2004-05-16 17:12:10 2864 2864 C:\Informix\bin\onbar_d -r -w -O
2004-05-16 17:12:11 2864 2864 Unable to create
 C:\IFMXDATA\ol_creator\rootdbs_dat.000, there may not be
 enough space
2004-05-16 17:12:11 2864 2864 There are no storage
 spaces/logical logs to backup/restore.
2004-05-16 17:13:33 2864 2864 C:\Informix\bin\onbar_d
 complete, returning 147 (0x93)

Создадим вручную каталог, в котором он находился:

C:\Informix>mkdir c:\IFMXDATA\ol_creator

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

Пробуем теперь еще раз. Теперь результат лучше:

C:\Informix>onbar -r -w -O
Verifying physical disk space, please wait ...
Verifying physical disk space, please wait ...
Verifying physical disk space, please wait ...
C:\Informix>echo %ERRORLEVEL%
179

Отсюда вывод: опция -O не создаст каталоги, в которых находятся чанки. Каталоги придется создать вручную. Что именно создавать, будет понятно по сообщениям onbar.

У нас, похоже, были воссозданы три чанка. Код возврата 179, как сказано в руководстве по onbar, означает успешное воссоздание отсутствующих чанков в ходе восстановления. Посмотрим, что сказано в журнале сообщений onbar:

2004-05-16 17:22:34 3160  3160
 C:\PROGRA~1\Informix\bin\onbar_d -r -w -O
2004-05-16 17:22:43 3160  3160 Creating
 C:\IFMXDATA\ol_creator\rootdbs_dat.000 to allow restore
2004-05-16 17:22:51 3160  3160 Creating
 c:\IFMXDATA\ol_creator\sbspace_dat.000 to allow restore
2004-05-16 17:23:02 3160  3160 Creating
 c:\IFMXDATA\ol_creator\workdbs_dat.000 to allow restore
2004-05-16 17:23:05 3160  3160 Successfully connected to
 Storage Manager.
2004-05-16 17:23:07 3160  3160 Begin cold level 0 restore
 rootdbs (Storage Manager copy ID: 1099 0).
2004-05-16 17:23:42 3160  3160 Completed cold level 0 restore
 rootdbs.
2004-05-16 17:23:43 3160  3160 Begin cold level 0 restore
 sbspace (Storage Manager copy ID: 1100 0).
2004-05-16 17:23:45 3160  3160 Completed cold level 0 restore
 sbspace.
2004-05-16 17:23:46 3160  3160 Begin cold level 0 restore
 workdbs (Storage Manager copy ID: 1101 0).
2004-05-16 17:23:47 3160  3160 Completed cold level 0 restore
 workdbs.
2004-05-16 17:23:49 3160  3160 Completed whole system
 restore.
2004-05-16 17:23:52 3160  3160 Successfully connected to
 Storage Manager.
2004-05-16 17:23:52 3160  3160 Begin restore logical log 17
 (Storage Manager copy ID: 1102 0).
2004-05-16 17:23:53 3160  3160 Completed restore logical log
 17.
2004-05-16 17:23:54 3160  3160 Begin restore logical log 18
 (Storage Manager copy ID: 1105 0).
2004-05-16 17:23:55 3160  3160 Completed restore logical log
 18.
2004-05-16 17:23:56 3160  3160 Begin restore logical log 19
 (Storage Manager copy ID: 1107 0).
2004-05-16 17:23:57 3160  3160 Completed restore logical log
 19.
2004-05-16 17:24:05 3160  3160 Completed logical restore.
2004-05-16 17:24:07 2360  2360 C:\Informix\bin\onbar_d -b -l
2004-05-16 17:24:08 2360  2360 C:\Informix\bin\onbar_d
 complete, returning 0 (0x00)
2004-05-16 17:24:11 3160  3160 C:\Informix\bin\onbar_d
 complete, returning 179 (0xb3)

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

C:\Informix>onstat -m

Informix Dynamic Server Version 9.30.TC2     -- Quiescent --
 Up 00:34:21 -- 3366
4 Kbytes

Message Log File: C:\Informix\ol_creator.log
17:24:05  Logical Recovery Complete.
          20 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks

17:24:05  Logical Recovery Complete.
17:24:06  Quiescent Mode
17:24:06  Logical Log 19 Complete.
17:24:06  Checkpoint Completed:  duration was 0 seconds.
17:24:06  Checkpoint loguniq 20, logpos 0x18

17:24:06  Maximum server connections 0
17:24:08  Booting Language <spl> from module <>
17:24:08  Loading Module <SPLNULL>
17:29:31  Fuzzy Checkpoint Completed:  duration was 0
 seconds, 2 buffers not flushed.
17:29:31  Checkpoint loguniq 20, logpos 0x804c

17:29:31  Maximum server connections 0
17:34:31  Fuzzy Checkpoint Completed:  duration was 0
 seconds, 2 buffers not flushed.
17:34:31  Checkpoint loguniq 20, logpos 0x904c

17:34:31  Maximum server connections 0

Переводим сервер в многопользовательский режим, и все:

C:\Informix>onmode -m

C:\Informix>onstat -

Informix Dynamic Server Version 9.30.TC2     -- On-Line -- Up
 00:46:49 -- 33664
Kbytes

Все действительно так просто, при наличии резервных копий всего, что необходимо. Даже чанки вручную создавать не пришлось.

Заключение

В этой статье я описал основные шаги восстановления данных сервера Informix при наличии резервной копии на диске, созданной с помощью утилиты onbar и диспетчера хранения данных ISM. Мы рассмотрели ряд нюансов этой простой процедуры, дополнительные шаги по резервному копированию всех необходимых административных файлов, а также определили предварительные условия, при которых она непосредственно применима.

Документация

1. Informix Storage Manager Administrator's Guide, Version 2.2 (G251-0498-00).
2. Informix Backup and Restore Guide, Version 8.31/9.3 (G251-0481-00)

Новости мира IT:

Архив новостей

Последние комментарии:

Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...