|
|
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
Коллеги, добрый день. вопрос очень нестандартный, но вдруг у кого-то будут соображения. нужна защита. не от дурака, а от ошибки высококвалифицированного, обличенного привилегиями DBA админа(че-ло-ве-ка) . есть набор админов oracleDBA. скажем, Х человек. есть набор баз данных Oracle различных версий на разных платформах (основные - AIX, SUN/Oracle, Linux) в количестве 100Х штук. критичность БД - от шушерного стенда, который никто и не заметит до очень и очень критичной системы, за инцидент на которой можно и на улицу пойти навсегда... есть большое количество задач, которые приходится решать на этих БД. в том числе и рестарты. и количество задач и их длительность зачастую такие, что приходится делать по 2-3 одновременно. проблема заключается в том, что из-за всего вышеперечисленного бывают случаи, когда инженер, казалось бы, все делает правильно, но не в той консоли. ну ошибся окошком ... как можно защититься от подобных ошибок ? правило что в один момент времени в работе может быть только одна задача - не работает. сильно падает производительность. раскраска цвета консоли в зависимости от критичности - не помогает. можно делать и длительные непересекающиеся задачи на 2 пром.системах одновременно. есть какие-то возможности при вводе команды выполнять какое-либо действие по ключевым словам ? на любом уровне. прикладной (стандартное, не самописное ПО)/системный/БДшный ? например, ввел команду, содержащую определенные слова, и выскочило окошко с какой-то информацией. или пришло сообщение с именем сервера в консоли или БД выдала на экран свое имя или еще что-то.... важно чтобы админ, который проводит работы на сервере X1 с БД Y1 в случае ошибки мог увидеть имя сервер X2 и/или имя БД Y2 и, что еще более важно, чтобы админ мог успеть осознать и передумать! PS. триггер before shutdown не работает. после того, как в консоли введена команда shutdown - останов системы неизбежен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 21:28 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
0. Научить админов смотреть что они выключают? Дать время админам смотреть что они выключают? 1. отучиться наконец гасить базы shutdown и использовать srvctl stop database -d mydb . Как раз ручками набирая "mydb" и будет самопроверка. 2. выделить одного человека, который будет заниматься только выключением\перезагрузкой. 3. как-то поможет правильный login.sql чтобы строка подключения была в sqlplus и правильный command line prompt У нас как раз "можно и на улицу пойти навсегда" если система мониторинга обнаружит одновременные подключения к prod и non-prod БД\хостам. При этом с shutdown ошибаться в другом окошке совсем не обязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 21:52 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
А я раскрашиваю разные консоли в разные цвета. Продовские - в различные вариации красного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 22:20 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
kvarz, А че такого? Лишь-бы в SLA укладывалось. Вот drop database это - совсем другое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 22:36 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
Как-то случайно набрала команду shutdown immediate не в sqlplus, а в консоле, и старая добрая солярка ушла в ребут на пару часов ))) с тех пор пишу только shu immediate ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 23:18 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
DВА, У вас там ораклисты под рутом ходют??? Однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 00:14 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
1. что-то должно обязательно показывать где ты сейчас: или prompt или title 2. написать простенький скрипт shu.sql с проверкой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и вызывать через "@shu immediate" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 00:45 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
xtender2. написать простенький скрипт shu.sql с проверкой: И потом размножить его на 100х серверов, и объяснить всем новеньким что делаем именно так, когда над душой стоит погонщик следящий за нормой выработки. Проблема в консерватории. Если базы такие важные, то нельзя работать где-то еще, если работаешь с той самой . Увы, гонки противопоказаны при перевозке действительно драгоценных грузов. Правильные prompt, разные цвета, хождение под пользователем с least privs это всё помогает, но костыль. И целые схемы trunc, и большие важные индексы drop, всё это есть и будет при повышенной сверх нормы нагрузке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 05:14 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
DВАКак-то случайно набрала команду shutdown immediate не в sqlplus, а в консоле, и старая добрая солярка ушла в ребут на пару часов ))) с тех пор пишу только shu immediate ))) это называется обезьянка с гранатой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 06:28 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
DВАКак-то случайно набрала команду shutdown immediate не в sqlplus, а в консоле, и старая добрая солярка ушла в ребут на пару часов ))) с тех пор пишу только shu immediate )))это нужно было промахнуться дважды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 10:06 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
рут#DВАКак-то случайно набрала команду shutdown immediate не в sqlplus, а в консоле, и старая добрая солярка ушла в ребут на пару часов ))) с тех пор пишу только shu immediate )))это нужно было промахнуться дважды. ничуть не удивлен :) тут уже писали - как под рутом работать с ораклом в плане обычного администрирования? не, ну и # от $ отличить да, сложно. но это все накладки женской логики. по теме нормально йода написал, кроме п. 2 и 3. отдельного человека никто не будет брать на работу. если реально что-то массовое - то никто не отменял написание shell скриптов. если мы знаем что нам в день А надо будет сделать массовый шатдаун - заранее пишем скрипт - разве это проблема? текст спокойно перепроверяем и по необходимости достаточно его запустить - и все нужные серваки в дауне. второй скрипт их поднимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 10:57 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
kvarz(че-ло-ве-ка)Решать орг.задачи программным путем - впустую... Посекторно распределить и делегировать ответственность вплотную до уровня исполнителей, с разовым отчетом о предпринятых мерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 11:41 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
master_yoda, Зачем на сами сервера то класть? Работай со своей машины. А вообще если у вас нет своих скриптов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 12:32 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
kvarz , еще вариант защиты от совсем уж дурака, если у вас такие, - написать системный триггер before shutdown, который будет проверять некоторое условие, например поле в табличке, и если там нет нужного значения, то в триггере выбрасывается exception и shutdown не пройдет. Пройдет только после изменения значения в поле на нужное. ...тогда возвращать в таблицу запрещающее значение будет наиболее естественно в триггере на startup. Или более простой в исполнении вариант, если все таки там не совсем дураки, - тоже триггер на shutown, но будет запрещать первую попытку shutdown, выводя в тексте exception имя базы в верхнем регистре. А вторая попытка в течении, скажем, 5ти минут, уже будет разрешаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 14:09 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
Nobody1111триггер before shutdownНе может предотвратить shutdown. Sysdba даже исключения не увидит в своей сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 14:33 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
instead of shutdownNobody1111триггер before shutdownНе может предотвратить shutdown. Sysdba даже исключения не увидит в своей сессии. Да, верно, забыл, что это от sysdba делается. Можно запретить команду shutdown в sqlplus https://docs.oracle.com/cd/B28359_01/server.111/b31189/ch9.htm#i1058852 Чтобы выполнить shutdown, придется сначала убрать запрет из таблицы PRODUCT_USER_PROFILE. Правда, от startup force это не спасет.... Восстановление запрета после стартапа опять же можно автоматизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 14:56 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
Триггера и прочие препятствия к выполнению административных задач - плохая практика. Такие средства будут мешать нормальной работе DBA, вызывать раздражение и, как следствие, будут либо тихо аннулированы, либо их обход будет автоматизирован - в итоге технические препятствия не выполнят своей предохранительной функции в "час Ч". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 15:36 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
kvarz, Мы в таких ситуациях поступаем таким образом: 1. Работаем в данный момент времени только с той базой, которая нужна. Отключаемся от всех остальных баз. 2. Пишем документ, в котором расписано каждое действие - с какой базой работаем, с какого сервера, что конкретно и когда запускаем. Выглядит немного параноидально, что да то да, но реально помогает. 3. Всегда работаем попарно - один запускает скрипты, второй сверяется с документом из пункта 2 на предмет правильности выполнения. Замедляет работу? Может быть, но по крайней мере окошками не ошибаемся. Никакие скрипты не защитят от невнимательности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 15:51 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, на вкус и цвет все фломастеры разные. Особенно если дело касается "очень и очень критичной системы, за инцидент на которой можно и на улицу пойти навсегда...". Я так не делаю, хватает set sqlprompt в login.sql, но если и инженеров, и баз много, то ограничения будут разумной практикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 15:53 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
Nobody1111Можно запретить команду shutdown в sqlplus https://docs.oracle.com/cd/B28359_01/server.111/b31189/ch9.htm#i1058852 Чтобы выполнить shutdown, придется сначала убрать запрет из таблицы PRODUCT_USER_PROFILE. Правда, от startup force это не спасет.... Восстановление запрета после стартапа опять же можно автоматизировать. Само собой, такое ограничение стОит ставить только на критичных базах. Думаю, что startup тоже можно запретить - ограничение должно работать только после подключения к базе, то есть только в случае startup force, но надо проверить, не запоминает ли запреты после shutdown. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 16:40 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
xtenderЗачем на сами сервера то класть? Работай со своей машины. А вообще если у вас нет своих скриптов.... Скрипты есть конечно, но именно sysdba операции положено выполнять с самого хоста, а операции не требующие sysdba с самого хоста выполнять не положено :) Со своей машины это здорово конечно, но jump hosts непосредственно в датацентре пациента заметно улучшает отзывчивость. Опять же разные цвета приглашения командной строки для разных ДЦ (256 оттенков красного) и прод\непрод баз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2017, 18:06 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
хм ... если резюмировать ... варианты есть, но ни один из них не годится для / as sysdba :( только административка. но человеческий фактор всегда остается. или перепутал и забыл select name from v$database или не закрыл консоль после выполнения задачи или одно из двух. в итоге остается только надеяться на сознательность и внимательность.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 10:44 |
|
||
|
защита от shutdown
|
|||
|---|---|---|---|
|
#18+
А использовать glogin.sql или login.sql - чтобы приглашение sqlplus поменять на типа -WARN - PROD -SID ? и в приглашении видно будет. что за база вообще. Как один из вариантов вдобавок к раскраске, предлагаемой выше. Правда не все символы можно ставить в приглашение sqlplus - у меня так как-то OEM отказался с базой работать из-за какого-то спецсимвола в glogin.sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39543649&tid=1885017]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 421ms |

| 0 / 0 |
