티스토리 툴바


Oracle/Linux2011/11/07 17:56
오라클 설치시 bash shell을 이용하는 환경에서
.bash_profile의 환경변수를 수정한다. 여기서

ORACLE_BASE
ORACLE_HOME
ORACLE_SID

PATH
LD_LIBRARY_PATH

등을 설정한다. prompt의 설정값들도 바꾸어 놓아 현재의 SID등을 설정해 보기 쉽게 만든다.
여기서 oracle univertial installer로 인스톨을 할 때 제대로 경로를 잡아주기위해 설정하는 환경변수로
볼 수 있으며 일시적으로 적용시키려면

$>export ORACLE_SID=orcl

으로 export명령어를 이용해 명령어를 입력한 terminal에만 적용시킬 수 있다.
확인은

$>echo $ORACLE_SID

명령어로 할 수 있다.

$>export ORACLE_HOME=$ORACLE_BASE/product

의 명령어로 이전에 저장된 환경변수 값을 연결시킬 수도 있는데 이 때 '$'값을 앞에 붙여주면 적용된다.

<PATH에 대한 설명>
보통 linux의 환경에서 ls, cd, pwd 등의 명령어로 쉽게 하고자 하는 일을 하는데
이는 환경변수설정에서 PATH의 값이 각 명령어들에 매칭이 되어있기 때문이다.
보통 명령어들은 /usr/bin 의 경로나 /usr/sbin 의 경로에 있다. 그래서 우리는
명령어를 직접찾아가서 실행해줄 필요없이 아무런 경로에서나 명령어를 입력하면
바로바로 실행할 수 있는 것이다.
echo 명령으로

$>echo $PATH

를 쳐보면 PATH가 잡힌 것들을 다 볼 수 있는데 oracle에서 PATH를 설정하고자 함은
oracle을 설치함으로써 함께 설치되는 명령어들( sqlplus, oerr, lsnrctl 등등)을 경로에 직접 찾아갈 필요없이
바로 아무 위치에서나 사용할 수 있게 하기 위함이다.

export PATH=$ORACLE_HOME/bin:$PATH

를 삽입해 오라클 설치경로인 $ORACLE_HOME 경로에서 bin이라는 디렉토리를 설정해준다.
그러면 우리가 sqlplus등의 명령어를 손쉽게 사용할 수 있는 것이다. ':'로 이전에 export 했던
PATH들을 연결시켜줘 다른명령어도 사용함에 문제가 없게 한다.

저작자 표시

'Oracle > Linux' 카테고리의 다른 글

[오라클] .bash_profile  (0) 2011/11/07
Linux 기본 명령어2  (2) 2010/07/18
Linux terminal 사용팁  (0) 2010/07/18
Linux 기본 명령어1  (0) 2010/07/18
Linux란?  (0) 2010/07/17
Posted by BlowIt
Oracle/work shop 12011/11/07 17:36
종류 : pfile
         spfile

존재경로 : $ORACLE_HOME/dbs

존재형태 : pfile -> init[SID].ora
               spfile -> spfile[SID].ora

우선순위 : spfile >> pfile
               pfile과 spfile이 동시에 존재한다면 spfile을 인식해 nomount단계까지 끌어올린다.
 
설명 : 오라클 instance의 size를 결정하거나 할당할 수 있는 process들의 수 등, 수 많은 파라미터를 결정해
         그 값들을 파일에 저장시켜놓아 해당 DB에 최적화된 파라미터값들을 가질 수 있도록한다. 
         spfile은 동적파라미터로 DB가 운영 중임에도 불구하고 파라미터값을 즉시 바꿀 수 있다. (하지만 일부
         정적파라미터는 다시 구동해야 적용되는 부분이 있음)binary로 된 파일로 존재하는데 이것을 vi편집기로
         건드리면(수정 후 저장, 제대로 볼 수도없겠지만) 파일이 손상되어 다시는 쓸 수 없게
된다.
         pfile은 text형태의 파일로 존재하며 직접 vi편집기로 수정가능하다. 하지만 pfile을 수정 후 그 파라미터들을
         해당 DB에 적용시키기 위해서는 반드시 재기동이 필요하다. 

backup
         파라미터파일들은 그 시점마다 저장시켜놓고 startup 시에 pfile 또는 spfile을 이용해 시점에 해당하는
         파라미터들을 적용시킬 수 있다. 따라서 해당 시점에 파라미터파일을 저장해놓고 파일명에 식별가능하게
         backup해 놓는 것이 현명하다.
 
         SQL> create spfile from pfile;
         SQL> create pfile from spfile;
         SQL> create pfile from spfile='/u01/app/oracle/initbackup.ora';

         특정 경로를 직접 입력해도 무방하다. 하지만 3번같은 경우 현재 사용 중인 pfile이 있다면 덮어 쓸
         위험도 있으므로 pfile='/u01/app/oracle/111107_back' 따위로 이름을 따로 결정해 주는 것이 현명.
         
 
