13.11.2008 05:02
Vovantus
 
Пока сидел на 8, перед перезагрузкой сервака запускал скрипт, следующего содержания (кусочек скрипта):
Цитата:
echo connect [EMAIL="internal/qqq@BASE"]internal/qqq@BASE[/EMAIL] > db_shut.sql
echo shutdown immediate >> db_shut.sql
echo exit >> db_shut.sql
svrmgrl.exe @db_shut.sql
del db_shut.sql
На 9i этот скрипт не работает, как я понял, из-за отсутствия svrmgrl.exe. Вопрос. Для остановки базы на 9i нужно переводить её в состояние shutdown через скрипт, или в процессе выключения сервака, при остановке сервиса базы, он сам всё ПРАВИЛЬНО зделает.
13.11.2008 07:52
OlegON
 
Не только из-за svrmgrl, но и потому, что internal в 9ке нет. Насчет остановки перед ребутом есть разные мнения. Дело в том, что в виндовом сервисе, если посмотреть заложен тот самый shutdown immediate. НО, у винды есть особенность не дожидаться остановки сервисов, даже если нет killservicetimeout (не помню, как он точно пишется). И в результате потом база поднимается с восстановлением. Я предпочитаю сервак не ребутить :) Остановишь скриптом - хорошо, не остановишь - тоже не смертельно, хотя хуже.
13.11.2008 08:32
Vovantus
 
Цитата:
OlegON Я предпочитаю сервак не ребутить :)
Я тоже. Но в силу разных обстоятельств иногда приходится сервак перезагружать.
Цитата:
OlegON Остановишь скриптом - хорошо, не остановишь - тоже не смертельно, хотя хуже.
Мона пример скрипта?
З.Ы. У меня сейчас реализована следующая схема. В момент выключения/перезагрузки сервака, ОС сначало в вежливой форме "просит" сервисы прекратить работу (выделяя на это определённое время). Именно в этот момент происходит перехват управления и сервак не будет выключен/перезагружен, пока не будут остановлены важные сервисы.
13.11.2008 12:23
baggio
 
oradim -shutdown -sid имябазы
13.11.2008 14:39
OlegON
 
Цитата:
baggio oradim -shutdown -sid имябазы
Это тоже самое, что net stop OracleService... Там ключ вроде shuttype, надо его переключить в inst, чтобы инстанс гасил.
13.11.2008 15:31
baggio
 
токо шо... попробывал...
Код:
Shutting down instance: further logons disabled
Shutting down instance (immediate)
License high water mark = 1
Thu Nov 13 15:20:12 2008
alter database close normal 
Thu Nov 13 15:20:12 2008
SMON: disabling tx recovery
SMON: disabling cache recovery
Thu Nov 13 15:20:12 2008
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Thread 1 closed at log sequence 84
Successful close of redo thread 1
Thu Nov 13 15:20:13 2008
Completed: alter database close normal
Thu Nov 13 15:20:13 2008
alter database dismount
Completed: alter database dismount
ARCH: Archiving is disabled
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archiving is disabled
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
сервис закрылся...
Completed: alter database close normal
имхо я думаю это лучше и быстрее чем иммедиэйт..
но на всякий...
oradim -shutdown -shuttype inst -sid имябазы
oradim -startup -STARTTYPE inst -sid имябазы
14.11.2008 09:34
OlegON
 
Дык я о чем говорю :) Что тебе повезло, сервис закрылся. А есть случаи, когда он не закрывается, например, когда какой-то джоб активизировался сильно или просто активность в базе высокая. "Вай", говорит винда и делает контрольный в голову. А база потом восстанавливается. Не так, чтобы смертельно, но неприятно и иногда заставляет юзера падать в обморок при надписи "media needs recovery", поверь, я видел это уже много раз. А скриптом останавливать - он однозначно положит базу корректно. Еще причина, по которой я не пользуюсь oradim - это сугубо виндовая утилита.
Что и чем лучше, чем immediate я не понял...
14.11.2008 10:34
Vovantus
 
Цитата:
OlegON А скриптом останавливать - он однозначно положит базу корректно.
Поделись кодом скрипта, пожалуйста, сам я не осилю
14.11.2008 12:49
deucel
 
Цитата:
Vovantus Поделись кодом скрипта, пожалуйста, сам я не осилю
Сделай батник в ДОСовой кодировке

Код:
net stop "Модуль контроля цен"
net stop "Кассовый модуль Супермага"
net stop "Почтовый сервер Супермага"
net stop "Сервер Супермага"
set nls_lang=russian_cis.ru8pc866
echo connect sys/qqq as sysdba > db_shut.sql
echo shutdown immediate >> db_shut.sql
echo exit >> db_shut.sql
sqlplus.exe /nolog @db_shut.sql
del db_shut.sql
net stop "OracleServiceBaseName"

Выключение компьютера - если нужно.
shutdown /s /d p:1:1
Часовой пояс GMT +3, время: 23:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.