본문 바로가기

Oracle/admin

Logminer (로그마이너) 실행 절차 로그마이너 절차 (반드시 archive mode 로 운영중이여야 한다) ***패키지 설치 (필요시에)alter database add supplemental log data --------->logminer를 분석해도 결과가 안나올경우 해준다. 1. SQL> show parameter utl -------> 경로가 잡혀있는지 본다. 2. SQL> desc DBMS_LOGMNR -------> 패키지 설치 확인 3. SQL> desc DBMS_LOGMNR_D -------> 패키지 설치 확인 4. (1,2,3)이 안된경우 ----****1번이 안된 경우 database 재시작 필요함**** (1). alter system set UTL_FILE_DIR='/Oracle/DICT' scope=spfile; 후.. 더보기
nls_char ,spfile 위치 확인 1.데이터베이스 언어와 국가언어 확인 ------------------------------------------------------- select * from v$nls_parameters where parameter like '%SET'; 2.spfile 디렉토리 위치 확인 -------------------------------------------------------- select value from v$system_parameter where name ='spfile'; spfile을 확인했는데 결과가 없다면 pfile을 사용하고 있기 때문이다. pfile은 저 테이블에 저장하지 않기때문에 검색해도 나오지 않는다. 더보기
DB Buffer cache, Shared Pool 초기화 DB Buffer cache content 삭제(10g 이상 지원) SQL> ALTER SYSTEM FLUSH BUFFER_CACHE; Shared Pool Flush (파싱된 SQL문을 초기화) SQL> ALTER SYSTEM FLUSH SHARED_POOL; -->BUFFER_CACHE,SHARED_POOL 의 내용이 모두 날라가게 되므로 갑자기 CPU와 I/O의 부담이 증가할수 있다. 더보기
컬럼 관리 Column을 변경하는 것은 많은 문제점을 초래할수 있다. 일례로 많은 SQL문 중에 해당 Column이 쓰이고 있는데 변경을 하게되면 해당 SQL문은 모두 error를 return 할 것이다. 신중히 사전,사후 검토가 필요할 것이다. 1. 컬럼 속성 변경 ALTER TABLE 테이블명 MODIFY (컬럼명 속성명); ex> SQL> create table test (aaa number(4,2),bbb varchar2(5)); 테이블이 생성되었습니다. SQL> desc test; 이름 널? 유형 ----------------------------------------- -------- ------------- AAA NUMBER(4,2) BBB VARCHAR2(5) SQL> insert into test.. 더보기
Control file 재생성 1. user_dump_dest 경로 확인 2. 해당 경로로 이동 3. 컨트롤파일 트레이스 4. 해당 트레이스 파일 vi 편집실행 [oracle@localhost udump]$ ls -alrt total 36 drwxr-x--- 8 oracle dba 4096 Feb 24 10:03 .. -rw-r----- 1 oracle dba 623 Apr 4 21:34 orcl_ora_15069.trc -rw-r----- 1 oracle dba 5921 Apr 4 21:35 orcl_ora_15096.trc drwxr-x--- 2 oracle dba 12288 Apr 4 21:40 . [oracle@localhost udump]$ vi orcl_ora_15096.trc -- Set #1. NORESETLOGS ca.. 더보기
SQL TRACE ,tkprof 특정세션에 대해 trace를 거는 방법. 1. 해당 SQL이 돌고 있는 세션의 정보가 필요하다. select SID,SERIAL# from v$session where username=' ' and MACHINE =' ' 2.sid,serial#을 알아냈으면 특정세션에 트레이스 시작 SQL> exec SYS.DBMS_SYSTEM.SET_TRACE_IN(SID,SERIAL#,TRUE); 3.해당 세션에서 분석할 sql을 실행 한 후 sql이 실행완료되면 트레이스 종료. SQL> exec SYS.DBMS_SYSTEM.SET_TRACE_IN(SID,SERIAL#,FALSE); 4.트레이스 파일 위치 확인 SQL> show parameter user_dump_dest 5. 해당 위치로 이동후 트레이스파일이 생성.. 더보기
Tuning 참고 RBO 순위 결정 방법 흔히 /*+ RULE */ 힌트를 사용하면 Rule Base 로 optimizer가 실행계획을 세우게 된다. 그렇다면 RBO의 Access 경로 순위를 살펴보자. 순위 Access 경로 1 ROWID에 의한 단일 행 2 클러스터 조인에 의한 단일 행 3 고유 키나 기본 키를 가진 해시 클러스터 키에 의한 단일 행 4 고유 키 또는 기본 키에 의한 단일 행 5 클러스터 조인 6 해시 클러스터 키 7 인덱스화된 클러스터 키 8 조합 인덱스 9 단일 열 인덱스 10 인덱스화된 열에 대해 제한된 범위 검색 11 인덱스화된 열에 대해 제한되지 않은 범위 검색 12 정렬 병합 조인 13 인덱스화된 열의 MAX 또는 MIN 14 인덱스화된 열에 대한 ORDER bY 15 전체 테이블 스캔 CB.. 더보기
M view 1. M View(Materialized View) 란? View 는 논리적인 테이블이고 M View는 물리적인 테이블이다. 즉 데이터가 일정한 공간에 저장되어 있다는 뜻이다. 어떤 결과를 얻기위해 수행되는 쿼리가 빈번하게 일어날경우 이결과값을 데이터베이스내에 한 테이블에 저장하여 수행속도를 향상시키기 위해 사용된다. - SUM, MAX, MIN, AVG, COUNT 등과 같이 그룹함수를 미리 계산해 놓을때 사용. - USER_SEGMENTS에서 확인 가능하다. 2. M View Parameter - OPTIMIZER_MODE - QUERY_REWRITE_ENABLED - QUERY_REWRITE_INTEGRITY - COMPATIBLE 3. M View 특징 우리가 흔희 알고 있는 View는 실시간 데.. 더보기
커서 공유 오라클에서 커서를 공유한다는 뜻은 라이브러리 캐시의 공유커서를 말한다. 라이브러리에 공유되어 있는 커서의 수행 통계를 v$sql 을 통해 조회해 볼수 있다. v$sql 을 조회하면서 실제 공유된 커서가 재사용 되는지 확인해보자. 1. scott 유저로 접속한 후 shared_pool 영역을 비운다. 그리고 test를 쿼리에 주석으로 "cursor_test" 를 넣은후 쿼리를 실행하자. 2. v$sql을 통해 shared_pool 영역에 공유되었는지 확인하자. 3. 처음 실행시킨 쿼리를 3번 더 반복 실행하여 보자. 4. v$sql을 조회하여 공유커서가 재사용 되었는지 확인해보자. 위에서 보듯이 커서가 반복되어 재사용 되어진것을 확인할수 있다. 조회한 항목들에 대해 의미를 설명하자면... PARSE_CAL.. 더보기
VIEW 생성,VIEW 조회 권한 부여,SYNONYM 생성 1. 뷰를 생성하자. SQL> show user USER is "SYS" SQL> create or replace view emp_dept_10 2 as select * from scott.emp where deptno=10; View created. 2. 특정유저만 생성한 뷰를 조회할수 있도록 유저생성,권한 부여를 한다. SQL> create user test_viewer identified by test; User created. SQL> grant connect to test_viewer; Grant succeeded. SQL> grant select on emp_dept_10 to test_viewer; Grant succeeded. SQL> grant create synonym to test_v.. 더보기