Log Miner

- Redo log file 에 있는 내용을 추출해서 SQL 문장으로 변환해 주는 유틸리티

1. log miner 는 8i 이후 버전에서만 작동

2. 분석 대상 인스턴스와 같은 플랫폼에서 동작하는 같은 캐릭터셋을 사용하는 DB에서 생성된 Redo log file 만 분석

3. 분석 대상 인스턴스와 Redo log 가 생성된 인스턴스는 DB_BLOCK_SIZE 가 동일해야 함

- 만약 다를 경우 Corruption 이 발생했다는 내용이 기록

 

Supplemental Logging

- 데이터에 DML 이 밸생할 경우 redo log 에 추가적인 내용을 기록하여 복구에 도움을 주기에 항시 사용함으로 설정하기를 권장

 

SQL>seleclt supplemental_log_data_min from v$database;

 

SUPPLEMENTAL_LOG

------------------------

NO

 

SQL>alter database add supplemental log data;

Database altered.

 

SQL>select supplemental_log_data_min from v$database;

 

SUPPLEMENTAL_LOG

------------------------

YES

 

- 비활성

SQL>select supplemental

SQL>alter database drop supplemental log data;

SUPPLEMENTAL_LOG

------------------------

NO

 

- 특정 테이블만 적용할 수도 있습니다.

SQL>alter table scott.emp add supplemental log data (all) columns;

Table altered.

 

- 이 기능을 사용할 경우 redo log 의 생셩 양이 많아지기 때문에 아카이브 로그 모드를 사용할 경우 아카이브 경로를 충분하게 주어야 함.


set line 200
col owner for a20
col tablespace_name for a10
col table_name for a20
col mb for 9999.99

select owner, tablespace_name,table_name,num_rows*avg_row_len/1024/1024 MB
from dba_tables
where table_name=upper('&table_name')
and owner=upper('&owner')

 

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\Yeon>sqlplus sys/oracle@TAF as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Wed Aug 10 02:58:32 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

ERROR:
ORA-12170: TNS:Connect timeout occurred


Enter user-name:
ERROR:
ORA-12560: TNS:protocol adapter error


Enter user-name:
ERROR:
ORA-12560: TNS:protocol adapter error


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

============================================================================================================
원인 - sqlnet.ora 파일 설정이 잘 못 되있을 경우
         --> ex)
                    SQLNET.AUTHENTICATION_SERVICES=( NTS)

                    NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)  ->자세히 보면 공백이 존재한다.
         --> 어처구니 없지만 이러한 이유로도 접속이 안될 수도 있다

해결 -
                    SQLNET.AUTHENTICATION_SERVICES=(NTS)

                    NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)

열린 백업 (Hot Backup / Open Backup / Begin Backup)

 

  • DB 가 Open 된 상태에서 backup 을 수행하며 Archive log Mode 여야 합니다.
  • 11g 부터는 모든 Tablespace 가 백업 모드로 변경할 수 있으나 Redo log 양이 많아지므로 권장하지 않습니다.

SQL>alter tablespace <Tablespace name> begin backup;

SQL>!cp /data/temp/temp/test.dbf /data/backup

SQL>alter database <Tablespace name> end backup;

 

  • Begin backup 이 시작되면 checkpoint 가 발생하여 DB Buffer Cache에 있는 Tablespace 정보가 Data file 로 내려 써지게 되며 이 작업의 최종 SCN 정보가 Data file 과 Control file 에 기록됨
  • 해당 Tablespace 의 Header 에는 Hot-backup-in-progress 라는 플래그가 표시되어 Tablespace 가 Begin backup 중이라는 것을 표시합니다.
  • 그리고 DBWR 은 최종 SCN 이후의 작업은 Data file에 저장하지 않으며 이 후의 작업은 Redo log에 기록되어 있다가 end backup 발생 시 그 때 Data file 에 반영됩니다.

 

SQL>select a.file#,a.name,b.status,to_char(b.time,'YYYY-MM-DD:HH24:MI:SS') as time

