2009-05-11 13 views
11

Używam DBD :: Oracle w perlu, a gdy połączenie się nie powiedzie, klient generuje plik sqlnet.log ze szczegółami błędu.Zatrzymaj Oracle z generowania pliku sqlnet.log

Chodzi o to, że mam już błąd uwięziony przez perla i mój własny plik dziennika. Naprawdę nie potrzebuję tych dodatkowych informacji.

Czy istnieje flaga lub środowisko do zatrzymania tworzenia pliku sqlnet.log?

+1

+1 - kto nie znalazł sto metrów egabyte sqlnet.log plik pływający w swoim systemie od czasu do czasu: - | – DCookie

Odpowiedz

4

Z Metalink

Rejestrowanie jest automatyczna, nie ma sposobu, aby włączyć wylogowania, ale skoro jesteś na serwerze Unix, można przekierować plik dziennika do pustego urządzenia, eliminując problem zużycia przestrzeni dyskowej.

W pliku SQLNET.ORA, zestaw LOG_DIRECTORY_CLIENT i LOG_DIRECTORY_SERVER równy null urządzenia.

Na przykład:

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

w SQLNET.ORA tłumi zalogowaniu klient całkowicie.

Aby wyłączyć słuchacza od logowania, ustaw ten parametr w pliku listener.ora:

logging_listener = off 
4

Czy Twoi klienci korzystają z systemu Windows lub * nix? Jeśli w * nix, możesz ustawić LOG_DIRECTORY_CLIENT =/dev/null w swoim pliku sqlnet.ora. Nie jestem pewien, czy możesz zrobić wiele dla klienta Windows.

EDYCJA: Nie wygląda na to, że jest możliwe w systemie Windows. Najlepsze, co możesz zrobić, to ustawić powyższy parametr sqlnet.ora na stałą lokalizację i utworzyć zaplanowane zadanie, aby usunąć plik według potrzeb.

Okay, jak Thomas wskazuje, że w oknach jest puste urządzenie, użyj tego samego paradygmatu.

6

Jak Oracle Documentation stanach: zapewnienie, że wszystkie błędy są rejestrowane, rejestracja nie może zostać wyłączona na klientach lub nazw serwerów.

Możesz śledzić sugestię DCookie i użyć/dev/null jako katalogu log. Możesz użyć NUL: na maszynach Windows.

+0

+1 dla urządzenia NUL na oknach wyżeł – DCookie

2

WAŻNE: Nie należy ustawiać "LOG_FILE_CLIENT =/dev/null", spowoduje to uprawnienia/dev/null należy resetować za każdym razem, gdy inicjalizujesz bibliotekę oracle, a kiedy twoja umask jest czymś, co nie pozwala na bity, które można odczytać na świecie, zostaną usunięte z/dev/null i jeśli masz uprawnienie do chmod tego pliku: np. działa jako root .

i działając jako root może być coś trywialnego, jak php --version z obecnym rozszerzeniem oktycznym!

pełne szczegóły tutaj: http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-May/023931.html

należy użyć ścieżki wewnątrz katalogu, który nie istnieje:

LOG_FILE_CLIENT = /dev/impossible/path 

i nadzieja nikt tworzy reż /dev/impossible :)

dla Windows NUL prawdopodobnie jest w porządku, bo to nie jest faktyczny plik ...

+0

UPDATE: Wydaje się, że oryginalny fix, który pojawił się pracować wtedy LOG_FILE_CLIENT =/dev/da/ścieżka nie jest dobrym fix, to sprawia, że ​​dziennik biblioteki ponownie, jeśli określona ścieżka dziennika jest nieprawidłowy, więc jestem w środku rozwidlenia, co robić, nie chcę dzienników ani nie chcę, aby uprawnienia/dev/null zostały zmienione. –

+0

musisz tylko martwić się o uprawnienia do zmiany '/ dev/null', _if_ uruchamiasz programy klienckie Oracle jako' root'. Zwykle jest to zły pomysł z wielu innych powodów. Ale jeśli masz moc roota, nie powinieneś mieć problemów z utworzeniem kolejnego urządzenia o wartości null ('/ dev/ora-null'?) I nakazanie OCI aby to zrobił. –

Powiązane problemy