본문 바로가기

oracle

Realtime SQL Monitoring 으로 Plan 그래픽컬하게 보기 앞에서 Realtime SQL Monitoring 기능을 이용하는 방법에 대해서 설명했습니다. 참고) 오라클 Plan, Trace 쉽게 보는 - Realtime SQL Monitoring 이 Realtime SQL 모니터링 기능은 원래 Oracle EM(Enterprise Manager)툴의 일부 기능이기 때문에, html 형식으로 그래픽하게 나오는 것이 기본 동작입니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 set pagesize 0 select DBMS_SQLTUNE.report_sql_monitor(sql_id => '&sql_id', type=>'ACTIVE' , report_level => 'ALL') from du.. 더보기
ORA-00942, ORA-06512 오라클 에러 SYS.DBMS_SQLTUNE Oracle Realtime SQL Monitor 기능을 sys 유저가 아닌 일반 유저에서 사용하고자 하는 경우, 권한 부족으로 다음과 같이 에러가 발생합니다. report_sql_monitor() 함수에서 사용하는 딕셔너리뷰를 조회할 수 없기 때문에 ORA-00942 에러가 발생하고, DBMS_SQLTUNE() 함수 실행권한이 없어 ORA-06512 에러가 발생합니다. sys 나 system 유저의 경우 권한이 있기 때문에 에러없이 정상적으로 실행됩니다. 다음과 같이 권한을 부여하면, 일반 유저에서도 Realtime SQL Monitor 기능을 이용할 수 있습니다. /* sys 유저에서 실행 */ SQL> grant ADVISOR, ADMINISTER SQL TUNING SET, SELECT ANY D.. 더보기
오라클 Plan, Trace 쉽게 보는 - Realtime SQL Monitoring Oracle DBMS 11g 부터 사용할 수 있는 아주 유용한 기능중에 하나가 Realtime SQL Monitoring 이라는 기능입니다. 이 기능은 EM (Enterprise Manager) 이라는 Oracle 유료 툴의 일부 기능입니다. 따라서 정식으로 사용하기 위해서는 EM Tuning Pack 라이센스가 필요합니다. 하지만, 따로 제한이 걸려있거나 하지 않습니다. 개인적으로, 또는 연습목적으로 사용하는 데는 아무런 제약이 없습니다. Realtime SQL Monitoring 을 사용하는 구문은 아래와 같습니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 select DBMS_SQLTUNE.report_sql_monitor.. 더보기
Oracle 에서 connect by 구문으로 테스트데이터(샘플테이블) 만들기 오라클에서 특정 기능을 테스트하거나 성능측정 등을 하기 위해서 데이터를 갑자기 크게 많이 만들고 싶은 경우가 있습니다. 이때 주로 많이들 사용하는 방법이 자기복제 입니다. 테이블을 먼저 만들고, 데이터를 몇개 집어넣고, SQL> Insert into TTT1 select * from TTT1; 과 같은 자기복제 구문을 n 번 실행시키는 거죠... 그러면 테이블이 매우 빠르게 커지죠~ 물론 테이블에 데이터 중복이 너무 많다는 단점이 있습니다. 같은 데이터가 계속 반복되니까... 그래서 이번에는 connect by 문과 level 키워드를 사용해서 데이터를 만들어 보겠습니다. 먼저, 아래와 같이 간단히 connect by level 문장이 수행되는 것을 확인해봅니다. level 더보기
Oracle Connect by 구문, Start with 구문 예제 다른 DB를 써보면 오라클이 얼마나 기능이 많은 지를 다시 한번 느끼게 될 때가 있습니다. 유용하게 사용해오던 Connect by 구문도 다른 DB에서 사용하려고 하면 없어서 고생하는 경우가 있네요. connect by 구문은 계층적인 관계를 이용해서 데이터를 조회할 때 사용하는 구문입니다. 조회할 때 사용하기 때문에 당연히 select SQL 쿼리에서 사용합니다. scott 유저에 있는 EMP 테이블 데이터를 가지고 체크해보겠습니다. EMP 테이블에서 보면 EMPNO 와 MGR 값에 계층적인 관계(Hierarchical Relation)가 있는 것을 확인할 수 있습니다. EMPNO 가 7839 번인 KING 은 'PRESIDENT' 회장님이기 때문에 MGR 가 없네요. 나머지 사원들은 모두 MGR 가 .. 더보기
오라클 헬스체크(Oracle Healthcheck) 툴 ORAchk 오라클 DBMS 의 전반적인 상태를 진단해주는 툴이 있습니다. ORAchk 입니다. 오라클에서 만든 툴이기 때문에 믿을 수 있는 툴이라는 장점이 있지만, 결과가 영어로만 나온다는 단점도 있죠^^; 다운로드는 Oracle MOS(My Oracle Support) 에서만 가능합니다. http://support.oracle.com 근데, 이 사이트는 오라클과 유지보수계약이 되어 있어야 접속이 가능합니다. 회원가입은 누구나 가능하지만, 이용하려면 고객지원번호 라는 것을 입력해야 하기 때문에, 결국 유지보수계약이 필요합니다. MOS 사이트에서 1268927.2 문서번호로 찾으면 아래와 같은 페이지를 만날 수 있습니다. 아래와 같이 소개하는 동영상도 있고, 다운로드도 가능합니다. 거의 모든 OS를 다 지원합니다. .. 더보기
오라클 Heatmap, ADO, ILM 기능관련 딕셔너리 조회 스크립트 모음 Oracle ILM 관련 정책 상태 및 작업 상태 등을 체크해 볼 수 있는 스크립트를 모아봤습니다. ILM 관련 개념에 대한 설명은 아래 링크를 참조하시기 바랍니다. - 오라클 Heatmap, ADO, ILM 기능 설명 ILM은 Information Lifecycle Management 의 약자입니다. 정보 즉 DB내의 데이터를 Lifecycle 에 따라 관리하겠다는 것입니다. 이 용어는 Oracle만 사용하는 용어는 아니고, General 한 용어입니다. 이 기능을 구현하기 위해서 오라클에서는 Oracle 12c 에서 Heatmap, ADO 라는 기능을 만들었습니다. Oracle 에서는 ILM, ADO 를 거의 같은 의미로 여기저기 사용하고 있습니다. * ILM 관련 파라메타 조회 -- ILM 관련 파.. 더보기
오라클 Heatmap, ADO, ILM 기능 테스트 핸즈온 - Storage Tiering 오라클 ILM 에는 Compression Tiering 과 Storage Tiering 2가지가 있습니다. 여기에서는 Storage Tiering 을 핸즈온해보겠습니다. 작업 절차는 다음과 같습니다. 1) DB 파라메타 변경 2) 테스트할 테이블스페이스 및 샘플 테이블 생성 3) ADO Policy 생성 4) ADO Policy 를 수동으로 강제 적용 5) ADO Policy 삭제 실제 운영에 적용하는 상황이라면 1), 3) 번만 있으면 됩니다. 운영DB에는 테이블이 이미 있으니 2)번은 필요없고, ADO Policy 는 만들어두면 알아서 자동적용(Triggering) 되기 때문에 수동으로 강제 적용할 필요가 없는 일이고, ADO Policy 를 삭제할 일도 없겠죠.. 그냥 쭉 가는 거니까.. 1) DB.. 더보기