2    from v$datafile a, v$backup b

3    where a.file#=b.file#;

 

  • ACTIVE 일 경우 Begin Backup 중인 파일이다

Archive Mode

 

1. DB 종료

2. Parameter file 수정

- Archive log file 저장 경로와 이름 지정

log_archive_start = true <- 9i 까지만 사용, 10g 부터 사용하지 않음

log_archive_dest1='location=경로' ß 첫 번째 저장경로 지정

log_archive_dest2='location=경로' ß 두 번째 저장경로 지정

log_archive_format=%s_%t%r.arc ß 아카이브 로그파일 이름 지정

  • s : 시퀀스 넘버
  • S : 시퀀스 넘버 (0을 채워서 파일 길이를 맞춘다.)
  • t : 인스턴스 넘버
  • T : 인스턴스 넘버 (0을 채워서 파일 길이를 맞춘다.)
  • r : 리셋로그 ID

SPFILE 의 경우

SQL>alter system set log_archive_format='%S_%T_%r.ora' scope=spfile;

SQL>alter system set log_archive_dest_1='location=경로';

또한 위의 log_archive_dest_n 의 옵션은 아카이브가 저장되는 곳의 경로이며 n 의 숫자에 따라 몇 개의 백업을 생성할 수 있습니다.

기본 위치는 $ORACLE_BASE/flash_recovery_area 이나 다른 디스크에 경로를 설정해줄 것을 권장 합니다.

SQL> alter database archivelog;

 

현재 DB 가 Archive log Mode 인지 확인하기 위해서는

SQL>archive log list;

 

Oracle 10g R2 Installation && Patch on RedHat Enterprise Linux 4

  1. Oracle 설치를 위한 환경 설정
    1. Oracle 사용자 및 Group 생성
      1. Group : dba - #groupadd –g 5000 dba
      2. User : oracle - #useradd –g dba –d /home/oracle oracle
      3. chown –R oracle.dba /home/oracle && chmod –R 755 /home/oracle or chomd –R 755 /home/oracle/database

 

  1. Kernel 설정

/etc/sysctl.conf

kernel.shmmax=536870912

kernel.shmmni=4096

kernel.shmall=2097152

kernel.sem=250 32000 100 128

fs.file-max=65536

net.ipv4.ip_local_port_range=1024 65000

net.core.rmem_default=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144

Screen Shot

 

/etc/security/limits.conf

oracle10g soft nproc 2047
oracle10g hard nproc 16384
oracle10g soft nofile 1024
oracle10g hard nofile 65536

Screen Shot

/etc/pam.d/login

session required pam_limits.so

/etc/oraInst.loc

- root 권한으로 파일 생성

- oraInventory 위치와 oracle install group 을 지정

 

inventory_loc=/home/oracle/oraInventory

inst_group=dba

 

  • 소유자 변경

    #chown –R oracle.dba /etc/oraInst.loc

 

 

 

환경 파일 설정 - .bash_profile

export EDITOR=vi

export LD_ASSUME_KERNEL=2.4.19

export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10g
export ORACLE_SID=orcl10g
export LANG=ko_KR.eucKR
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

