Heim > Datenbank > Oracle > Was soll ich tun, wenn Oracle nicht mehr Daten aus dem Socket lesen kann?

Was soll ich tun, wenn Oracle nicht mehr Daten aus dem Socket lesen kann?

WBOY
Freigeben: 2022-06-10 10:24:04
Original
17435 Leute haben es durchsucht

In Oracle können Sie die Anweisung „alter system set „_optimizer_connect_by_cost_based“ = false Scope=both;“ verwenden, um die Ausnahme zu lösen, dass keine weiteren Daten aus dem Socket gelesen werden können. Diese Anweisung setzt den Wert von „_optimizer_connect_by_cost_based“ auf Both . Nach der Änderung funktioniert es derzeit und wird auch beim nächsten Neustart der Datenbank funktionieren.

Was soll ich tun, wenn Oracle nicht mehr Daten aus dem Socket lesen kann?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle Version 12c, Dell G3-Computer.

Was soll ich tun, wenn Oracle keine weiteren Daten aus dem Socket lesen kann?

Problemphänomen:

Der folgende Fehler erscheint im Protokoll:

Was soll ich tun, wenn Oracle nicht mehr Daten aus dem Socket lesen kann?

Wenn dieses Problem auftritt, können Sie das Oracle-Protokoll überprüfen und analysieren Sie die Ursache des Problems.

Das am häufigsten verwendete Problem beim Auffinden des Protokolls der Oracle-Datenbank ist das Warnprotokoll. Die Protokolldatei der Oracle-Datenbank „alert_$ORACLE_SID.log“ zeichnet die Konvertierung des Redo-Protokolls, das Starten und Herunterfahren der Datenbank, Änderungen in der Datenbankstruktur und die Änderung von Rollback-Segmenten auf. und Deadlocks, interne Fehler und andere Informationen.

Der Pfad lautet: ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log

Die Protokolldatei der neuen Oracle-Datenbank befindet sich unter ORACLE_BASE/diag/rdbms, z. B.: D:appAdministratordiag dbmsorclorcl race

Sie können auch die finden Speicherort über SQL-Anweisung:

Speicherort der XML-Datei des Warnprotokolls: Wählen Sie den Wert aus v$diag_info aus, wobei Name ='Diag Alert';

Speicherort der Textdatei des Warnprotokolls: Wählen Sie den Wert aus v$diag_info aus, wobei Name ='Diag Trace';

Lösung:

alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
Nach dem Login kopieren

Referenzdetails

_optimizer_connect_by_cost_based dient zum Herstellen einer Verbindung mit der kostenbasierten Konvertierung. Der Standardwert ist true. Der Umfang ist der durch diesen Parameter geänderte SQL-Bereich. Insgesamt gibt es drei Werte: beides, Speicher, spfile.

 1.Scope=Speicher ist derzeit nach der Änderung wirksam, ein Neustart der Datenbank funktioniert nicht

 2.scope=spfile ist derzeit nach der Änderung unwirksam und wird erst beim nächsten Neustart der Datenbank wirksam

 3.scope= Beides wird derzeit nach der Änderung geändert. Es funktioniert, und es wird auch dann funktionieren, wenn Sie die Datenbank das nächste Mal neu starten

Empfohlenes Tutorial: „Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Oracle nicht mehr Daten aus dem Socket lesen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage