>  기사  >  데이터 베이스  >  Oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?

Oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?

WBOY
WBOY원래의
2022-06-10 10:24:0417280검색

Oracle에서는 "alter system set "_optimizer_connect_by_cost_based" = false range=both;" 문을 사용하여 소켓에서 더 많은 데이터를 읽을 수 없는 예외를 해결할 수 있습니다. 이 문은 "_optimizer_connect_by_cost_based" 값을 둘 다로 설정합니다. . 수정 후에는 현재 작동하며 다음에 데이터베이스를 다시 시작할 때도 작동합니다.

Oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.

oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?

문제 현상:

로그에 다음 오류가 나타납니다.

Oracle이 소켓에서 더 많은 데이터를 읽을 수 없으면 어떻게 해야 합니까?

이 문제가 발생하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.