본문 바로가기

Oracle/운영133

[12c 이상] 재기동 없이 패치정보가 alert log에 뜨는 경우? 모니터링을 하다가 ora error가 발견되어 로그 확인 중 재기동을 하지 않았는데 패치정보가 로그에 찍혀있는 경우를 발경하였습니다. 결론적으로 패치정보중 특정 ORA error 를 위한 크리티컬 패치가 포함되어 있었고, 그것 때문에 모니터링 로그에 ora 정보가 남아있었습니다. Patch Id: 27163928 Patch Description: ORA-4031 ERROR DUE TO LEAKAGE OF GC INDEX SPLIT TRANSACTION PERMANACT CHUNKS 근데 보통 패치정보는 재기동 후에 로그에 찍혀있는데, 재기동 없이 패치정보가 찍혀있는 건 왜그럴까 찾아보게 되었고, 정리를 하게 되었습니다. 원인 : 12c 이상부터 적용되며, log.xml 파일이 10MB가 넘어갈때 log_.. 2022. 10. 24.
Full Table Scan 시 Direct Path Read ? 운영 중 쿼리 튜닝 요청이 와서 실행계획을 보는 중 특이한 부분이 보여서 찾아보다가 정리를 하게 되었습니다. 제가 확인한 실행계획인데요, 해당 쿼리는 Parallel Query도 아니었고, 일반 SELECT 였는데 Table Full Scan이 발생하던 시기에 direct path read가 발생한것을 확인하였습니다. SQL Plan Monitoring Details (Plan Hash Value=839247681) ===================================================================================================================================================================.. 2022. 10. 17.
[SQL 성능 체크 tool]SQLHC 와 SQLT SQL을 분석하는 방법 중 하나입니다. SQLHC와 SQLT입니다. SQLHC SQLHC(SQL Tuning Health-Check) script는 Oracle에서 개발한 도구로써, 단일 SQL문이 실행되는 것에 대한 체크를 하여 CBO(Cost Based Opimizer) 통계, 스키마 객체 메타데이터, 파라미터 및 단일 SQL의 성능에 영향을 미칠 수 있는 기타요소럴 검사합니다. SQLHC는 무료로 사용가능합니다. (Oracle Sr에서 확인 Doc ID 1366133.1) zip 파일을 서버에 업로드하여 zip 파일에 있는 sqlhc.sql 파일을 수행하여 sql의 분석 파일들을 수집하는 방법입니다. 위의 파일의 압축을 풀어보면 아래와 같습니다. $ ls -al total 2200 drwxr-xr-.. 2022. 9. 23.
다른 세션에서 10046 trace 수행하기 명령어 활성화 exec sys.dbms_system.set_ev(sid, serial#, 10046, 12, null); or DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,true); 비활성화 exec sys.dbms_system.set_ev(sid, serial#, 10046, 0, null); or DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,false); 실제 세션을 두개 열어서 테스트해보겠습니다. 1. 세션1 세션2의 정보를 확인 후 세션2에 trace를 수행하도록 하겠습니다. SYS@SQL> select sid,serial# from v$session where username='DEV'; SID SERIAL#.. 2022. 9. 6.