- Archive log list;       :  로그 상태 확인

 

 - V$LOGFILE            : Redo Log File 의 경로와 갯수 확인

 

 - V$LOG                  : 현재 사용하고 있는 파일의 상태

 

  * 아카이브 모드 활성화 시키기 위한 파라미터

 

  ; log_archive_start (=true)

                                 : 아카이브 프로세스를 오라클 시작과 함께 설정한다.

 

  ; log_archive_dest (='경로명')

                                 : 아카이브 프로세스가 로그파일을 아카이브 로그파일로 저장할 디렉토리 설정

 

  ; log_archive_format (='화일명')       ex) = %S.arc

                                 : 아카이브 로그 파일의 이름 설정

     -> 옵션    %S : redo log 시퀀스 넘버 표시, 자동으로 왼쪽이 0 으로 채워져 파일이름 길이가 일정해 진다.

                  %s : redo log 시퀀스 넘버 표시, 파일 이름 길이가 일정 하지 않다.

                  %T : redo 스레드 넘버 표시, 자동으로 왼쪽이 0 으로 채워져 파일 이름 길이 일정.

                  %t  : redo 스레드 넘버 표시, 파일 이름 길이가 일정 하지 않다.

 

 

  * MOUNT 단계

 

    - alter database archivelog      :    아카이브 모드로 변경 할 수 있다. 

 

 * 아카이브 로그 상태 만들기

 

        - 일반

 

    SQL) shutdown

   

    SQL) log_archive_start = true

    SQL) log_archive_dest = '경로'

    SQL) log_archive_format = '파일명'

 

    SQL) startup mount

    SQL) alter database archivelog;

    SQL) alter database open

 

       - 9i server parameter 사용 중일 경우

 

    SQL) alter system set log_archive_start=true scope=spfile;

    SQL) alter system set log_archive_dest='경로명' scope=spfile;

    SQL) alter system set log_archive_format = '파일명' scope=spfile;

 

    SQL) shutdown immediate

    SQL) startup mount

 

    SQL) startup mount

    SQL) alter database archivelog;

    SQL) alter database open

 

    *  아카이브 로그 다중화 만들기

 

 - 두 개의 경로

      

     - log_archive_dest='경로명1'

     - log_archive_duplex_dest='경로명2'

                                                                  -> 다중화는 서로 다른 디스크에 있어야 효과가 있는 것!!!

 

     - log_archive_min_succed_dest = [1/2]

             -> [1]  : log_archive_dest에 아카이브 로그파일이 만들어진 이후 redo 로그 파일에

                          새로운 내용을 덮어 쓸 수 있고 (default), 로그 스위치 완결

  

            ->  [2] : log_archive_dest 와 log_archive_duplex_dest 를 모두 완결해야 

                         redo log file 에 새로운 내용을 덮어 쓸 수 있다. 

 

    - 두 군데 이상 아카이브 로그 생성

           

            -> log_archive_dest_# 으로 표시

                          : Oracle 8i 부터 5개 9i 부터는 10개의 다른 위치를 지정 가능 하다.

 

    - 옵션 

        -> mandatory   : redo 로그 파일 복사가 성공해야 redo log file 을 겹쳐 쓸 수 있게 한다.

                       -> reopen 옵션 : 복사가 실패할 경우 지정된 시간 이후 재시도 (default=300 [초])

                                     -> if) reopen 설정 안했는데 에러 발생시 더이상 redo log file 의 복사를 시도 하지 않는다.

                                             필수 대상 경로에 실패할 경우 로그 스위치는 완결되지 못하고, alert 파일에 경고, 저장된다.

 

       -> optional        : redo log file 의 복사가 실패해도 redo log file 을 겹쳐 쓸 수 있게 한다. 

 

         ex)  log_archive_start = true;

                log_archive_dest1="location=/backup/archive1/     mandatory reopen"

                log_archive_dest2="location=/backup/archive2/     mandatory reopen=100"

                log_archive_dest3="location=/backup/archive3/     optional"

                log_archive_dest4="service=oracle2   optional"                  -> service 는 원격지를 말한다.

                log_archive_format=%S%T.arc

 

     LOG_ARCHIVE_DEST 와 LOG_ARCHIVE_DEST_n 파라미터는 같으 시용할 수 없다. 

     하나가 null이 아닌값을 가지면 다른 것은 null 이나 ("") 이나 (' ')  값을 가져야 한다.

     

   - 여러개의 아카이브 프로세스(ARCH) 활성화 시키기

 

          : log_archive_max_process=[1...10]      -> 파라미터 변경

 또는

          : alter system set log_archive_max_process=[1...10];



[출처] http://blog.naver.com/kiyoun82/110070358754

          http://www.cyworld.com/vbman/8582656

'OraclE' 카테고리의 다른 글

logminor 로그마이너  (0) 2014.09.05
v$parameter  (0) 2014.08.05
systemstate dump 와 hang analyze 수행  (0) 2014.07.24
FILESYSTEMIO_OPTIONS  (0) 2014.07.22
session 레벨 sql trace  (0) 2014.07.16

+ systemstate dump 및 hang analyze 뜨는 법

sqlplus '/as sysdba

oradebug setmypid
oradebug unlimit
oradebug dump systemstate 266

oradebug hanganalyze 3
-- wait 60 sec
oradebug dump systemstate 266

oradebug hanganalyze 3
-- wait 60 sec
oradebug dump systemstate 266

oradebug hanganalyze 3


