powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как надежно остановить DB2?
25 сообщений из 25, страница 1 из 1
как надежно остановить DB2?
    #39102061
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если запуск команды:
Cmd1="db2 terminate; db2 force applications all; db2 deactivate database DBName; sleep 5s; db2stop";

возвращает ошибку, то запускаю команду:
Cmd2="db2 force applications all; su -lc ipclean db2inst; db2 force applications all; sleep 5s; db2stop force";

но иногда и она дает сбой

причем делается несколько попыток в цикле с нарастающей паузой между попытками

как же всетаки надежно остановить DB2?
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102231
m&n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m&n
Гость
sanyock2,

достаточно просто db2stop force
если не работает - надо разбираться
(может быть просто долго выполняется ?)
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102236
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит надёжно?

db2stop force ...

Можете с промежуточным запретом на новые соединения.
db2 quiesce instance <instance> immediate force connections
db2stop
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102240
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2,

Какую-такую ошибку возращает? Это не дело - надо с ошибкой разобраться.
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102251
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта радость (db2stop force) может просто подвиснуть на часы - и ни туда, и ни сюда, и сделать ничего нельзя, кроме как убить процесс db2syscs. Чего-то ждёт, как диагностировать - непонятно. Видал я иногда такое в старые времена. (В нынешние я базы уже очень давно не останавливал).
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102293
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m&nsanyock2,

достаточно просто db2stop force
если не работает - надо разбираться
(может быть просто долго выполняется ?)

если бы было все так просто, то не гуглилось бы много тем, подобных такой:
http://database.ittoolbox.com/groups/technical-functional/db2-l/how-to-stop-db2-instance-if-db2stop-force-fails-914220
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102297
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
knudsensanyock2,

Какую-такую ошибку возращает? Это не дело - надо с ошибкой разобраться.

после моих наборов команд иногда DB2 уходит в ступор и db2start даже пытается запуститься, но сообщает, что база используется другим инстансом, т.е. получается, db2stop как бы еще не отработал к времени попытки запуска
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102299
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterikЧто значит надёжно?

db2stop force ...

Можете с промежуточным запретом на новые соединения.
db2 quiesce instance <instance> immediate force connections
db2stop

тоже собирался сначала попробовать quiesce, но почему-то не нашел ее упоминания при остановке

обычно используется при полном бэкапе
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102597
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2,

db2diag.log в студию!
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102624
m&n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m&n
Гость
sanyock2после моих наборов команд иногда DB2 уходит в ступор и db2start даже пытается запуститься , ...

может у вас стоит какой-нибудь 3d party fault monitor, который и пытается стартануть db2,
и это он создает вам такие проблемы?
(db2-й fm не должен стартовтаь инстанс после db2stop, если только не глючит)
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102663
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m&nsanyock2после моих наборов команд иногда DB2 уходит в ступор и db2start даже пытается запуститься , ...

может у вас стоит какой-нибудь 3d party fault monitor, который и пытается стартануть db2,
и это он создает вам такие проблемы?
(db2-й fm не должен стартовтаь инстанс после db2stop, если только не глючит)

3-rd party только приложения сферы, сфера предварительно тоже останавливается, но возможно какие-то соединения не сразу закрываются

команда db2stop в наборах команд выше с какой-то попытки таки выходит с нулевым кодом возврата (типа успешно, ога)
после этого после некоторого ожидания скрипт пытается запустить db2start, но он не может стартануть, потому что старые процессы скорее всего еще не завершились,
а уже через час db2start запускается нормально ! :)

увеличил паузу до запуска, общее время на остановку и запуск около часа не знаю насколько это надежно, время покажет, ближе к ночи со свечкой заи*ало над ним стоять хоть и удаленно

почему-то почти все тяжелые сетевые приложения со скрипом останавливаются, наверно это как то связано с особенностями использования tcp стэка?
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102730
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$HOME/sqllib/bin/ipclean ?
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102736
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hunterik$HOME/sqllib/bin/ipclean ?

расшифруйте свой вопрос более полным предложением
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102751
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2,

