Проблема такова. Есть несколько машин с Oracle 9i Release 1 (последний релиз, содержавший JServer). На машинах -- от 512M до 1G оперативки. Знаю, что мало, но поделать ничего не могу. Иногда Oracle начинает ни с того ни с сего тормозить, т. е. коннектов к базе -- нуль, процессор не загружен, свопления активного не заметно -- а новое соединение установить не могу. Более того, на сервере 1521 порт открыт и слушается (сетевое соединение есть), а вот законнектиться по JDBC -- хрен. Версии драйверов на клиенте -- произвольные (от 9.0.1 до 10.1, пробовал и thin, и oci).
Лечится иногда рестартом оракла, иногда -- рестартом серверной машины.
Понимаю, что надо читать Performance Tuning Guide, но не мог бы уважаемый All посоветовать, где искать подводные грабли, а заодно, что можно почитать по настройке производительности на машинах класса low-end?
Заранее спасибо.
Re: Тормоза Oracle
От:
Аноним
Дата:
02.08.04 08:08
Оценка:
патчить. а лучше ставить 9.2, 9.0.x не самый удачный релиз оракла
к стате это под виндовсом ?
Здравствуйте, Bass, Вы писали:
B>Привет, All!
B>Проблема такова. Есть несколько машин с Oracle 9i Release 1 (последний релиз, содержавший JServer). На машинах -- от 512M до 1G оперативки. Знаю, что мало, но поделать ничего не могу. Иногда Oracle начинает ни с того ни с сего тормозить, т. е. коннектов к базе -- нуль, процессор не загружен, свопления активного не заметно -- а новое соединение установить не могу. Более того, на сервере 1521 порт открыт и слушается (сетевое соединение есть), а вот законнектиться по JDBC -- хрен.
Я бы искал проблему поближе к Jxxx. У меня дома 9.2 вполне неплохо чувствует себя на pIII-800/256Mb.
B>Проблема такова. Есть несколько машин с Oracle 9i Release 1 (последний релиз, содержавший JServer). На машинах -- от 512M до 1G оперативки. Знаю, что мало, но поделать ничего не могу. Иногда Oracle начинает ни с того ни с сего тормозить, т. е. коннектов к базе -- нуль,
Т.е. вообще нет коннектов или нет новых пытающихся подключиться?
Опиши проблему подробнее.
B>Иногда Oracle начинает ни с того ни с сего тормозить
В чем именно тормозит, чем замерено, с чем сравнивал. "новое соединение установить не могу" — это не тормоза это другое.
B>а вот законнектиться по JDBC -- хрен
Что значит хрен, какой он на вид . SQL*Plus как коннектится?
B>Oracle 9i Release 1 (последний релиз, содержавший JServer)
При чем здесь JServer?
B>>Иногда Oracle начинает ни с того ни с сего тормозить W>В чем именно тормозит, чем замерено, с чем сравнивал. "новое соединение установить не могу" — это не тормоза это другое.
Замерять бессмысленно, т. к. все разумные рамки превышены. Ну не буду ж я ждать 15 минут?!
B>>а вот законнектиться по JDBC -- хрен W>Что значит хрен, какой он на вид . SQL*Plus как коннектится?
Никак. Т. е. sqlplus/nolog; connect scott/tiger@ORCL засыпает навечно (или почти навечно), а telnet example com 1521 устанавливает сетевое соединение.
B>>Oracle 9i Release 1 (последний релиз, содержавший JServer) W>При чем здесь JServer?
Это к вопросу о патчах и апгрейдах -- мы этот самый JServer используем и жить без него не можем. Т. е. перейти на 9.2 или 10.1 пока не можем.
OS -- Solaris 9/SPARC (UltraSPARC IIi 440Mhz/1024M RAM), Windows/Linux (Celeron 900-1200 Mhz, 512M RAM).
Здравствуйте, KisA, Вы писали: KA>Т.е. вообще нет коннектов или нет новых пытающихся подключиться?
Имеется в виду, что изначально база не загружена, а попыток коннекта -- один штук (я сижу и жду). Причём ситуация совершенно идентична и для Shared Server, и для Dedicated Server.
Re[3]: Тормоза Oracle
От:
Аноним
Дата:
02.08.04 10:00
Оценка:
видел похожее когда сервер зачем-то лазил в DNS пытаясь выяснит название клиента. попробуй прописать имя клиента в hosts.
Здравствуйте, Аноним, Вы писали:
А>видел похожее когда сервер зачем-то лазил в DNS пытаясь выяснит название клиента. попробуй прописать имя клиента в hosts.
Здравствуйте, Bass, Вы писали:
W>>Что значит хрен, какой он на вид . SQL*Plus как коннектится? B>Никак. Т. е. sqlplus/nolog; connect scott/tiger@ORCL засыпает навечно (или почти навечно), а telnet example com 1521 устанавливает сетевое соединение.
Ну а как с самого сервера коннект? То есть локализуйте проблему: сетевые компоненты, Listener или сам Oracle не создает сессию. Если первое/второе, то плиз в Net Services Administrator's Guide, Part III Testing and Troubleshooting Oracle Net Services. Если третье (что очень маловероятно), то смотрите трейсы, вывешивайте эвенты. Запустите какой-нить joв: если отрабатывает, то с созданием сессий проблем нет. Может триггер на Logon навесили задумчивый?
Обратитесь в суппорт в конце концов, если лицензия имеется.
B>Это к вопросу о патчах и апгрейдах -- мы этот самый JServer используем и жить без него не можем. Т. е. перейти на 9.2 или 10.1 пока не можем.
Шо вы мене такое говорите!
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production
S>Я бы искал проблему поближе к Jxxx. B>Да я и так уже отвёл под Java Pool Size 300M. Результат -- тот же.
Опять путаете! Для того чтобы законнектиться, не нужен никакой Java Pool, хоть через JDBC хоть через задницу!
Здравствуйте, wildwind, Вы писали:
W>Ну а как с самого сервера коннект? То есть локализуйте проблему: сетевые компоненты, Listener или сам Oracle не создает сессию. Если первое/второе, то плиз в Net Services Administrator's Guide, Part III Testing and Troubleshooting Oracle Net Services. Если третье (что очень маловероятно), то смотрите трейсы, вывешивайте эвенты. Запустите какой-нить joв: если отрабатывает, то с созданием сессий проблем нет.
Именно третье. Т. е. listener работает.
W>Может триггер на Logon навесили задумчивый?
Нет. Девственно чистая база.
W> B>>Это к вопросу о патчах и апгрейдах -- мы этот самый JServer используем и жить без него не можем. Т. е. перейти на 9.2 или 10.1 пока не можем. W>Шо вы мене такое говорите! W>
W>Connected to:
W>Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
W>With the Partitioning option
W>JServer Release 9.2.0.5.0 - Production
W>
Это он пишет. А в доках к 9.2 русским по белому сказано про "desupport of JServer". По крайней мере, поддержки CORBA, EJB и JSP в 9.2 уже нет, хотя кастрированную JVM всё-таки сохранили. А единственный способ получить работающий JServer на 9.2 -- это upgrade версии 9.0.1.
S>>Я бы искал проблему поближе к Jxxx. B>>Да я и так уже отвёл под Java Pool Size 300M. Результат -- тот же. W>Опять путаете! Для того чтобы законнектиться, не нужен никакой Java Pool, хоть через JDBC хоть через задницу!
Я понимаю В данном случае Java -- определённо не в тему. Хотя тормозов добавляет.
Здравствуйте, Bass, Вы писали:
B>Привет, All!
B>Проблема такова. Есть несколько машин с Oracle 9i Release 1 (последний релиз, содержавший JServer). На машинах -- от 512M до 1G оперативки. Знаю, что мало, но поделать ничего не могу. Иногда Oracle начинает ни с того ни с сего тормозить, т. е. коннектов к базе -- нуль, процессор не загружен, свопления активного не заметно -- а новое соединение установить не могу.
Несколько вопросов:
— Содержимое alertlog-а
— Что говорит connect as sysdba + startup nomount с последующим alter database open?
— archivelog или noarchivelog? Если archivelog, то auto archiving или manual archiving? Может, он сидит и ждет, когда кто-нибудь сархивирует redolog-и (в этом случае некоторое время назад он должен был разрешать коннекты, т.к. кто-то должен был заполнить redolog-и).
— включить tracing на клиентской стороне, посмотреть, устанавливается ли соединение с БД с последующим зависанием, или же виснет на создании соединения. В sqlnet.ora добавить такие строки:
Здравствуйте, Bass, Вы писали:
B>Это он пишет. А в доках к 9.2 русским по белому сказано про "desupport of JServer". По крайней мере, поддержки CORBA, EJB и JSP в 9.2 уже нет, хотя кастрированную JVM всё-таки сохранили.
Ну положим этого там не сказано, тем более русским. Desupport касается EJB, JSP и CORBA, а JServer просто переименован в Oracle JVM. Оно и правильно — нечего пихать в базу все подряд, в частности presentation layer (и кроме того надо же покупать OAS )
B>А единственный способ получить работающий JServer на 9.2 -- это upgrade версии 9.0.1.
Можно и с 8.1.7.
B>Именно третье. Т. е. listener работает.
Плохо. Может с настройками что намудрили. Установка с нуля/на другую машину помогает?
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, Bass, Вы писали:
W>Ну положим этого там не сказано, тем более русским. Desupport касается EJB, JSP и CORBA, а JServer просто переименован в Oracle JVM. Оно и правильно — нечего пихать в базу все подряд, в частности presentation layer (и кроме того надо же покупать OAS )
Согласен, не русским Касательно JServer -- признаю, лажанулся: я имел в виду именно CORBA. Просто эту самую корбу мы и используем.
B>>А единственный способ получить работающий JServer на 9.2 -- это upgrade версии 9.0.1. W>Можно и с 8.1.7.
Не пробовал, но верю
B>>Именно третье. Т. е. listener работает. W>Плохо. Может с настройками что намудрили. Установка с нуля/на другую машину помогает?
Девственно чистая база. Т. е. не помогает.
Здравствуйте, Sergey Ten, Вы писали:
ST>- Содержимое alertlog-а
Прошу прощения за ламерство, но где он лежит? Просто я не админ, я программист
ST>- Что говорит connect as sysdba + startup nomount с последующим alter database open?
Ещё не пробовал, ситуация пока не повторялась. Повторится -- попробую.
ST>- archivelog или noarchivelog? Если archivelog, то auto archiving или manual archiving? Может, он сидит и ждет, когда кто-нибудь сархивирует redolog-и (в этом случае некоторое время назад он должен был разрешать коннекты, т.к. кто-то должен был заполнить redolog-и).
archivelog, manual archiving. А можно с этого момента подробнее?
ST>- включить tracing на клиентской стороне, посмотреть, устанавливается ли соединение с БД с последующим зависанием, или же виснет на создании соединения. В sqlnet.ora добавить такие строки: ST>
Чайниковский вопрос: на серверной стороне это делается через ALTER SYSTEM или тоже в sqlnet.ora?
Ещё вопрос: какой из sqlnet.ora использовать? Я нашёл два:
${ORACLE_BASE}/config/${ORACLE_VERSION}/sqlnet.ora
${ORACLE_BASE}/product/${ORACLE_VERSION}/network/admin/sqlnet.ora
Здравствуйте, Bass, Вы писали:
B>Здравствуйте, Sergey Ten, Вы писали:
ST>>- Содержимое alertlog-а
B>Прошу прощения за ламерство, но где он лежит? Просто я не админ, я программист
Все мы тут не админы.
SQL> select value from v$parameter where name = 'background_dump_dest';
VALUE
-----------------------------------------------------------------------
C:\oracle\admin\work92\bdump
ST>>- archivelog или noarchivelog? Если archivelog, то auto archiving или manual archiving? Может, он сидит и ждет, когда кто-нибудь сархивирует redolog-и (в этом случае некоторое время назад он должен был разрешать коннекты, т.к. кто-то должен был заполнить redolog-и).
B>archivelog, manual archiving. А можно с этого момента подробнее?
Можно. Oracle использует несколько redolog-ов по кругу, что, естественно, вызывает их перезапись, когда очередной круг завершен. Если включено архивирование redolog-ов, то перед тем, как повторно использовать файл redolog-а, Oracle должен сделать его копию в директории, заданной параметром
select value from v$parameter where name = 'log_archive_dest';
В случае autoarchiving Oracle делает это автоматически, а в случае manual archiving он ждет, когда админ это сделает вручную командой
ALTER SYSTEM ARCHIVE LOG ALL;
Если админ своевременно этого не сделал, то Oracle впадает в спячку, так как перезапись файла невозможна, а без redolog-а он работать не может.
ST>>- включить tracing на клиентской стороне, посмотреть, устанавливается ли соединение с БД с последующим зависанием, или же виснет на создании соединения. В sqlnet.ora добавить такие строки: ST>>
B>Чайниковский вопрос: на серверной стороне это делается через ALTER SYSTEM или тоже в sqlnet.ora? B>Ещё вопрос: какой из sqlnet.ora использовать? Я нашёл два: B>${ORACLE_BASE}/config/${ORACLE_VERSION}/sqlnet.ora B>${ORACLE_BASE}/product/${ORACLE_VERSION}/network/admin/sqlnet.ora
На серверной стороне — тоже через sqlnet.ora. Какой из них — точно не скажу, но скорее всего, второй. Надо смотреть Oracle документацию на тот UNIX, под которым он работает.
Здравствуйте, Sergey Ten, Вы писали:
ST>В случае autoarchiving Oracle делает это автоматически, а в случае manual archiving он ждет, когда админ это сделает вручную командой ST>
ST>ALTER SYSTEM ARCHIVE LOG ALL;
ST>
Большое спасибо за информацию. Последний вопрос: как этот ARCHIVE LOG вообще выключить? Я нашёл только как включить/выключить автоматическую архивацию?
Здравствуйте, Bass, Вы писали:
B>Последний вопрос: как этот ARCHIVE LOG вообще выключить? Я нашёл только как включить/выключить автоматическую архивацию?
shutdown;
startup mount;
alter database noarchivelog;
alter database open;