Oracle-Datenbank ist eine sehr beliebte relationale Datenbank, aber während der Verwendung tritt häufig das Problem einer Zeitüberschreitung der Datenbankverbindung auf. Dieses Problem kann zu einer Reihe von Problemen führen, wie z. B. einer Unterbrechung der Datenübertragung und Leistungseinbußen. Wie stellt man also das Timeout in der Oracle-Datenbank ein? Dieser Artikel stellt Ihnen die spezifische Methode vor.
1. Prinzip der Timeout-Einstellung
In Oracle wird der Timeout-Zeitraum durch SQLnet-Lese- und Schreib-Timeout-Parameter implementiert. SQLnet ist eine Netzwerkkomponente von Oracle Database, die Unterstützung für die Kommunikation zwischen Clients und Servern bietet. Bei der Ausführung eines Timeouts gibt der Client eine Anfrage aus. Wenn der Server nicht antwortet, wartet der Client die angegebene Zeitspanne ab, und die Verbindung wird getrennt.
Normalerweise gibt es zwei Arten von Oracle-Timeout-Einstellungen:
1. Timeout auf Sitzungsebene
Timeout auf Sitzungsebene gilt für eine einzelne Sitzung und wird über den Befehl ALTER SESSION festgelegt.
2.Timeout auf SQLNET-Ebene
Das Timeout auf SQLNET-Ebene gilt für alle Sitzungen der gesamten SQLNET-Verbindung und wird durch Ändern der Datei SQLNET.ORA festgelegt. SQLNET.ORA ist die Netzwerkkonfigurationsdatei von Oracle, in der Parameter auf SQLNET-Ebene definiert werden können.
Sie können die geeignete Timeout-Einstellungsmethode entsprechend der tatsächlichen Situation auswählen.
2. Timeout-Einstellung auf Sitzungsebene
In Oracle können Sie den Befehl ALTER SESSION verwenden, um das Timeout auf Sitzungsebene festzulegen. Die Syntax lautet wie folgt:
ALTER SESSION SET SQL_TRACE = FALSE;
Dabei bedeutet SQL_TRACE = TRUE, dass der Tracking-Modus aktiviert wird. In diesem Modus zeichnet die Oracle-Datenbank die Ausführung aller SQL-Anweisungen auf.
ALTER SESSION SET SQL_TRACE = FALSE;
SQL_TRACE = FALSE bedeutet, dass der Ablaufverfolgungsmodus deaktiviert wird.
Sie können den Parameter TIMED_STATISTICS auf true setzen, wenn SQL_TRACE = TRUE ist, um die Ausgabe statistischer Informationen im Tracking-Modus zu aktivieren, wie unten gezeigt:
ALTER SESSION SET TIMED_STATISTICS = TRUE;
Für eine Zeitüberschreitung auf Sitzungsebene können Sie SQLNET festlegen Dies wird erreicht, indem der Parameter .ALLOWED_LOGON_VERSION auf 10 oder höher gesetzt wird.
SQLNET.ALLOWED_LOGON_VERSION ist ein SQLNET.ORA-Parameter, der definiert, welche Oracle-Datenbankversionen authentifiziert werden können. Wenn Sie beispielsweise Oracle 10g für die Authentifizierung zulassen, können Sie diesen Parameter festlegen:
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 10
Dadurch können Clients, die mit der Oracle 10g-Datenbank verbunden sind, eine Verbindung herstellen.
3. Timeout-Einstellung auf SQLNET-Ebene
Das Timeout auf SQLNET-Ebene wird basierend auf den Parametereinstellungen der SQLNET.ORA-Datei implementiert. Die Datei SQLNET.ORA befindet sich normalerweise in einem bestimmten Verzeichnis auf dem Oracle-Client oder -Server.
In der Datei SQLNET.ORA können Sie das Timeout auf SQLNET-Ebene steuern, indem Sie zwei Parameter festlegen, nämlich SQLNET.INBOUND_CONNECT_TIMEOUT und SQLNET.OUTBOUND_CONNECT_TIMEOUT.
SQLNET.INBOUND_CONNECT_TIMEOUT ist ein Parameter auf der Serverseite, der zur Steuerung der Zeit verwendet wird, zu der der Server Clientsitzungen akzeptiert.
SQLNET.OUTBOUND_CONNECT_TIMEOUT ist ein Parameter des Clients, der zur Steuerung der Zeit verwendet wird, zu der der Client eine Verbindung zum Server herstellt.
Durch das Festlegen dieser beiden Parameter können Sie lange Verbindungen zwischen dem Client und dem Server verhindern und so vermeiden, dass zu viel Zeit und Ressourcen für die Verbindung verschwendet werden.
Fügen Sie die folgenden Parameter in der SQLNET.ORA-Datei hinzu, um SQLNET.INBOUND_CONNECT_TIMEOUT festzulegen:
INBOUND_CONNECT_TIMEOUT_LISTENER = 120
Fügen Sie die folgenden Parameter in der Datei SQLNET.ORA hinzu, um SQLNET.OUTBOUND_CONNECT_TIMEOUT festzulegen:
SQLNET.OUTBOUND_CONNECT_TIMEOUT=10
Es ist zu beachten, dass Sie beim Ändern von Parametern durch Ändern der Datei SQLNET.ORA die Oracle-Datenbank oder den Oracle-Listener neu starten müssen, damit die Parameter wirksam werden.
4. Wie kann ich überprüfen, ob die Timeout-Einstellung wirksam ist? Wie kann ich nach Abschluss der Einstellung des Oracle-Timeouts überprüfen, ob sie wirksam ist? Dies kann über die dynamische v$session-Ansicht von Oracle oder durch die Verfolgung von SQL-Anweisungen überprüft werden.
Verifiziert durch v$session viewSELECT * FROM v$session WHERE sid = '&sid';
Die &sid hier ist die SID des aktuellen Benutzers kann über die folgende SQL-Anweisungsabfrage abgerufen werden:
SELECT sid, serial# FROM v$session WHERE username = '&username';
Wenn die angegebene SESSION gefunden wird, werden die Parameter CONNECT_TIME und IDLE_TIME der SESSION angezeigt kann abgefragt werden, um festzustellen, ob es wirksam wird.
SQL-Anweisungen verfolgenMit den beiden oben genannten Methoden können Sie überprüfen, ob die Oracle-Timeout-Einstellungen gültig sind. Wenn Sie feststellen, dass die Einstellungen ungültig sind, können Sie zur Fehlerbehebung überprüfen, ob die Datei SQLNET.ORA vollständig und korrekt konfiguriert ist.
Zusammenfassung
Da in der Oracle-Datenbank langfristige Verbindungen die Systemleistung und andere Faktoren beeinflussen, müssen Verbindungen kontrolliert werden. Über den Befehl ALTER SESSION und die in diesem Artikel vorgestellten Einstellungen der Datei SQLNET.ORA können Sie das Timeout für die Oracle-Datenbank festlegen. Natürlich ist es bei der tatsächlichen Verwendung erforderlich, die geeignete Timeout-Einstellungsmethode entsprechend den unterschiedlichen Umgebungen und tatsächlichen Anforderungen auszuwählen.
Hinweis: Dieser Artikel bezieht sich auf viele hervorragende Materialien. Wenn es einen Verstoß gibt, kontaktieren Sie uns bitte, um ihn zu löschen.
Das obige ist der detaillierte Inhalt vonSo legen Sie ein Timeout in der Oracle-Datenbank fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!