Не надо запускать эти команды в цикле. Ваш второй набор команд (Cmd2) - это просто жесть :)
Это примерно как алгоритм открывания двери:
"Вставить ключ в замок; Выбить дверь ногой; Вставить ключ в замок; Подождать 5s; Попытаться повернуть ключ и окрыть дверь"
Не удивительно, что после шага 2 можно и двери уже не найти. А тут еще и в цикле...

db2 force applications all; db2stop
это не одно и то же, что и:
db2stop force

В 1-м случае 1-я команда - асинхронная. Если приложений много, то оно будет их транзакции откатывать, агентов уничтожать и т.п. Работы может быть много, и к моменту запуска db2stop совершенно естественно, что за всеми приложенияим не успеют убрать, и выйдет ошибка - есть активные соединения.

db2stop force - команда синхронная. Она блокирует новые подключения, откатывает все транзакции, отключает приложения. Только после этого останавливает экземпляр и потом возвращает управление. Но, как уже было сказано, откат транзакций в общем случае может занять время.

Если ждать неохота, то можно так:
1. Останов с указанием таймаута, например, 60 сек:
db2gcf -d -t 60 -L
2. Если возращен ненулевой код ошибки:
Убийство процессов:
db2gcf -k -t 15 -L
Очистка IPC ресурсов:
ipclean -a
ipcs -a | grep ${DB2INSTANCE}

Последняя команда выдаст вам IPC ресурсы владельца экземпляра, которых, по-хорошему, должно уже не быть, если, конечно, на сервере из под-этого же пользователя не запущены другие процессы, использующие IPC. Если они всё же есть, и выяснено, что они действительно могли остаться только от db2, то можно почистить их руками (или скриптом) с помощью:
ipcrm [-s|-m|-q] id
Ну и имейте ввиду, что такой жесткий останов db2 скорее всего приведет к тому, что db2 после старта и активации базы начнет crash recovery. Незавершенные транзакции, если они были, всё равно надо откатить...
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102754
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanyock2Hunterik$HOME/sqllib/bin/ipclean ?

расшифруйте свой вопрос более полным предложением

Убирать оставшиеся ipc после останова инстанса...

А вообще, какая у вас версия, на какой ОС, что в db2diag.log, используете ли DAS?
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102934
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hunteriksanyock2пропущено...


расшифруйте свой вопрос более полным предложением

Убирать оставшиеся ipc после останова инстанса...

в смысле, вы предлагаете команду ipclean использовать повторно?
она ведь присутствует в моих наборах команд?

HunterikА вообще, какая у вас версия, на какой ОС, что в db2diag.log, используете ли DAS?
Применительно конкретно к этому случаю: Linux, DB2 v9.7
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39102945
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinsanyock2,

Не надо запускать эти команды в цикле. Ваш второй набор команд (Cmd2) - это просто жесть :)


в цикле конечно же расставлены паузы на ожидание с нарастанием ожидания
бывает, что остановка проходит успешно где-то в середине цикла до 10, примерно с 4-5 раза

набор моих команд дает сбой примерно 1 раз в 1-2 недели, т.е. часто срабатывает


Mark BarinsteinЭто примерно как алгоритм открывания двери:
"Вставить ключ в замок; Выбить дверь ногой; Вставить ключ в замок; Подождать 5s; Попытаться повернуть ключ и окрыть дверь"
Не удивительно, что после шага 2 можно и двери уже не найти. А тут еще и в цикле...

у меня "db2 force applications all" ассоциируется с "всем! отойдите подальше!"
следующая "непосредственно действие, приговаривая, кто не спрятался, я не виноват"
потом "эй, ну куда же вы лезете любопытные! вам же сказали отойти подальше!"
потом идет "db2stop force" - наверно лишнее потому что и так уже остановлено,
далее (не показано в моих наборах) для проверки еще идет db2start;db2stop - т.е. в вашей терминологии "вставить ключ, повертеть им туда сюда, вроде работает, ну ладно, поехали дальше"
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103329
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinsanyock2,

В 1-м случае 1-я команда - асинхронная. Если приложений много, то оно будет их транзакции откатывать, агентов уничтожать и т.п. Работы может быть много, и к моменту запуска db2stop совершенно естественно, что за всеми приложенияим не успеют убрать, и выйдет ошибка - есть активные соединения.