Screen Shot

 

 

  1. RPM 설치 확인

    compat-db-4.1.25-9 (in disk 3)

    compat-gcc-32-c++-3.2.3-47.3 (in disk 4)

    compat-gcc-32-3.2.3-47.3 (in disk 4)

    compat-libgcc-296-2.96-132.7.2 (in disk 3)

    compat-libstdc++-296-2.96-132.7.2 (in disk 3)

    compat-libstdc++-33-3.2.3-46.1 (in disk 2)

    java-1.4.2-gcj-compat-1.4.2.0-26jpp (in disk 3)

    nss_db-compat-2.2-28 (in disk 4) -

    gnome-libs-1.4.1.2.90-44.1.i386.rpm (in disk 3)

    xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm (in disk 3)

    libpng10-1.0.13-13.i386.rpm (in disk 3)

    sysstat-5.0.1-2.i386.rpm (in disk 4)

    openmotif21-2.1.30-9.i386.rpm

    pdksh-5.2.14-24.i386.rpm (in disk 2)

    libaio-0.3.102-1 (in disk 3)

    libaio-devel-0.3.102-1 (in disk 3)

  • 두 파일은 patch direcotry 의 p4198954_40_LINUX.zip 에 들어있다.
  • 이 파일들은 libaio-devel-0.3.102-1 와 의존성이 있으니 선 설치후 설치해야 한다.

    compat-oracle-rhel4-1.0-5.i386.rpm

    compat-libcwait-2.0-2.i386.rpm

  1. 엔진 설치 (Oracle Version 10.2.0.1)
    1. 오라클 설치 파일의 압축 해제
    2. 설치 디렉토리의 response 디렉토리 안의 enterprise.rsp 파일을 수정

  1. UNIX_GROUP_NAME="dba"
  2. FROM_LOCATION="/home/oracle/database/stage/products.xml
  3. ORACLE_HOME="/home/oracle/product/10g
  4. ORACLE_HOME_NAME="OUIHome"
  5. COMPONENT_LANGUAGES={"en,ko"}
  6. INSTALL_TYPE="EE"
  7. n _configurationOption=3

 

  1. #./runInstall –noconsole –silent –force –waitforcompletion –responseFile \

    /home/oracle/database/response/enterprise.rsp

  • Silent Mode 설치 시작

 

 

 

 

  • 설치 진행 과정을 보기 위해서 /home/oracle/oraInventory/logs 안의 파일을 확인한다.
    • tail –f installActions2011-07-29_12-45-15AM.log

    

    

  • 완료 후 sqlplus /nolog 로 버전을 확인한다.

  • 설치 완료

 

 

  1. Oracle patchset 설치를 위한 환경 설정
    1. /home/oracle/patchset 안의 p8202632_10205_LINUX.zip 압축 해제
    2. #cd /home/oracle/patchset/Disk1/response/patchset.rsp 파일 수정

    1. UNIX_GROUP_NAME="dba"
    2. FROM_LOCATION="/home/oracle/patchset/Disk1/stage/product.xml"
    3. ORACLE_HOME="/home/oracle/product/10g"
    4. ORACLE_HOME_NAME="OUIHome"
    5. COMPONENT_LANGUAGE={"en,ko"}
    6. DECLINE_SECURITY_UPDATES=true
    1. ./runInstaller –noconsole –silent –responseFile \

    /home/oracle/patchset/Disk1/response/patchset.rsp

  • Silent Mode Installation Start
  • Error 발생 (OUI-10033, OUI-10180 => 같은 원인)

        

  • 다음 파일을 다시 점검한다.

/etc/oraInst.loc

- root 권한으로 파일 생성

- oraInventory 위치와 oracle install group 을 지정

 

inventory_loc=/home/oracle/oraInventory

inst_group=dba

 

  • 소유자 변경

    #chown –R oracle.dba /etc/oraInst.loc

 

 

 

 

 

 

  • 다시 설치 시작하면 설치가 진행된다. 한글이 깨져서 설치 과정이 보이지 않는다면
    • #export LANG=c
      • 영문으로 설치 진행 과정을 볼 수 있으며 log 파일을 tail –f <filename> 을 이용해 확인 가능

  • 설치가 완료되면 다음에 나오는 스크립트를 루트권한으로 실행한다.

 

  • 스크립트 실행화면
    • 모두 y 를 입력하여 덮어 씌워 준다.

  • Sqlplus /nolog 명령어를 통해서 다음과 같이 버전이 나온다면 Patch 성공
    • 10.2.0.5.0

  1. 리스너 구성
    1. 리스너 구성시에는 netca.rsp 파일을 수정하여 실해함
      1. cd /home/oracle/product/10g/bin/
      2. #./netca /silent /log /home/oracle/product/10g/network/tools/log/netca.log \

        /responseFile /home/oracle/database/response/netca.rsp

      3. 구성 완료
        1. 만약 실패한다면 exit code is 1 로 나오게 된다.

 

  1. 데이터베이스 생성
    1. Reponse 파일과 Template 파일을 수정하여 dbca를 실행
      1. #cd /home/oracle/product/10g/bin
      2. #./dbca –silent \

