Frage Stoppen Sie Oracle, die Datei sqlnet.log zu generieren


Ich benutze DBD :: Oracle in Perl, und wenn eine Verbindung fehlschlägt, generiert der Client eine sqlnet.log-Datei mit Fehlerdetails.

Die Sache ist, ich habe bereits den Fehler per Perl und in meiner eigenen Log-Datei. Ich brauche diese zusätzlichen Informationen wirklich nicht.

Gibt es also eine Flagge oder eine Umgebung, um die Erstellung von sqlnet.log zu stoppen?


11
2018-05-11 13:45


Ursprung


Antworten:


Aus dem Metalink

Die Protokollierung erfolgt automatisch. Es gibt keine Möglichkeit, die Abmeldung zu deaktivieren. Da Sie sich jedoch auf einem Unix-Server befinden, können Sie die Protokolldatei auf ein Null-Gerät umleiten, wodurch das Problem des Speicherplatzverbrauchs behoben wird.

Setzen Sie in der SQLNET.ORA-Datei LOG_DIRECTORY_CLIENT und LOG_DIRECTORY_SERVER gleich einem Null-Gerät.

Beispielsweise:

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

in SQLNET.ORA unterdrückt Clientprotokollierung vollständig.

Um die Protokollierung des Listeners zu deaktivieren, legen Sie diesen Parameter in der Datei LISTENER.ORA fest:

logging_listener = off 

4
2018-05-11 18:41



Als die Oracle-Dokumentation states: Um sicherzustellen, dass alle Fehler aufgezeichnet werden, kann die Protokollierung nicht auf Clients oder Names-Servern deaktiviert werden.

Sie können dem Vorschlag von DCookie folgen und das Verzeichnis / dev / null als Protokollverzeichnis verwenden. Sie können NUL verwenden: auf Windows-Maschinen.


6
2018-05-11 15:11



Sind Ihre Clients unter Windows oder * nix? Wenn in * nix, können Sie LOG_DIRECTORY_CLIENT = / dev / null in Ihrer sqlnet.ora-Datei festlegen. Nicht sicher, ob Sie viel für einen Windows-Client tun können.

EDIT: Sieht nicht wie es in Windows möglich ist. Das Beste, was Sie tun könnten, wäre, den Parameter sqlnet.ora auf einen festen Speicherort zu setzen und einen geplanten Task zu erstellen, um die Datei wie gewünscht zu löschen.

Okay, da Thomas darauf hinweist, dass es ein Null-Gerät unter Windows gibt, benutze das gleiche Paradigma.


4
2018-05-11 15:00



WICHTIG: Setze NICHT "LOG_FILE_CLIENT = / dev / null", dies führt dazu, dass die Berechtigungen von / dev / null jedes Mal zurückgesetzt werden, wenn du die oracle-Bibliothek initialisierst, und wenn deine umask etwas nicht lesbare schreibbare Bits erlaubt entfernt von / dev / null und wenn Sie die Berechtigung haben, diese Datei zu chmod: dh als root ausgeführt.

und läuft als root vielleicht etwas trivial, wie php --version mit oci php-extension vorhanden!

alle Details hier: http://lists.pld-linux.org/mailman/pipermail/pld-devel-de/2014-May/23931.html

Sie sollten den Pfad innerhalb des Verzeichnisses verwenden, das nicht existiert:

LOG_FILE_CLIENT = /dev/impossible/path

und hoffe niemand schafft dir /dev/impossible :)

für Windows NUL wahrscheinlich ist es in Ordnung, da es nicht die tatsächliche Datei dort ist ...


2
2018-05-22 22:02