Остановить Oracle от создания файла sqlnet.log

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

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

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

Ответ 1

Из metalink

Регистрация ведется автоматически, нет возможности отключить ведение журнала, но поскольку вы находитесь на сервере 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 

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

ВАЖНО: НЕ УСТАНАВЛИВАЙТЕ "LOG_FILE_CLIENT =/dev/null", это приведет к тому, что разрешения /dev/null будут reset каждый раз, когда вы инициализируете библиотеку 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

и надеюсь, что никто не создаст dir /dev/impossible:)

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