>–templateName General_Purpose.dbc \

     >-responseFile /home/oracle/database/response/dbca.rsp

  1. 설치 진행 && 완료

Oracle 9i Silent Installation && Patch on RedHat Enterprise Linux 4

  1. Oracle 설치를 위한 환경 설정
    1. Oracle 사용자 및 Group 생성
      1. Group : dba - #groupadd –g 5000 dba
      2. User : oracle - #useradd –g dba –d /home/oracle oracle
      3. chown –R oracle.dba /home/oracle && chmod –R 755 /home/oracle or chomd –R 755 /home/oracle/database

 

  1. Kernel 설정 (root 권한으로 진행)

/etc/sysctl.conf

kernel.shmmax=1073741824

kernel.shmmni=4096

kernel.shmall=2097152

kernel.sem=250 32000 100 128

fs.file-max=65536

net.ipv4.ip_local_port_range=1024 65000

Screen Shot

 

 

/etc/ld.so.conf

/lib

/usr/lib

/usr/local/lib

Screen Shot

/proc/sys/kernel/shmmax

- Oracle DB 생성시 dbca OUI 를 위한 공유 메모리 설정

#echo 'expr 1025\*1025\*1024' > /proc/sys/kernel/shmmax

/etc/oraInst.loc

- root 권한으로 파일 생성

- oraInventory 위치와 oracle install group 을 지정

 

inventory_loc=/home/oracle/oraInventory

inst_group=dba

 

  • 소유자 변경

    #chown –R oracle.dba /etc/oraInst.loc

 

 

 

 

환경 파일 설정 - .bash_profile

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/9.2.0

export ORACLE_OWNER=oracle

export ORACLE_SID=testdb

export ORACLE_TERM=xterm

export NLS_LANG=AMERICAN_AMERICA.K016KSC5601

export TNS_ADMIN=$ORACLE_HOME/ocommon/nls/admin/data

LD_LIBRARY_PATH=$ORACLE_HOME/ocommon/lib:lib:/usr/lib

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export LD_LIBRARY_PATH

export PATH_$PATH:$ORACLE_HOME/bin

export LANG=C

export PATH=$PATH:$ORACLE_HOME/bin:/$ORACLE_BASE/JRE/bin

export PATH=$PATH:$ORACLE_HOME/bin

