Informix - заблокированная БД из-за блокировки, созданной отмененным сеансом?

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

Я новичок в этом, так что извините за глупый вопрос. На странице IBM нет четкого и простого объяснения, как это убрать сейчас.

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

admin_proyecto@li1106-217 # onstat -k

IBM Informix Dynamic Server Version 12.10.FC9DE -- On-Line (CKPT REQ) -- Up 9 ds
Blocked:CKPT

Locks
address          wtlist           owner            lklist           type     tbz
44199028         0                44ca6830           0                HDR+S
44199138         0                44cac0a0           0                HDR+S
441991c0         0                44cac0a0           4419b6f0         HDR+IX
44199358         0                44ca44d0           0                    S
441993e0         0                44ca44d0           44199358         HDR+S
4419ac50         0                44cac0a0           441991c0         HDR+X
4419aef8         0                44ca44d0           441993e0         HDR+IX
4419b2b0         0                44ca79e0           0                    S
4419b3c0         0                44ca82b8           0                    S
4419b6f0         0                44cac0a0           44199138         HDR+X
4419b998         0                44ca8b90           0                    S
4419bdd8         0                44ca44d0           4419aef8         HDR+X
 12 active, 20000 total, 16384 hash buckets, 0 lock table overflows

person Matias Barrios    schedule 23.04.2018    source источник
comment
Подсказка в сообщении ;) (CKPT REQ) .... Заблокировано: CKPT Ваш сервер IDS заблокирован в ожидании контрольной точки. Проверьте свой онлайн-журнал (onstat -m) и прочтите его по адресу: www -01.ibm.com/support/docview.wss?uid=swg21148482   -  person jsagrera    schedule 23.04.2018
comment
Похоже, вы снова застряли с полными логическими журналами, но без резервных копий, поэтому их нельзя использовать повторно. Каков результат onstat -l ?   -  person Luís Marques    schedule 23.04.2018
comment
Я не смог решить проблему, поэтому просто запустил oninit -i. Я знаю, что это удалит все, но на данном этапе это не имело значения, так как я только сейчас начинаю создавать БД. Теперь я воссоздал оба пространства, и они снова работают нормально. Так же поправил скрипт и теперь он не вешает сессию.   -  person Matias Barrios    schedule 23.04.2018
comment
Вы знаете, что ваш экземпляр Informix снова зависнет, когда у вас закончатся пригодные для использования логические журналы? Если это только тестовая система, установите LTAPEDEV на /dev/null/, как написано в статье IBM, на которую ссылается J_S. Или запустите ontape -a, когда это произойдет. Просто никогда не используйте /dev/null в производственной системе.   -  person Luís Marques    schedule 23.04.2018
comment
@LuísMarques Да, я направил поток сюда: LTAPEDEV /matiasInformixDBSpaces/backuplog.log Будет ли этого достаточно, чтобы избежать этого в будущем? Я передал этот файл группе и пользователю informix.   -  person Matias Barrios    schedule 23.04.2018
comment
Используйте каталог вместо файла @MatiasBarrios.   -  person Jonathan Leffler    schedule 23.04.2018
comment
@JonathanLeffler Я внес изменения, и теперь это выглядит так: LTAPEDEV /matiasInformixDBSpaces/ Должен ли я что-то перезапустить?   -  person Matias Barrios    schedule 23.04.2018
comment
Вы можете перезапустить сервер; это гарантировало бы, что изменение будет замечено. Если вы редактируете только файл onconfig, а не используете onmode для внесения изменений, сервер не заметит изменения в конфигурации. OTOH, если вы используете onmode для внесения изменений, сервер знает об этом.   -  person Jonathan Leffler    schedule 24.04.2018
comment
когда я пытаюсь использовать только «onmode», я получаю сообщение об ошибке. Какой флаг для перезагрузки конфигурации? @JonathanLeffler И еще раз спасибо за помощь, приятель   -  person Matias Barrios    schedule 24.04.2018
comment
Вы будете работать как informix и будете использовать onmode -wf LTAPEDEV=/new/location для внесения изменений в файл onconfig. Запустите onmode без аргументов от имени informix, чтобы увидеть доступные параметры. (Высказывание как informix является сокращением того, что POSIX называет соответствующим образом привилегированным.)   -  person Jonathan Leffler    schedule 24.04.2018


