오라클

ORACLE HOME DIRECTORY 변경 방법  

OEasy 2006. 10. 30. 19:59
BULLETIN CATEGORY
BULLETIN TOPIC 
: RDBMS 
: ORACLE HOME DIRECTORY 변경 방법  

?ORACLE HOME DIRECTORY를 옮기는 과정은 다음의 세 단계로 나누어 진다.
    1. 오라클 소프트웨어의 이동
    2. 데이타 화일, 로그 화일, 콘트롤 화일 등의 데이타베이스 부분의 이동
    3.  각종 환경 설정의 변경
  만약 오라클을 다른 MACHINE으로 옮기는 경우라면 두 OS 가 Binary Compatible 해야 하며, 옮길 대상 경로가 원본과 동일하도록 한다. 일반적으로 OS 가 같더라도 버전이 다르면 Binary Compatible 하지 않은 경우가 있으니 유의해야 한다.
아래는 동일한 machine에서 옮기는 경우에 대한 설명이다.

  <주의> 모든 작업은 오라클을 셧다운한 상태에서 진행한다.

1. 오라클 소프트웨어의 이동
  OS 상의 명령어(tar, cpio, cp 등)을 사용하여 오라클 소프트웨어를 새로운 디렉토리로 옮긴다. ORACLE HOME DIRECTORY 이하 부분을 모두 옮기면 된다. 작업이 끝난 후에 화일의 크기나 checksum(sum 명령)을 이용하여 제대로 옮겨졌는지를 확인하도록 한다. 이때 복사된 화일의 permission은 전과 동일해야 하며, owner 및 group이 바르게 지정되어 있어야 한다. 특히 $ORACLE_HOME/bin/oracle, $ORACLE_HOME/bin/oracleO, $ORACLE_HOME/bin/tnslsnr의 setuid가 지정되어 있어야 한다.

2. 데이타베이스의 이동
  데이타베이스를 구성하는 화일들을 다음 명령을 이용하여 확인한 다음 앞의 1.과정에서 복사되지 않은 화일이 있으면 새로운 디렉토리로 복사한다.

    SVRMGR>select * from dba_data_files; 
    SVRMGR>select * from v$logfile; 
    SVRMGR>select * from v$controlfile;
  그 다음에 다음과 같은 과정을 거쳐서 데이타 화일과 로그 화일의 이동 상태를 콘트롤 화일에 반영한다. 이 명령은 위에서 출력된 데이타 화일과 로그 화일 모두에 대해서 수행되어야 하며 한번의 명령에 여러 개의 화일을 지정할 수 있다.
  예) 데이타 화일의 이동(여기서는 2개의 화일에 대한 예를 들었다.)
    SVRMGR> startup mount 
    SVRMGR> alter database rename file 
     '<old path>/file1', '<old path>/file2' to 
     '<new path>/file1', '<new path>/file2';
  <주의> 만약의 경우를 위하여 콘트롤 화일을 생성해 주는 스크립트를 다음 명령으로 만들어 두도록 한다.
    SVRMGR>alter database backup controlfile to trace
  이 결과는 <user_dump_dest> 디렉토리에서 가장 나중에 생긴 트레이스 화일에 약간의 편집을 통하여 사용할 수 있는 형태로 저장된다.
<생성된 control 화일의 위치 확인>
    SVRMGR> show parameter USER_DUMP_DEST
3. 환경 설정의 변경
  /etc/oratab 또는 /var/opt/oracle/oratab 화일을 새로운 값으로 수정한다. 그리고 $ORACLE_HOME 을 설정할 때에는 소프트 링크를 포함해서는 안된다. init<SID>.ora의 내용과 여기에 ifile로 기술된 config<SID>.ora 화일의 내용을 수정한다. 기본적인 것은 다음과 같은데 이외의 내용도 있을 수 있다.
     ifile 
     control_files 
     background_dump_dest 
     log_archive_dest 
     db_name(변경된 경우)
  만약 다른 MACHINE으로 옮기는 경우라면 SHARED MEMORY와 SEMAPHORE의 설정도 적절히 세팅되어야 하며 Swap Space도 고려하여야 한다.
  다음과 같은 UNIX USER 환경변수를 새로운 값으로 변경한다.
     $ORACLE_HOME 
     $ORACLE_SID(변경된 경우)
     $FORMS30PATH 
     $ORAKITPATH 
     $TNS_ADMIN
 그리고 $ORACLE_HOME/rdbms/lib/sysliblist에 절대패스로 지정된 것이 있으면 이 값도 새로운 값으로 변경한다.
 makefile 의 내용중 절대 패스로 지정된 것이 있으면 이 값도 변경한다.

 - 새로운 시스템으로 옮긴 경우에는 NO-SUID flag이 설정되어 있지 않아야 한다. 대부분의 시스템은 /etc/fstab 화일에 이 flag을 갖고 있다.
 - ORACLE INSTALLER에서 사용되는 User Default File인 usrdfl.log 화일은 더 이상 무의미하므로 삭제한다. 이 화일은 일반적으로 $ORACLE_HOME/orainst 디렉토리에 있다.
 - 시스템을 변경하는 경우라면 /etc/services 화일에 SQL*Net listener 항목을 추가하고 ORACLE OWNER ID를 만들고 DBA 그룹에 등록한다.
 - 기존에 만든 스크립트나 cron job 가운데 디렉토리를 참조하는 부분의 변경이 필요하면 수정한다.


Oracle Korea Customer Support Technical Bulletins
 

'오라클' 카테고리의 다른 글

FREE LISTS와 FREE SPACE 관리  (0) 2006.10.30
DATABASE CHARACTER SET을 변경하는 방법  (0) 2006.10.30
FULL TABLE SCAN을 보다 빠르게 하는 방법  (0) 2006.10.30
Oracle7 에서 User 등록  (0) 2006.10.26
ORA-1562 조치방법  (0) 2006.10.26