db2stop force - команда синхронная. Она блокирует новые подключения, откатывает все транзакции, отключает приложения. Только после этого останавливает экземпляр и потом возвращает управление. Но, как уже было сказано, откат транзакций в общем случае может занять время.
...
Незавершенные транзакции, если они были, всё равно надо откатить...

для эксперимента пробовал подождать db2stop force, прождав больше 2-х часов, решил (собственно только поэтому) сделать свой велосипед

да и кстати, даже если ребутнуть сервер во время ожидания db2stop, то crash recovery занимает 1-5 минут, но никак не 2 часа!

и много, очень много сообщений на тему проблемной остановки DB2 на разных форумах, это ведь не только у меня такое происходит
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103330
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanyock2 прождав больше 2-х часов, решил (собственно только поэтому) сделать свой велосипед

причем прождав БЕЗУСПЕШНО
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103361
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanyock2,

в конце концов, кто или что заставляет её останавливать? Причём, так сказать, рутинным образом? Онлайновые бекапы ведь есть?

У меня тогда с репликацией (Oracle->DB2) были проблемы. Я тогда впервые увидел коммандлайновую утилиту, которая была глючнее даже GUI - но, в самом деле, она же тоже написана на Java, так что ничего странного. Сейчас у меня своя репликация, так что в этом смысле всё ОК, годами не рестартовываю.
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103368
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsasanyock2,

в конце концов, кто или что заставляет её останавливать? Причём, так сказать, рутинным образом? Онлайновые бекапы ведь есть?

У меня тогда с репликацией (Oracle->DB2) были проблемы. Я тогда впервые увидел коммандлайновую утилиту, которая была глючнее даже GUI - но, в самом деле, она же тоже написана на Java, так что ничего странного. Сейчас у меня своя репликация, так что в этом смысле всё ОК, годами не рестартовываю.

перед запуском db2dart, насколько я знаю, нужно останавливать СУБД для получения более менее актуальных результатов?
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103449
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2для эксперимента пробовал подождать db2stop force, прождав больше 2-х часов, решил (собственно только поэтому) сделать свой велосипед

да и кстати, даже если ребутнуть сервер во время ожидания db2stop, то crash recovery занимает 1-5 минут, но никак не 2 часа!

и много, очень много сообщений на тему проблемной остановки DB2 на разных форумах, это ведь не только у меня такое происходит

С каждым таким случаем надо разбираться отдельно.
Останавливайте таким скриптом, например.
db2stop_my.sh
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
set -x
db2gcf -d -L -t 120
rc=$?
if [ ${rc} -ne 0 ]; then
  db2fodc -hang full
  db2gcf -k -L -t 15
  for t in m s q; do
    for id in $(ipcs -${t} | grep ${DB2INSTANCE} | cut -d' ' -f2); do
      ipcrm -${t} ${id}
    done
  done
fi
Таймаут на останов - 2 минуты.
При неудаче:
Потом сбор информации о причинах зависания для открытия PMR в поддержку.
Затем убийство процессов и очистка IPC ресурсов.
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103455
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так правильнее на общий случай:
ipcs -${t} | grep ${DB2INSTANCE} | tr -s ' ' | cut -d' ' -f2
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39103477
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinОстанавливайте таким скриптом, например.
...


большое спасибо, попробую
...
Рейтинг: 0 / 0
как надежно остановить DB2?
    #39105511
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пригодилось!

Код: sql
1.
2.
3.
4.
5.
6.
7.
connect to YYY @

declare mycursor cursor
database XXX user ... using ...
for select ... @

load client from mycursor of cursor ... @



На данный момент XXX (10.5.1) выполняет crash recovery. Коннект на YYY (10.5.5) подвис и стал неубиваем (возможно, до окончания crash recovery?), соответственно и базу не остановить.

А XXX долго восстанавливается, она потребовала с меня аж сентябрьские логи. Незакрытая кем-то транзакция? Очень странно, я не видел столько живущих коннектов. И как-то надо детектировать такие штуки, чтобы избежать сюрпризов.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как надежно остановить DB2?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]