+ 10046 trace 수집 절차

oradebug setmypid

oradebug event 10046 trace name context forever, level 12
-- run query

oradebug event 10046 trace name context off;


+ SQLPLUS 접속 안될 경우 direct connection 방법

sqlplus -prelim / as sysdba
oradebug setmypid
<.. 이하 dump 수행 ..>


+ process state 및 errorstack 수집

oradebug setospid
oradebug unlimit
oradebug dump processstate 10
oradebug dump errorstack 3
<wait 3-4min.>
oradebug dump processstate 10
oradebug dump errorstack 3
<wait 3-4min.>
oradebug dump processstate 10
oradebug dump errorstack 3


+ 4031 Heap dump 수집

(주의 : 4031 heap dump 는 운영 중 수행할 경우에 수집 시간 동안 DB hang 이 걸릴 수 있음)

Ssqlplus /nolog
connect / as sysdba
alter system set events '10235 level 65536';
exit

Then wait a while for the ORA-4031

(or at least the memory allocations) to occur, and then execute:


sqlplus /nolog
connect / as sysdba
oradebug setmypid
oradebug unlimit
oradebug dump heapdump 536870914
oradebug tracefile_name
oradebug close_trace

once done you can disable the event using

alter system set events '10235 off';


+ 4031 Heap dump 수집

alter session set TRACEFILE_IDENTIFIER ='ORA4030_trace';
alter session set events '4030 trace name heapdump level 536870917 ;name errorstack level 3' ;
--Run SQL--
alter session set events '4030 trace name errorstack off'
alter session set events '4030 trace name heapdump off'


+ 클라이언트 단 TNS trace 설정 방법

클라이언트 단 sqlnet.ora file 에 아래 추가

TRACE_LEVEL_client=16
TRACE_FILE_client=client
TRACE_DIRECTORY_client=c:\temp /* trace 파일이 생성될 폴더 이름 */
TRACE_UNIQUE_client=YES
TRACE_TIMESTAMP_client=ON


+ OS stack trace 수집

Sun Solaris truss, e.g.:
$ truss -adefo <output file> <executable>

For a running process:
$ truss -o <output file> -dealf -p <OS PID> For a program to be started: $ truss -o <output file> -dealf <command-line>

HP/UX tusc, eg :
$ tusc -afpo <output file> <pid> <executable>
or
$ truss -d -o <outfile> -p <pid>

For a running process:
$ tusc -o <output file> -eanfulp -T "%Y-%m-%d %H:%M:%S" <OS PID>
$ tusc -o tusc.out -enafulp -T hires <OS PID>

For a program to be started:
$ tusc -o <output file> -eanfulp -T "%Y-%m-%d %H:%M:%S" <command-line>

IBM AIX truss, e.g.:
$ truss -aefo <output file> <executable>
$ truss -aefo listener.log -p PID

Linux strace, eg :
$ strace -fo <output file> <executable>

Take pstack:

AIX : /bin/procstack <pid-of-crsd.bin>
Linux : /usr/bin/pstack <pid-of-crsd.bin>
Solaris : /usr/bin/pstack <pid-of-crsd.bin>


'OraclE' 카테고리의 다른 글

v$parameter  (0) 2014.08.05
log_archive 파라미너 변경  (0) 2014.08.05
FILESYSTEMIO_OPTIONS  (0) 2014.07.22
session 레벨 sql trace  (0) 2014.07.16
테이블 rename시 dependency는?  (0) 2014.07.07

[출처] Oracle database Documentation Library 10g Release 2 (10.2)

FILESYSTEMIO_OPTIONS Initialization Parameter

You can use the FILESYSTEMIO_OPTIONS initialization parameter to enable or disable asynchronous I/O or direct I/O on file system files. This parameter is platform-specific and has a default value that is best for a particular platform. It can be dynamically changed to update the default setting.

FILESYTEMIO_OPTIONS can be set to one of the following values:

  • ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission.

  • DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache.

  • SETALL: enable both asynchronous and direct I/O on file system files.

  • NONE: disable both asynchronous and direct I/O on file system files.


FILESYSTEMIO_OPTIONS

PropertyDescription
Parameter typeString
SyntaxFILESYSTEMIO_OPTIONS = { none | setall | directIO | asynch }
Default valueThere is no default value.
ModifiableNo
BasicNo

FILESYSTEMIO_OPTIONS specifies I/O operations for file system files.

1) 문제의 session 에 대한 sid, serial# 확인.


SQL> select sid, serial#,username from v$session;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
214 5473 SCOTT

2) 식별된 session 에 sql trace 활성

SQL> execute dbms_monitor.session_trace_enable(214,5473);

3) 모니터링

SQL> select trace_type, primary_id, QUALIFIER_ID1, waits, binds from DBA_ENABLED_TRACES;

SELECT sid,serial#,username,sql_trace_waits,sql_trace_binds,sql_trace_plan_stats
FROM v$session
WHERE sql_trace = 'ENABLED';

4) trace 비활성

SQL> execute dbms_monitor.session_trace_disable(214,5473); 


'OraclE' 카테고리의 다른 글

systemstate dump 와 hang analyze 수행  (0) 2014.07.24
FILESYSTEMIO_OPTIONS  (0) 2014.07.22
테이블 rename시 dependency는?  (0) 2014.07.07
ORA-14102: only one LOGGING or NOLOGGING clause may be specified  (0) 2014.06.18
oracle hr schema 생성  (0) 2014.05.21

+ Recent posts