spfile사용시 정적파라미터들에 대한 변경
        일부 정적파라미터들은 spfile을 사용하더라도 다시 기동해줘야하는 부분이 생긴다.
          SQL> alter system set sga_max_size=100;
        보통 파라미터값을 바꿀 때 위와같이 명령어를 입력한다.하지만 위의 경우 오류메시지를 출력하며 반영이 안될 것이다.
        따라서 scope=spfile 옵션을 주고 DB를 재기동 시켜야 적용된다.

        <scope 옵션을 이용한 파라미터의 적용>
           scope=both      >>>>> 현재 메모리와 다음 startup시에 동시 적용
           scope=spfile     >>>>> 다음 startup시에 적용(spfile에 저장시킴)
           scope=memory  >>>>> 현재 메모리에만 적용

           ex) SQL> alter system set sga_max_Size=100 scope=spfile;


 
저작자 표시

'Oracle > work shop 1' 카테고리의 다른 글

[오라클] parameter file  (0) 2011/11/07
[오라클]시작과 종료  (0) 2011/11/03
[오라클]backup script  (0) 2011/11/02
[오라클] catalog database  (0) 2011/11/02
[오라클] backup  (0) 2011/11/02
[오라클] PCT_USED, PCT_FREE  (0) 2011/11/01
Posted by BlowIt
Oracle/work shop 12011/11/03 08:33
오라클 시작


오라클 시작과 종료를 설명할 때 보통 위의 그림으로 설명한다.
각각의 상태가 어떤 상태이며 어떠한 것을 접근할 수 있고 어떤 것을 수행할 수 있는지 설명한다.

오라클 시작순서
1. shutdown
    - 해당 DB에 대한 어떠한 접근도 허용하지 않는다.
2. nomount
    - instance가 형성
    - parameter 접근
    - alert_log, trace파일 접근
    - controlfile 재생성
    - database 생성(새로운 DB를 만드는 경우)
3. mount
    - 컨트롤파일에 대한 접근
    - 데이터파일, 리두로그 파일에 대한 접근을 준비
    - (컨트롤파일 안에 있는 데이터파일, 리두로그 파일의 물리적인 위치를 읽어 매핑만 시켜준다)
    - archive log mode / noarchive log mode로의 변경
    - flashback 활성화
4. open
    - mount 단계에서 매핑만 시켜주었던 것을 실제 존재여부를 확인
    -사용가능하도록 한다. 

** 각 단계에서 어떠한 것을 수행하는지 알고있어야만 적절한 트러블슈팅이 가능할 것이다.
** 만약 db가 nomount상태로 올라가지 못한다면 의심해봐야 할 것은 파라미터파일의 유무,
    적절한 파라미터가 설정되어 있는가 등일 것이다.


---------------------------------------------------------------------------------
>-------------------------------------------------------------------------------<
<tip>
shutdown->nomount->mount->open
의 단계를 거치는 오라클은 

    SQL>startup nomount

와 같이 각 단계로 이동할 수 있는데 이때 nomount단계에서 바로

    SQL>alter database open;

명령으로 open 단계로 가지 못한다.
따라서 mount단계를 먼저 선행한 후 open단계로 가는 것이 방법이다.
>-------------------------------------------------------------------------------<
---------------------------------------------------------------------------------



오라클 종료
  shutdown 옵션
     1) normal
        추가적인 세션 : x
        세션종료 대기 : o

     2) transactional
        추가적인 세션 : x
        세션종료 대기 : x (단, 작업완료까지는 대기)
        수행 중 작업 : o
             * normal과는 다르게 현재 작업이 완료된(commit을 수행한) 세션에 대해서
             즉시 종료된다는 차이점이 있다. 따라서 batch작업 등이 수행 중이라면 끝날 때 까지 종료되지 않음을 의미한다.

     3) immediate
        추가적인 세션 : x
        세션종료 대기 : x 
        수행 중 작업 : 강제종료(단, 수행 중 작업은 rollback 후 종료)
              * transactional 보다 더 빠르게 종료할 수 있다. 현재 commit을 완료하지 않은 세션에 대해서도 종료한다.
              따라서 작업이 완료된 시점부터 작업 중인 데이터까지는 rollback처리 된다.

     4) abort
        추가적인 세션 : x
        세션종료 대기 : x 
        수행 중 작업 : 강제종료(비정상종료)
              * rollback시키지 않고 바로 종료시켜버린다. 이는 instance에 남아있지만 commit완료된 데이터에대한
                손실로 볼수도 있다. 따라서 백그라운드 프로세스 SMON은 재기동시 instance에 대한 복구를 수행하게 된다.

SMON의 instance복구
    SMON은 비정상종료된 DB는 instance에 있는 data들이 commit완료되었는지, 아닌지를 판단해
  instance 복구를 수행하게 된다. commit완료되었다면 rollforward해 commit을 적용시키고
  아니라면 rollback해 데이터 정합성을 지켜준다. 
 
저작자 표시

'Oracle > work shop 1' 카테고리의 다른 글

[오라클] parameter file  (0) 2011/11/07
[오라클]시작과 종료  (0) 2011/11/03
[오라클]backup script  (0) 2011/11/02
[오라클] catalog database  (0) 2011/11/02
[오라클] backup  (0) 2011/11/02
[오라클] PCT_USED, PCT_FREE  (0) 2011/11/01
Posted by BlowIt