Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Открыто о СУБД Informix на русском : Настройка диспетчера хранения данных ISM


Информационный Канал Subscribe.Ru


Выпуск 3

Уважаемые подписчики рассылки!

В этом выпуске я кратко и упрощенно расскажу о том, как настроить диспетчер хранения данных (storage manager) ISM для резервного копирования и восстановления сервера Informix с помощью утилиты onbar.

Изложение будет вестись на примере версии IDS 9.30.TC2 для Windows NT/2000 и штатно устанавливаемого вместе с ним ISM 2.20. Тем не менее, последовательность и суть выполняемых действий не зависит от операционной системы и версии. Все это работало, начиная с ISM 1.0 и IDS 7.30 на платформах Windows NT, SCO OpenServer 5, UnixWare 7, Solaris x86 7 и 8. Более того, процедура ранее была достаточно подробно описана в Release Notes. Теперь же - только в документации [1]. А ее-то под рукой может и не быть...

Настройка диспетчера хранения данных ISM

Диспетчер хранения данных ISM неизбежно и безусловно устанавливается в процессе установки сервера, начиная с версии 7.30. Более того, на платформе Windows соответствующие три службы:

  • ISM Local Execution
  • ISM Portmapper
  • ISM Server

автоматически запускаются в процессе установки сервера и, по умолчанию, будут автоматически запускаться при загрузке (см. оснастку Службы или результаты выполнения команды net start).

Тем не менее, использовать этот отдельный сервер по прямому назначению - для резервного копирования и восстановления DB-пространств и логических журналов с помощью утилиты onbar, - сразу после установки нельзя...

Дело в том, что необходимые пулы [1] для утилиты onbar при установке ISM создаются, а вот устройства в эти пулы не добавляются, и не могут. Поскольку заранее неизвестно, на какие устройства администратор планирует выполнять резервное копирование. Он должен явно указать соответствующие устройства, разметить и смонтировать их тома. Вот этим мы и займемся, обеспечив резервное копирование на диск.

Сам ISM устанавливается в отдельный каталог (\ISM\2.20) на том же диске, на который выполнялась установка сервера. Другими словами, если, например, переменная среды у вас имеет значение 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:\Program Files\Informix>ism_show -admins 
               administrator: Администраторы@creator; 

Далее проверим общую конфигурацию:

 
C:\Program Files\Informix>ism_show -config 
                        name: creator; 
                 parallelism: 4; 
                manual saves: Enabled; 
               administrator: Администраторы@creator; 
               browse policy: Month; 
            retention policy: Year; 

и посмотрим, какие устройства сконфигурированы по умолчанию:

 
C:\Program Files\Informix>ism_show -devices 
(nothing) mounted on 4mm tape \\.\Tape0 

Стримера у нас нет, поэтому данное устройство мы использовать не можем. Работа с ленточными устройствами подробно описана в [1].

Итак, с помощью этих трех команд мы убедились, что:

  • Службы ISM запущены и, похоже, работают.
  • У нас не сконфигурированы необходимые устройства.
  • Мы можем конфигурировать ISM.

2. Добавление устройств для резервного копирования на диск

Для резервного копирования на диск необходимо создать на диске соответствующие каталоги. Я, исключительно для демонстрации, собираюсь их создавать в каталоге c:\tmp:

 
C:\Program Files\Informix>cd c:\tmp 
 
C:\tmp>mkdir bardata 
 
C:\tmp>mkdir barlog 

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

Теперь я добавлю устройства типа 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]. Наиболее существенные для нас на начальном этапе:

ISMData
Пул для резервных копий данных на лентах. Используется по умолчанию.

ISMLogs
Пул для резервных копий журналов на лентах. Используется по умолчанию.

ISMDiskData
Пул для резервных копий данных на диске.

ISMDiskLogs
Пул для резервных копий журналов на диске.

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

Мы собираемся выполнять резервное копирование на диск. Поэтому будем использовать пулы 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:\Program Files\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. Его мы выполним позже. Это, кстати, не последнее изменение в файле параметров конфигурации.

Остался еще один небольшой нюанс. Поскольку мы будем копировать на диск и набор аварийной начальной загрузки, надо поменять соответствующее имя пула и в файле %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 Bootstrap1 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:\Program Files\Informix\etc>copy sm_versions.std sm_versions 

7. Изменение параметров конфигурации для резервного копирования журналов

Выполнять резервное копирование DB-пространств можно было бы сразу же после запуска сервера Informix. Но мы же хотим и логические журналы автоматически копировать! Поэтому надо изменить еще несколько параметров конфигурации. Проверьте, что у вас параметры имеют следующие (не стандартные) значения. После символа комментария я указал стандартные значения, которые вы обнаружите сразу после установки сервера Informix:

 
LOG_BACKUP_MODE     CONT # MANUAL 
LTAPEDEV            aaa  # NUL 
ALARMPROGRAM     C:\PROGRA~1\Informix\etc\log_full.bat #%INFORMIXDIR%\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:\PROGRA~1\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:\PROGRA~1\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:\PROGRA~1\Informix\bin\onbar_d complete, returning 0 (0x00) 
 2004-04-21 16:39:30 1952  1952 C:\PROGRA~1\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:\PROGRA~1\Informix\bin\onbar_d complete, returning 0 (0x00) 
 2004-04-21 16:48:42 1840  1840 C:\PROGRA~1\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:\PROGRA~1\Informix\bin\onbar_d complete, returning 0 (0x00) 

все у нас работает...

Кстати, в каталогах появились файлы наборов хранения (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 Profeccsional. Эту процедуру настройки, однако, легко адаптировать для любой 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)

Архив рассылки

Все вышедшие выпуски рассылки можно найти на сайте рассылки. Там же реализована возможность поиска материалов по ключевым словам (с помощью Google)


В следующем выпуске

Вероятно, я еще раз обращусь к теме настройки, установки и переустановки диспетчера хранения данных ISM.

С наилучшими пожеланиями,

  В.К.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное