2009-05-11 2 views
11

Я использую DBD :: Oracle в perl, и всякий раз, когда соединение терпит неудачу, клиент создает файл sqlnet.log с информацией об ошибке.Остановить Oracle от генерации файла sqlnet.log

Дело в том, что у меня уже есть ошибка, захваченная perl, и в моем собственном файле журнала. Мне действительно не нужна эта дополнительная информация.

Итак, есть ли флаг или среда для остановки создания sqlnet.log?

+1

+1 - кто не нашел сто метров egabyte sqlnet.log-файл, периодически обновляющийся на их системе: - | – DCookie

ответ

4

От Металинк

Протоколирование является автоматическим, нет никакого способа, чтобы отключить регистрацию, но так как вы на сервере Unix, вы можете перенаправить файл журнала к нулевому устройству, тем самым устраняя проблему потребления дискового пространства.

В файле SQLNET.ORA установите LOG_DIRECTORY_CLIENT и LOG_DIRECTORY_SERVER равным нулевому устройству.

Например:

LOG_DIRECTORY_CLIENT = /dev/null 
LOG_FILE_CLIENT = /dev/null 

в SQLNET.ORA подавляет клиент регистрации полностью.

Чтобы отключить слушатель от лесозаготовок, установите этот параметр в файле LISTENER.ORA:

logging_listener = off 
4

Являются ли ваши клиенты в Windows или * nix? Если в * nix вы можете установить LOG_DIRECTORY_CLIENT =/dev/null в свой файл sqlnet.ora. Не уверен, что вы можете многое сделать для клиента Windows.

EDIT: Не похоже, что это возможно в Windows. Лучшее, что вы могли бы сделать, это установить параметр sqlnet.ora выше в фиксированное местоположение и создать запланированную задачу для удаления файла по желанию.

Хорошо, как указывает Томас, на окнах есть нулевое устройство, используйте ту же парадигму.

6

Как указано в Oracle Documentation: Чтобы гарантировать, что все ошибки записаны, регистрация не может быть отключена на серверах клиентов или имен.

Вы можете следовать предложению DCookie и использовать/dev/null в качестве каталога журнала. Вы можете использовать NUL: на машинах Windows.

+0

+1 для устройства NUL на окнах указатель – DCookie

2

ВАЖНО: НЕ SET "LOG_FILE_CLIENT =/DEV/нуль", это приведет к разрешению/dev/null сбрасывается каждый раз, когда вы инициализируете библиотеку oracle, а когда ваш umask - это то, что не разрешает биты, доступные для чтения и записи, они удаляются из/dev/null, и если у вас есть разрешение на chmod для этого файла: ie работает от root ,

и работает как root, возможно, что-то тривиальное, например php -version, имеющее oci php-extension!

все подробности здесь: http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-May/023931.html

вы должны использовать путь внутри директории, не существует:

LOG_FILE_CLIENT = /dev/impossible/path 

и надежда никто не создает реж /dev/impossible :)

для Windows, NUL вероятно, является штраф, так как там нет фактического файла ...

+0

UPDATE: кажется, оригинальное исправление, казалось, работать тогда LOG_FILE_CLIENT =/DEV/невозможно/путь не является хорошим исправление, это делает библиотеку журнала еще раз, если указанный путь журнала является недопустимым, поэтому я в середине fork, что делать, я не хочу, чтобы журналы, и я не хочу/dev/null разрешений, которые будут изменены. –

+0

вам нужно только беспокоиться о разрешении '/ dev/null' change, _if_ запускать ваши программы Oracle-client как' root'. Как правило, это плохая идея по множеству других причин. Но если у вас есть полномочия root, у вас не должно возникнуть проблем с созданием другого нулевого устройства ('/ dev/ora-null'?) И указания OCI использовать его. –

Смежные вопросы