Ответы (1)


В моих «игрушечных» системах я обычно указываю LTAPEDEV на каталог:

LTAPEDEV /usr/informix/dumps/motor_003/backups

Затем, когда Informix блокируется из-за того, что все его логические журналы заполнены, я вручную делаю ontape -a для резервного копирования в файлы используемых логических журналов и освобождаю их для повторного использования.

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

$ onstat -l

IBM Informix Dynamic Server Version 12.10.FC8DE -- On-Line (CKPT REQ) -- Up 00:18:58 -- 213588 Kbytes
Blocked:CKPT

Physical Logging
Buffer bufused  bufsize  numpages   numwrits   pages/io
  P-1  0        64       1043       21         49.67
      phybegin         physize    phypos     phyused    %used
      2:53             51147      28085      240        0.47

Logical Logging
Buffer bufused  bufsize  numrecs    numpages   numwrits   recs/pages pages/io
  L-1  13       64       191473     12472      6933       15.4       1.8
        Subsystem    numrecs    Log Space used
        OLDRSAM      191470     15247376
        HA           3          132

Buffer Waiting
Buffer  ioproc   flags
  L-1   0        0x21     0

address          number   flags    uniqid   begin                size     used    %used
44d75f88         1        U------  47       3:15053              5000        5     0.10
44b6df68         2        U---C-L  48       3:20053              5000     4986    99.72
44c28f38         3        U------  41       3:25053              5000     5000   100.00
44c28fa0         4        U------  42       3:53                 5000     2843    56.86
44d59850         5        U------  43       3:5053               5000        5     0.10
44d598b8         6        U------  44       3:10053              5000        5     0.10
44d59920         7        U------  45       3:30053              5000        5     0.10
44d59988         8        U------  46       3:35053              5000        5     0.10
 8 active, 8 total

В онлайн-журнале у меня есть:

$ onstat -m

04/23/18 18:20:42  Logical Log Files are Full -- Backup is Needed

Поэтому я вручную выдаю команду:

$ ontape -a

Performing automatic backup of logical logs.

File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000041
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000042
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000043
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000044
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000045
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000046
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000047
File created: /usr/informix/dumps/motor_003/backups/informix003.ifx.marqueslocal_3_Log0000000048
Do you want to back up the current logical log? (y/n) n

Program over.

Если я снова проверю состояние логических журналов:

$ onstat -l

IBM Informix Dynamic Server Version 12.10.FC8DE -- On-Line -- Up 00:23:42 -- 213588 Kbytes

Physical Logging
Buffer bufused  bufsize  numpages   numwrits   pages/io
  P-2  33       64       1090       24         45.42
      phybegin         physize    phypos     phyused    %used
      2:53             51147      28091      36         0.07

Logical Logging
Buffer bufused  bufsize  numrecs    numpages   numwrits   recs/pages pages/io
  L-1  0        64       291335     15878      7023       18.3       2.3
        Subsystem    numrecs    Log Space used
        OLDRSAM      291331     22046456
        HA           4          176

address          number   flags    uniqid   begin                size     used    %used
44d75f88         1        U-B----  47       3:15053              5000        5     0.10
44b6df68         2        U-B----  48       3:20053              5000     5000   100.00
44c28f38         3        U---C-L  49       3:25053              5000     3392    67.84
44c28fa0         4        U-B----  42       3:53                 5000     2843    56.86
44d59850         5        U-B----  43       3:5053               5000        5     0.10
44d598b8         6        U-B----  44       3:10053              5000        5     0.10
44d59920         7        U-B----  45       3:30053              5000        5     0.10
44d59988         8        U-B----  46       3:35053              5000        5     0.10
 8 active, 8 total

Логические журналы теперь помечены как «Резервные копии» и могут использоваться повторно, а экземпляр Informix больше не блокируется Blocked:CKPT .

person Luís Marques    schedule 23.04.2018