|
|
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
Есть 2 сервиса. Код: plsql 1. 2. 3. Oracle по ним прекрасно стартует. А вот при reboot всё аварийно валится. Не могу никак добиться чтобы был последовательный останов как под старым initrd. Как добиться нормального останова как было? Код: plsql 1. авторoratest56:~ # systemctl cat oracle-ohasd.service # /etc/systemd/system/oracle-ohasd.service # Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # Oracle OHASD startup [Unit] Description=Oracle High Availability Services After=network.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null Type=simple Restart=always TimeoutStopSec=5min [Install] WantedBy=multi-user.target graphical.target oratest56:~ # авторoratest56:~ # systemctl cat ohasd.service # /run/systemd/generator.late/ohasd.service # Automatically generated by systemd-sysv-generator [Unit] Documentation=man:systemd-sysv-generator(8) SourcePath=/etc/init.d/ohasd Description=LSB: Start and Stop Oracle High Availability Service Before=multi-user.target graphical.target lockgcstartup.service After=network-online.target remote-fs.target open_iscsi.service raw.service Wants=network-online.target remote-fs.target [Service] Type=forking Restart=no TimeoutSec=5min IgnoreSIGPIPE=no KillMode=process GuessMainPID=no RemainAfterExit=yes ExecStart=/etc/init.d/ohasd start ExecStop=/etc/init.d/ohasd stop oratest56:~ # Руками конечно всё останавливается нормально. Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2017, 21:54 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
Suse Sles Linux 12SP2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2017, 21:56 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
Дядя Жора, Криворукий индус писал эти скрипты инициализации и забыл указать зависимость между ними. Нужно в файлике oracle-ohasd.service в секции [Unit] добавить строчку: Before=ohasd.service Тогда все будет корректно останавливаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 20:50 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
ivan78[Unit] добавить строчку: Before=ohasd.service Тогда все будет корректно останавливаться. Тут проблема глубже, и, как я почитал по форумам, оказывается касается не только Oracle, но и других служб, которые при рибуте надо корректно остановить. Before=ohasd.service действительно укажет servised дать команду на останов ohasd.service перед oracle-ohasd.service. Но вся проблема в том, что Linux не ждёт остановки ohasd.service перед остановкой oracle-ohasd.service. И получается, что обе службы вылетают просто аварийно. В итоге мы имеем Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. initrd как и положено останавливал всё последовательно и честно ждал пока ohasd.service остановится перед тем как приступить к остановке следующей службы во время рибута. Теперь же с агрессивной политикой параллелизма systemd добиться от него ожидания остановки никак не удаётся. И я вообще стал сомневаться возможно ли это в принципе. Конечно же можно перед рибутом просто остановить ohasd.service руками, а потом уже уходить на перезагрузку, но в жизни бывают разные ситуации и хотелось бы чтобы простой рибут был корректным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 10:26 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
Можно кстати опять перейти на initrd. Но во-первых я нигде не нашёл в документации Oracle требований отказаться от systemd. А во-вторых в дефолтных настройках initrd (во всяком случае у Suse Sles 12) отсутствует добрая половина необходимых скриптов в /init.d (например network) Т.е. чтобы даже просто перейти на initrd надо ещё доработать его напильником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 10:34 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
При использовании initrd подобная проблема наблюдалась при включённом параллелизме. Потому в Doc ID 464061.1 даже есть указание отключать параллелизм Код: plsql 1. В systemd (как я понимаю) параллелизм невозможно отключить в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 10:39 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
После апгрейда на Oracle 12.2 проблема решилась! Они поправили oracle-ohasd.service так, что при рибуте теперь Linux таки стал ждать нормального останова. Не понятно только почему они не поправили в 11.2.0.4 (с учётом того что у меня был августовкий патчсет) Вот так он теперь стал выглядеть авторoratest56:~ # systemctl cat oracle-ohasd.service # /etc/systemd/system/oracle-ohasd.service # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. # # Oracle OHASD startup [Unit] Description=Oracle High Availability Services After=syslog.target network-online.target remote-fs.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null ExecStop=/etc/init.d/init.ohasd stop >/dev/null 2>&1 </dev/null TimeoutStopSec=60min Type=simple Restart=always # Do not kill any processes except init.ohasd after ExecStop, unless the # stop command times out. KillMode=process SendSIGKILL=yes [Install] WantedBy=multi-user.target graphical.target oratest56:~ # Как видно появилась секция ExecStop. Увеличился After и появились KillMode=process SendSIGKILL=yes Непонятно только на кой они увеличили TimeoutStopSec с 5 минут на 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 17:40 |
|
||
|
start-stop ohasd под systemd
|
|||
|---|---|---|---|
|
#18+
К сожалению коррекция oracle-ohasd.service под 11.2.0.4 не решила этой проблемы и дело тут вовсе не в нём. Может кому-нибудь понадобится. После 2-х недельной переписки в оракловым саппортом они наконец-то выдали решение. Код: plsql 1. 2. 3. 4. Т.е. чтобы эта хрень нормально заработала выходит надо ставить 11.2.0.4.160719 (это июль 2016) и только его, а дальше ставить патч 11.2.0.4.160719OCW При такой хитровы$$%й комбинации действительно ohasd стал корректно завершаться. Дальше они мне предложили начать процедуру сбора информации для выпуска патча под последний патчсет 170814 (который за август 2017). Прикольные чувачки. Ещё год назад знали про баг, а в новые патчи его почему-то не включали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2017, 23:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39520103&tid=1885110]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 439ms |

| 0 / 0 |
