Oracle에서는 "alter system set "_optimizer_connect_by_cost_based" = false range=both;" 문을 사용하여 소켓에서 더 많은 데이터를 읽을 수 없는 예외를 해결할 수 있습니다. 이 문은 "_optimizer_connect_by_cost_based" 값을 둘 다로 설정합니다. . 수정 후에는 현재 작동하며 다음에 데이터베이스를 다시 시작할 때도 작동합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.
문제 현상:
로그에 다음 오류가 나타납니다.
이 문제가 발생하면 oracle 로그를 확인할 수 있습니다. 그리고 문제의 원인을 분석합니다.
오라클 데이터베이스의 로그를 찾는 데 가장 일반적으로 사용되는 문제는 경고 로그입니다. 오라클 데이터베이스의 로그 파일 Alert_$ORACLE_SID.log에는 리두 로그 변환, 데이터베이스 시작 및 종료, 데이터베이스 구조 변경, 롤백 세그먼트 수정, 및 교착 상태, 내부 오류 및 기타 정보.
경로: ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log
새 Oracle 데이터베이스의 로그 파일은 ORACLE_BASE/diag/rdbms 아래에 있습니다. 예: D:appAdministratordiag dbmsorclorcl race
다음을 찾을 수도 있습니다. SQL 문을 통한 위치:
Alert 로그 XML 파일 위치: v$diag_info에서 값 선택(여기서 name ='Diag Alert';
Alert 로그 텍스트 파일 위치: v$diag_info에서 값 선택, where name ='Diag Trace';
)해결책 :
alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
참조 세부 정보
_optimizer_connect_by_cost_based는 비용 기반 변환을 사용하여 연결하는 것입니다. 기본값은 true입니다. 범위는 이 매개 변수에 의해 수정된 SQL의 범위이며 총 세 가지 값이 있습니다. 둘 다, 메모리, spfile.
1.Scope=메모리는 수정 후 현재 유효하며 데이터베이스를 다시 시작할 수 없습니다
2.Scope=spfile은 수정 후 현재 유효하지 않으며 다음에 데이터베이스를 다시 시작할 때만 적용됩니다
3.Scope= 둘 다 현재 수정 후 수정되어 작동하며 다음에 데이터베이스를 다시 시작해도 작동합니다
추천 튜토리얼: "Oracle Video Tutorial"
위 내용은 Oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!