Maison > Article > base de données > Que dois-je faire si Oracle ne peut pas lire davantage de données depuis le socket ?
Dans Oracle, vous pouvez utiliser l'instruction "alter system set "_optimizer_connect_by_cost_based" = false scope=both;" pour résoudre l'exception de l'impossibilité de lire plus de données à partir du socket. Cette instruction définit la valeur de "_optimizer_connect_by_cost_based" sur les deux. . Après modification, il fonctionne actuellement et fonctionnera également au prochain redémarrage de la base de données.
L'environnement d'exploitation de ce tutoriel : système Windows 10, Oracle version 12c, ordinateur Dell G3.
Phénomène problématique :
L'erreur suivante apparaît dans le journal :
Si vous rencontrez ce problème, vous pouvez consulter le journal Oracle. et analyser la cause du problème.
Le journal de localisation des problèmes le plus couramment utilisé de la base de données Oracle est le journal d'alerte. Le fichier journal alert_$ORACLE_SID.log de la base de données Oracle enregistre la conversion du journal redo, le démarrage et l'arrêt de la base de données, les changements dans la structure de la base de données, la modification des segments d'annulation, et les blocages, les erreurs internes et d'autres informations.
Le chemin est : ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log
Le fichier journal de la nouvelle base de données Oracle se trouve sous ORACLE_BASE/diag/rdbms, tel que : D:appAdministratordiag dbmsorclorcl race
Vous pouvez également trouver le emplacement via l'instruction SQL :
Emplacement du fichier XML du journal d'alerte : sélectionnez la valeur dans v$diag_info où nom = 'Diag Alert' ;
Emplacement du fichier texte du journal d'alerte : sélectionnez la valeur dans v$diag_info où nom = 'Diag Trace';
Solution :
alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
Détails de référence
_optimizer_connect_by_cost_based consiste à utiliser une conversion basée sur les coûts pour se connecter, la valeur par défaut est true. La portée est la portée du SQL modifié par ce paramètre, il y a trois valeurs au total : les deux, mémoire, spfile.
1.Scope=la mémoire est actuellement effective après modification, le redémarrage de la base de données ne fonctionnera pas
2.scope=spfile est actuellement inefficace après modification, et il ne prendra effet qu'au prochain redémarrage de la base de données
3.scope= les deux sont actuellement modifiés après modification. Cela fonctionne, et cela fonctionnera même si vous redémarrez la base de données la prochaine fois
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!