|
| ||||||||||||
| ||||||||||||
Настройка диспетчера хранения данных ISMВ. Кравчук, OpenXS InitiativeДиспетчер хранения данных ISM неизбежно и безусловно устанавливается в процессе установки сервера, начиная с версии 7.30. Более того, на платформе Windows соответствующие три службы:
автоматически запускаются в процессе установки сервера и, по умолчанию, будут автоматически запускаться при загрузке ОС (см. оснастку Службы или результаты выполнения команды net start). Тем не менее, использовать этот отдельный сервер по прямому назначению - для резервного копирования и восстановления DB-пространств и логических журналов с помощью утилиты onbar, - сразу после установки нельзя... Дело в том, что необходимые пулы [1] для утилиты onbar при установке ISM создаются, а вот устройства в эти пулы не добавляются, да и не могут быть добавлены. Поскольку заранее неизвестно, на какие устройства администратор планирует выполнять резервное копирование. Он должен явно указать соответствующие устройства, разметить и смонтировать их тома. Вот этим мы и займемся, обеспечив резервное копирование на диск. Сам ISM устанавливается в отдельный от сервера каталог (\ISM\2.20) на том же логическом диске, на который выполнялась установка сервера. Другими словами, если, например, переменная среды %INFORMIXDIR% у вас имеет значение c:\Informix, то ISM будет установлен в каталоге c:\ISM\2.20. В дальнейшем будем ссылаться на этот каталог как на %ISMDIR%. Начнем мы с проверки существующей сразу после установки сервера конфигурации. Это, а также собственно конфигурирование, может выполнять только пользоватль-администратор ISM. По ходу установки такими пользователями назначаются локальные администраторы (члены группы Administrators, а в русской версии - Администраторы, в которую, по умолчанию, добавляется и пользователь Informix.) Контроль и конфигурирование ISM ведется с помощью утилит ism_*.*, находящихся в каталоге %ISMDIR%\bin. Если вы собираетесь обращаться к этим утилитам по именам, не забудьте добавить соответствующий каталог в переменную среды PATH. Например, если вы работаете в окне командной строки, это можно сделать командой: set PATH=%PATH%;%ISMDIR%\bin Кстати, все утилиты ism_*.* при вызове без параметров выдают детальную информацию о поддерживаемых опциях. 1. Проверка конфигурацииНачнем с проверки того, кто может администрировать ISM: C:\Informix>ism_show -admins
administrator: Администраторы@creator;
Если уже на этом этапе вы не получаете ответа или получаете что то типа "ism_show: RPC error, Remote system error", то это обозначает, что у вас не работает одна из выше упомянутых служб ISM или установка ISM во время инсталляции сервера не была успешной. Далее проверим общую конфигурацию: C:\Informix>ism_show -config
name: creator;
parallelism: 4;
manual saves: Enabled;
administrator: Администраторы@creator;
browse policy: Month;
retention policy: Year;
и посмотрим, какие устройства сконфигурированы по умолчанию: C:\Informix>ism_show -devices (nothing) mounted on 4mm tape \\.\Tape0 Стримера у нас нет, поэтому данное устройство мы использовать не можем. Работа с ленточными устройствами подробно описана в [1]. Итак, с помощью этих трех команд мы убедились, что:
2. Добавление устройств для резервного копирования на дискДля резервного копирования на диск необходимо создать на диске соответствующие каталоги. Я, исключительно для демонстрации, собираюсь их создавать в каталоге c:\tmp: C:\Informix>cd c:\tmp C:\tmp>mkdir bardata C:\tmp>mkdir barlog Названия каталогам я выбрал в соответствии с информацией, которая будет в них копироваться: данные (DB-пространства) и логические журналы. Теперь я добавлю устройства типа file: C:\tmp>ism_add -device c:\tmp\bardata -type file C:\tmp>ism_add -device c:\tmp\barlog -type file C:\tmp>ism_show -devices (nothing) mounted on 4mm tape \\.\Tape0 (nothing) mounted on file disk c:\tmp\bardata (nothing) mounted on file disk c:\tmp\barlog Как видите, устройства успешно добавлены. В каждом из каталогов при этом создается файл nsr.dir (в моем случае, размером 47 байтов) и файл volume (первоначально, пустой). 3. Разметка томовУстройства для ISM уже созданы, но ни одного тома, на котором можно было бы размещать резервные копии, пока нет: C:\tmp>ism_show -volumes mminfo: no matches found for the query Надо разметить два тома, дав им имена и привязав к заранее существующим пулам. Пулов этих в ISM сразу после установки будет несколько [1]. Наиболее существенные для нас на начальном этапе:
Обсуждение управление пулами выходит за рамки этой статьи. Важно только, что в пул, связанный с диском, нельзя будет добавлять ленточные устройства, и наоборот. Мы собираемся выполнять резервное копирование на диск. Поэтому будем использовать пулы ISMDiskData и ISMDiskLogs. Выполняем разметку томов для пулов: C:\tmp>ism_op -label c:\tmp\bardata -pool ISMDiskData -volume Data1 C:\tmp>ism_op -label c:\tmp\barlog -pool ISMDiskLogs -volume Logs1 Обратите внимание, что, в отличие от документации и прежних Release Notes, я задал томам имена, явно отличающиеся от имени пула. В частности, чтобы подчеркнуть, что томов в пуле может быть много... Давайте посмотрим, какую информацию про тома теперь выдаст ISM: C:\tmp>ism_show -volumes volume pool flags written (%) expires Data1 ISMDiskData 0 KB 04/21/06 Logs1 ISMDiskLogs 0 KB 04/21/06 Так мы проверяем, что тома действительно размечены и отданы соответствующим пулам. В результате разметки, кстати, файлы volume в каталогах, которые мы используем в качестве устройств, теперь имеют размер 65536 байтов. 4. Настройка имен пуловИмена пулов, которые будут использоваться утилитой onbar при резервном копировании, задаются параметрами конфигурации (в файле %INFORMIXDIR%\etc\%ONCONFIG%; в моем случае, это C:\Informix\etc\ONCONFIG.ol_creator). Речь идет о следующих параметрах: # Informix Storage Manager variables ISM_DATA_POOL ISMData ISM_LOG_POOL ISMLogs Мы использовали не эти пулы, поэтому придется изменить значения этих параметров: # Informix Storage Manager variables ISM_DATA_POOL ISMDiskData ISM_LOG_POOL ISMDiskLogs Изменения этих, как и большинства остальных, параметров конфигурации, учитываются только при перезапуске сервера Informix. Его мы выполним позже. Это, кстати, не последнее изменение в файле параметров конфигурации. Остался еще один небольшой нюанс. Поскольку мы будем копировать на диск и набор аварийной начальной загрузки (Bootstrap), надо поменять соответствующее имя пула и в файле %INFORMIXDIR%\bin\onbar.bat. Речь идет о строке: %ISMDIR%\bin\ism_catalog -create_bootstrap -pool ISMData >NUL 2>NUL В ней надо изменить имя пула и сохранить изменения: %ISMDIR%\bin\ism_catalog -create_bootstrap -pool ISMDiskData >NUL 2>NUL 5. Монтирование томовНам осталось уже не так много сделать. Надо смонтировать тома (это делает их доступными для чтения и записи данных): C:\tmp>ism_op -mount c:\tmp\bardata file disk Data1 mounted on c:\tmp\bardata, write enabled C:\tmp>ism_op -mount c:\tmp\barlog file disk Logs1 mounted on c:\tmp\barlog, write enabled Для справки, вот все опции утилиты ism_op: C:\tmp>ism_op Usage: ism_op [<options>] Options: -label device [ -volume name ] [ -pool pool ] [ -force ] [ -server name ] -mount device [ -read_only ] [ -server name ] -unmount device [ -server name ] -detect device [ -server name ] Вот как можно проверить, что именно и в каком режиме смонтировано на устройстве: C:\tmp>ism_op -detect c:\tmp\bardata file disk Data1 mounted on c:\tmp\bardata, write enabled В принципе, ISM уже готов для резервного копирования. Осталось пару деталей. 6. Создание файла sm_versionsЕсли запустить сервер Informix с новыми параметрами и попытаться использовать утилиту onbar для резервного копирования, ничего не получится. Дело в том, что утилита onbar может работать и с другими диспетчерами хранения данных, например, NetVault. Все определяется библиотекой XBSA (см. параметр конфигурации BAR_BSALIB_PATH) и содержимым файла %INFORMIXDIR%\etc\sm_versions. Там одной строкой описаны диспетчеры хранения данных, с которыми будет работать onbar. Сразу после установки сервера Informix такого файла просто нет! А есть файл %INFORMIXDIR%\etc\sm_versions.std, который, если вы собираетесь использовать ISM, надо просто скопировать: C:\Informix\etc>copy sm_versions.std sm_versions 7. Изменение параметров конфигурации для резервного копирования журналовВыполнять резервное копирование DB-пространств можно было бы сразу же после запуска сервера Informix. Но мы же хотим и логические журналы автоматически копировать! Поэтому надо изменить еще несколько параметров конфигурации. Проверьте, что у вас параметры имеют следующие (не стандартные) значения. После символа комментария я указал стандартные значения, которые вы обнаружите сразу после установки сервера Informix (предполагается, что Informix установлен в каталог C:\Informix): LOG_BACKUP_MODE CONT #MANUAL LTAPEDEV aaa #NUL ALARMPROGRAM C:\Informix\etc\log_full.bat #C:\Informix\etc\log_full.bat Параметр LTAPEDEV может иметь любое значение, кроме NUL. Иначе журналы будут помечаться как скопированные сразу же при переходе на следующий журнал, и у утилиты onbar не будет шанса их скопировать... Значение параметра ALARMPROGRAM можно оставить стандартным. Сценарий log_full.bat как раз и занимается тем, что копирует очередной заполненный логический журнал с помощью onbar. Если же вы сами будет создавать свою программу обработки событий, не забудьте обработать событие класса 23 - заполнение очередного логического журнала. 8. Перезапуск Informix и проверкаЕсли сервер Informix запущен, остановите его (например, командой onmode -ky). Затем снова запустите: C:\tmp>starts ol_creator C:\tmp>onstat - Informix Dynamic Server Version 9.30.TC2 -- On-Line -- Up 00:00:33 -- 25472 Kbytes Похоже, сервер запустился. Команда onstat -m должна показать вам, что соответствующие параметры конфигурации изменены. Попробуем выполнить резервное копирование сервера в целом (с этого и надо начинать использование onbar). Команда будет работать достаточно долго и индикатор работы диска, по идее, должен показывать, что процесс идет...: C:\tmp>onbar -b -w Команда onstat -m, если копирование прошло успешно, выдаст примерно такие сообщения: 16:39:12 Level 0 Archive started on rootdbs, sbspace, workdbs 16:39:22 Archive on rootdbs, sbspace, workdbs Completed. 16:39:23 Logical Log 17 - Backup Started 16:39:24 Logical Log 17 Complete. 16:39:25 Logical Log 17 - Backup Completed В журнале сообщений onbar (задается параметром конфигурации BAR_ACT_LOG и, по умолчанию, размещается в %INFORMIXDIR%\bar_имя_сервера.log) при этом можно обнаружить: 2004-04-21 16:39:10 2424 2424 C:\Informix\bin\onbar_d -b -w 2004-04-21 16:39:12 2424 2424 Begin level 0 backup rootdbs. 2004-04-21 16:39:14 2424 2424 Successfully connected to Storage Manager. 2004-04-21 16:39:20 2424 2424 Completed level 0 backup rootdbs (Storage Manager copy ID: 1099 0). 2004-04-21 16:39:20 2424 2424 Begin level 0 backup sbspace. 2004-04-21 16:39:21 2424 2424 Completed level 0 backup sbspace (Storage Manager copy ID: 1100 0). 2004-04-21 16:39:21 2424 2424 Begin level 0 backup workdbs. 2004-04-21 16:39:22 2424 2424 Completed level 0 backup workdbs (Storage Manager copy ID: 1101 0). 2004-04-21 16:39:22 2424 2424 Begin backup logical log 17. 2004-04-21 16:39:23 2424 2424 Successfully connected to Storage Manager. 2004-04-21 16:39:25 1952 1952 C:\Informix\bin\onbar_d -b -l 2004-04-21 16:39:25 1952 1952 A log backup is already running. Can't start another. 2004-04-21 16:39:25 2424 2424 Completed backup logical log 17 (Storage Manager copy ID: 1102 0). 2004-04-21 16:39:28 2424 2424 C:\Informix\bin\onbar_d complete, returning 0 (0x00) 2004-04-21 16:39:30 1952 1952 C:\Informix\bin\onbar_d complete, returning 152 (0x98) Если коды возврата вас смущают, про них можно почитать в документации по onbar [2]. Чтобы проверить, что журналы копируются нормально, можно выполнить пару раз команду onmode -l и onstat -l: ...
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-2 0 8 241 19 17 12.7 1.1
Subsystem numrecs Log Space used
OLDRSAM 241 18840
address number flags uniqid begin size used %used
ca376a8 1 U-B---- 19 1002fb 500 3 0.60
ca376e0 2 U---C-- 20 1004ef 500 2 0.40
ca37718 3 U-B---- 15 1006e3 500 7 1.40
ca37750 4 U-B---- 16 1008d7 500 24 4.80
ca37788 5 U-B---- 17 100acb 500 20 4.00
ca377c0 6 U-B---L 18 100cbf 500 11 2.20
6 active, 6 total
Судя по этому результату, а также по содержимому журнала сообщений сервера: 16:48:10 Logical Log 18 Complete. 16:48:12 Logical Log 18 - Backup Started 16:48:15 Logical Log 18 - Backup Completed 16:48:42 Logical Log 19 Complete. 16:48:43 Logical Log 19 - Backup Started 16:48:47 Logical Log 19 - Backup Completed и утилиты onbar: 2004-04-21 16:48:12 3932 3932 Begin backup logical log 18. 2004-04-21 16:48:13 3932 3932 Successfully connected to Storage Manager. 2004-04-21 16:48:15 3932 3932 Completed backup logical log 18 (Storage Manager copy ID: 1105 0). 2004-04-21 16:48:15 3932 3932 C:\Informix\bin\onbar_d complete, returning 0 (0x00) 2004-04-21 16:48:42 1840 1840 C:\Informix\bin\onbar_d -b -l 2004-04-21 16:48:43 1840 1840 Begin backup logical log 19. 2004-04-21 16:48:45 1840 1840 Successfully connected to Storage Manager. 2004-04-21 16:48:47 1840 1840 Completed backup logical log 19 (Storage Manager copy ID: 1107 0). 2004-04-21 16:48:48 1840 1840 C:\Informix\bin\onbar_d complete, returning 0 (0x00) все у нас работает... Кстати, в каталогах, созданных на шаге 2, появились файлы наборов хранения (save sets), имена которых "упоминаются" в журнале onbar: C:\tmp>cd bardata C:\tmp\bardata>dir ... 21.04.2004 16:49 <DIR> . 21.04.2004 16:49 <DIR> .. 21.04.2004 16:39 13 369 344 1099.0 21.04.2004 16:39 2 621 440 1100.0 21.04.2004 16:39 65 536 1101.0 21.04.2004 16:40 32 768 1103.0 21.04.2004 16:41 65 536 1104.0 21.04.2004 16:49 32 768 1106.0 21.04.2004 16:50 65 536 1108.0 20.04.2004 18:23 47 nsr.dir 21.04.2004 15:03 65 536 volume Кроме того, все действия по резервному копированию утилита onbar отражает в соответствующих таблицах базы данных sysutils, но это заслуживает отдельной статьи. Обратитесь к документации [2], где все подробно описано. 9. Решение проблемЕсли процесс идет долго, а видимой активности диска нет, значит, вы пытаетесь копировать в недоступные пулы, или ISM перестал работать. При поиске причины проблемы вам могут помочь журналы ISM, которые находятся в каталоге %ISMDIR%\logs. Например, в журнале daemon.log я обнаружил причину зависания при первой попытке резервного копирования системы в целом - я забыл изменить названия пулов в файле параметров конфигурации сервера Informix: 04/21/04 16:04:31 nsrd: media waiting event: backup to pool 'ISMData' waiting for 1 writable backup tape(s) or disk(s) 04/21/04 16:19:35 nsrd: media critical event: backup to pool 'ISMData' waiting for 1 writable backup tape(s) or disk(s) А вот как в этом журнале отразились успешно выполненные операции резервного копирования: 04/21/04 16:39:14 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 saving to pool 'ISMDiskData' (Data1) 04/21/04 16:39:19 nsrd: index warning: Filesystem for index `creator' is getting full. 04/21/04 16:39:20 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 done saving to pool 'ISMDiskData' (Data1) 13 MB 04/21/04 16:39:20 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 saving to pool 'ISMDiskData' (Data1) 04/21/04 16:39:21 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 done saving to pool 'ISMDiskData' (Data1) 2.5 MB 04/21/04 16:39:21 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 saving to pool 'ISMDiskData' (Data1) 04/21/04 16:39:22 nsrd: creator:INFORMIX:\ol_creator\rootdbs\0 done saving to pool 'ISMDiskData' (Data1) 60 KB 04/21/04 16:39:23 nsrd: creator:INFORMIX:\ol_creator\0\17 saving to pool 'ISMDiskLogs' (Logs1) 04/21/04 16:39:25 nsrd: creator:INFORMIX:\ol_creator\0\17 done saving to pool 'ISMDiskLogs' (Logs1) 88 KB 04/21/04 16:39:29 nsrd: savegroup info: starting ISMDiskData (with 1 client(s)) 04/21/04 16:39:29 nsrd: savegroup info: creator: C:\ISM\2.20\index\creator no cycles found in media db; doing full save 04/21/04 16:39:54 nsrd: write completion notice: Writing to volume Data1 complete 04/21/04 16:39:56 nsrd: write completion notice: Writing to volume Logs1 complete 04/21/04 16:39:58 nsrd: creator:C:\ISM\2.20\index\creator saving to pool 'ISMDiskData' (Data1) 04/21/04 16:39:59 nsrd: creator:C:\ISM\2.20\index\creator done saving to pool 'ISMDiskData' (Data1) 4 KB 04/21/04 16:40:45 nsrd: write completion notice: Writing to volume Data1 complete 04/21/04 16:40:47 nsrd: creator:bootstrap saving to pool 'ISMDiskData' (Data1) 04/21/04 16:40:48 nsrmmdbd: media db is saving its data. This may take a while. 04/21/04 16:40:48 nsrmmdbd: media db is open for business. 04/21/04 16:40:49 nsrd: creator:bootstrap done saving to pool 'ISMDiskData' (Data1) 40 KB 04/21/04 16:41:11 nsrd: savegroup notice: ISMDiskData completed, 1 client(s) (All Succeeded) 04/21/04 16:41:11 nsrmmdbd: Starting compression of media database 04/21/04 16:41:12 nsrmmdbd: Finished compression of media database 04/21/04 16:41:12 nsrd: index notice: nsrim has finished checking the media db 04/21/04 16:41:42 nsrd: write completion notice: Writing to volume Data1 complete 04/21/04 16:48:14 nsrd: creator:INFORMIX:\ol_creator\0\18 saving to pool 'ISMDiskLogs' (Logs1) 04/21/04 16:48:14 nsrd: creator:INFORMIX:\ol_creator\0\18 done saving to pool 'ISMDiskLogs' (Logs1) 52 KB 04/21/04 16:48:16 nsrd: savegroup info: starting ISMDiskData (with 1 client(s)) 04/21/04 16:48:45 nsrd: write completion notice: Writing to volume Logs1 complete 04/21/04 16:48:45 nsrd: creator:C:\ISM\2.20\index\creator saving to pool 'ISMDiskData' (Data1) 04/21/04 16:48:46 nsrd: creator:INFORMIX:\ol_creator\0\19 saving to pool 'ISMDiskLogs' (Logs1) 04/21/04 16:48:46 nsrd: creator:C:\ISM\2.20\index\creator done saving to pool 'ISMDiskData' (Data1) 6 KB 04/21/04 16:48:47 nsrd: creator:INFORMIX:\ol_creator\0\19 done saving to pool 'ISMDiskLogs' (Logs1) 20 KB 04/21/04 16:48:50 nsrd: savegroup alert: group ISMDiskData aborted, savegroup is already running 04/21/04 16:49:32 nsrd: write completion notice: Writing to volume Data1 complete 04/21/04 16:49:32 nsrd: write completion notice: Writing to volume Logs1 complete 04/21/04 16:49:36 nsrd: creator:bootstrap saving to pool 'ISMDiskData' (Data1) 04/21/04 16:49:37 nsrmmdbd: media db is saving its data. This may take a while. 04/21/04 16:49:37 nsrmmdbd: media db is open for business. 04/21/04 16:49:38 nsrd: creator:bootstrap done saving to pool 'ISMDiskData' (Data1) 42 KB 04/21/04 16:49:58 nsrd: savegroup notice: ISMDiskData completed, 1 client(s) (All Succeeded) 04/21/04 16:50:28 nsrd: write completion notice: Writing to volume Data1 complete Информация эта легко поддается анализу даже и без дополнительного изучения ISM... ЗаключениеЯ описал простую, понятную и многократно успешно использованную процедуру настройки диспетчера хранения данных ISM и сервера Informix для дальнейшего резервного копирования данных и автоматического резервного копирования заполненных логических журналов на диск с помощью утилиты onbar. Изложение велось на примере IDS 9.30.TC2, ISM 2.20 на платформе Windows XP Professional (не поддерживаемой официально, так как в момент выпуска этой версии IDS еще не было официального выпуска Windows XP). Эту процедуру настройки, однако, легко адаптировать для любой UNIX платформы. Попутно мы рассмотрели некоторые базовые утилиты командной строки для управления диспетчером хранения данных ISM, а также простейшие способы контроля работы ISM и утилиты onbar. Дополнительную информацию об ISM и onbar можно найти в документации, ссылки на которую представлены ниже. Документация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) |
|
CITForum © 1997–2025