Screen Shot

 

 

  1. RPM 설치 확인

    compat-db-4.1.25-9 (in disk 3)

    compat-gcc-32-c++-3.2.3-47.3 (in disk 4)

    compat-gcc-32-3.2.3-47.3 (in disk 4)

    compat-libgcc-296-2.96-132.7.2 (in disk 3)

    compat-libstdc++-296-2.96-132.7.2 (in disk 3)

    compat-libstdc++-33-3.2.3-46.1 (in disk 2)

    java-1.4.2-gcj-compat-1.4.2.0-26jpp (in disk 3)

    nss_db-compat-2.2-28 (in disk 4) -

    gnome-libs-1.4.1.2.90-44.1.i386.rpm (in disk 3)

    xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm (in disk 3)

    libpng10-1.0.13-13.i386.rpm (in disk 3)

    sysstat-5.0.1-2.i386.rpm (in disk 4)

    openmotif21-2.1.30-9.i386.rpm

    pdksh-5.2.14-24.i386.rpm (in disk 2)

    libaio-0.3.102-1 (in disk 3)

    libaio-devel-0.3.102-1 (in disk 3)

  • 두 파일은 patch direcotry 의 p4198954_40_LINUX.zip 에 들어있다.
  • 이 파일들은 libaio-devel-0.3.102-1 와 의존성이 있으니 선 설치후 설치해야 한다.

    compat-oracle-rhel4-1.0-5.i386.rpm

    compat-libcwait-2.0-2.i386.rpm

  1. 엔진 설치 (Oracle Version 10.2.0.1)
    1. 오라클 설치 파일의 압축 해제
    2. 설치 디렉토리의 response 디렉토리 안의 enterprise.rsp 파일을 수정

  1. UNIX_GROUP_NAME="dba"
  2. FROM_LOCATION="/home/oracle/install/Disk1/stage/products.xml
  3. ORACLE_HOME="/home/oracle/product/9i
  4. ORACLE_HOME_NAME="OUIHome"
  5. s_cfgtyperet="Software Only"
  6. SHOW_END_SESSION_PAGE = true
  1. #./runInstall –noconsole –silent –force –waitforcompletion –responseFile \

    /home/oracle/install/Disk1/response/enterprise.rsp

  • Silent Mode 설치 시작

 

  • 설치 진행 과정을 보기 위해서 /home/oracle/oraInventory/logs 안의 파일을 확인한다.
    • tail –f installActions2011-07-29_12-45-15AM.log

    

 

      

 

 

 

 

  • 설치가 완료되면 root 권한으로
  • #/home/oracle/product/9.2.0/root.sh

  • 완료 후 sqlplus /nolog 로 버전을 확인한다.

  •  

 

 

  1. Oracle Patchset 설치를 위한 환경 설정
    1. /home/oracle/patchset 안의 p4547809_92080_LINUX.zip 압축 해제
    2. #cd /home/oracle/patchset/Disk1/response/patchset.rsp 파일 수정

    1. UNIX_GROUP_NAME="dba"
    2. FROM_LOCATION="/home/oracle/patchset/Disk1/stage/product.xml"
    3. ORACLE_HOME="/home/oracle/product/9.2.0"
    4. ORACLE_HOME_NAME="OUIHome"
    1. ./runInstaller –noconsole –silent –responseFile \

    /home/oracle/patchset/Disk1/response/patchset.rsp

  • Silent Mode Installation Start

  • 설치가 완료되면 다음에 나오는 스크립트를 루트권한으로 실행한다.

  • 스크립트 실행화면
    • 모두 y 를 입력하여 덮어 씌워 준다.

 

  • Sqlplus /nolog 명령어를 통해서 다음과 같이 버전이 나온다면 Patch 성공
    • 9.2.0.8.0

 

  1. 리스너 구성
    1. 리스너 구성시에는 netca.rsp 파일을 수정하여 실해함
      1. cd /home/oracle/product/9.2.0/bin/
      2. #./netca /silent /log /home/oracle/product/9.2.0/network/tools/log/netca.log \

        /responseFile /home/oracle/install/Disk1/response/netca.rsp

      3. 구성 완료
        1. 만약 실패한다면 exit code is 1 로 나오게 된다.

 

  1. 데이터베이스 생성
    1. Reponse 파일과 Template 파일을 수정하여 dbca를 실행
      1. #cd /home/oracle/product/9.2.0/bin
      2. dbca.rsp 파일 수정
        1. SID="testdb"
        2. GDBNAME="newtest" (1~8글자 사이)
        3. CHARACTERSET = "K016KSC5601"
          1. createDatabase 항목만 수정하면 된다.
      3. #./dbca –silent \

>–templateName General_Purpose.dbc \

     >-responseFile /home/oracle/install/Disk1/response/dbca.rsp

  1. 설치 진행
  • #Dbca –silent –templateName General_Purpose.dbc \

    -responseFile /home/oracle/install/Disk1/response/dbca.rsp

  • 설치 완료


# chown -R oracle.dba    /usr/local/java 
# chown -R oracle.dba /usr/local/jre

jdk 와 jre 디렉토리의 권한이 oracle . dba 로 되어있는지 확인.

+ Recent posts