ORACLE/INSTALL2010. 5. 31. 11:29
반응형



Oracle Database Upgrade Guide     (From 9.0.1.X to 9.2.0.X)


Introduction.
 
Upgrade 의 개요
 

Oracle Database 9.0.1.X 는 Oracle 9i Release 1, 또는 Oracle 9iR1 이라고도 불린다. 또한 9.2.0.X 는 Oracle 9i Release 2라고 한다. 이것은 이 두 버전의 차이가 상당하다는 의미를 내포하는 것이다.

9iR1에서 9iR2로의 업그레이드는 변화의 규모에서 사실상 새로운 설치와 다름이 없다. 구체적으로 말하자면 9iR2 처럼 정규적으로 배포되는 CD가 있는 경우에는 버전에 큰 변화가 있는 것이므로, 되도록이면 새로운 $ORACLE_HOME을 설정하고 오라클 엔진을 새로이 설치하는 것이 좋다. 실제로 오라클 설치매뉴얼에도 이는 강력히 권장되고 있으며, 만약의 경우 이전 상태로의 빠른 복구를 보장할 수 있다. 새로운 $ORACLE_HOME을 지정하지 않으면 이전 버전을 지우고 그 위에 새로운 버전의 엔진을 엎어 쓴다.
 
OS가 64bit인 경우에는 이전의 32bit제품을 64bit로 업그레이드 하는 경우는 별다른 조치가 필요없다. Character set의 word change도 자동으로 이루어지므로 신경쓰지 않아도 된다. (예. 32bit 9.0.1.4 에서 64bit 9.2.0.1 로의 업그레이드시 다른 조치가 필요없음)
 
 

주의사항
 
이 문서는 Sun OS 위주로 작성되었으나, 다른 OS에도 적용할 수 있다. 그럴 경우 OS에 따른 경로의 차이를 감안하면 된다.
 

작업 내용
 
사 전 준비
 
1. 백업:
데이터 파일의 백업은 미리 해도 되고 안해도 된다. DBUA (Database Upgrade Assistant) 가 실행되면서 어차피 백업을 해 주기 때문이다. 오히려 이 방법이 복구시 더 간편할 수도 있다. 단, DBUA가 백업본을 보관할 장소를 물어오는데, 이때 oracle user가 그곳의 쓰기권한이 없다면 DBUA는 백업과정을 무시하고 다음 단계로 진행해 버리니 주의해야 한다.

2. OS version check:
 
isainfo  kv

3. Oracle version check
 
Sqlplus ‘/as sysdba’ 로 들어간 후, 줄 마지막에 64bit Production이라고 나오지 않는다면 32bit 제품이다. 64bit OS에는 64bit 제품이건 32bit 제품이건 설치가 가능하다. 그러나 32bit OS에는 64bit 제품을 설치할 수 없다. 기존제품이 32bit 였고, 고객이 신 버전으로 64bit를 원한다면 반드시 새로운 $ORACLE_HOME에 설치해야 한다.
 
4. Memory setting
 
/etc/system 을 열어서 아래의 값이 확보되어 있는지 확인한다.
 
forceload:sys/shmsys
forceload:sys/semsys
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=500
set shmsys:shminfo_shmseg=100
set semsys:seminfo_semmns=1000
set semsys:seminfo_semmap=300
set semsys:seminfo_semmni=512
set semsys:seminfo_semmnu=500
set semsys:seminfo_semmsl=500
set semsys:seminfo_semopm=256
set semsys:seminfo_semume=100
set semsys:seminfo_semvmx=32767

5. /tmp 용량 확인   적어도 300m 가 있어야 한다.

 
6. 기존 DB의 설치파일을 백업해 두고, 필요한 경우 수정하며, 파일 권한도 확인해 둔다. 이 파일들은 새로운 인스톨 과정에서 덮어써지기 때문이다.

cp /var/opt/oracle/oraInst.loc /var/opt/oracle/oraInst.loc.bak
(OS에 따라서 cp /etc/oraInst.loc /etc/oraInst.loc.bak)
cp /usr/local/bin/dbhome /usr/local/bin/dbhome.bak
cp /usr/local/bin/oraenv /usr/local/bin/oraenv.bak
cp /usr/local/bin/coraenv /usr/local/bin/coraenv.bak
cp /var/opt/oracle/oratab /var/opt/oracle/oratab.bak (이때 새로운 SID가 보이지 않아도 그대로 둘 것)
 
7. .profile을 수정하여 새로 설치하려는 oracle의 환경으로 바꾼다. (사내서버의 경우 oracle user로 로그인할 경우 다양한 환경을 선택할 수 있도록 되어있으니 쉘스크립트의 case문에 추가하는 것이 좋다.) 다시 로그인 하든가 환경변수를 인식시켜 새로운 값을 가지게 한다. DB를 추가하는 경우가 아니므로, 업그레이드의 경우에는 $ORACLE_SID는 바꾸지 않아도 된다. $ORACLE_HOME 은 예를 들어 기존의 home이 …/…/9.0.1 이라면 새로운 home은 …/…/9.2.0 등등으로 바꾼다.
 

Oracle Database 9.2.0.1 설치
 
1.       DB를 내린다. Listener를 내린다. Agent도 내린다. (agentctl stop   사용되지 않은 상태였다면 “Could not contact agent. It may not be running.” 라는 메시지가 나오는데 무시하면 된다.)
 
2.       CD라면 마운트를 하고 oracle user로 ./runInstaller 를 실행. (만약 ‘/runInstaller: cannot execute’ 에러가 난다면 실행권한을 확인하고 하부 디렉토리까지 775정도로 바꿔준다. Xclock 이 실행되는지 확인. Xclock이 실행되지 않으면 runInstaller도 절대 실행되지 않는다. 문제가 있다면 echo $DISPLAY를 봐서 지금 x-server가 작동되는 PC의 ip가 나타나는지 확인해야 한다.)
 
3.       $ORACLE_HOME의 이름을 다르게 적어넣고 (예: ORACLE_HOME2) 경로를 바꿔준다. 만약 환경변수를 제대로 인식시켰다면 그 경로가 자동으로 나타날 것이다.

4.       설치과정중 ‘software only’를 선택하여 Oracle 엔진만 설치한다.
 
5.       $ORACLE_HOME에 있는 root.sh를 root 권한으로 돌리라고 한다. 창을 하나 더 띄워서 실행해 준다. 참고로 이로서 위의 6번에서 백업해둔 파일들이 업데이트된다.
 
6.       Installer가 끝나면 DBUA가 실행된다. (드물게 Oracle Enterprise Manager가 뜨는 경우가 있다. 그럴때는 끄고 unix prompt상에서 dbua를 실행하면 DBUA가 뜰 것이다.) 우선 백업을 할지 묻는다. DBUA로 백업하기로 결정했다면 적절한 곳에 백업받기 바란다. 이때 목적지의 쓰기권한을 반드시 확인한다.
 
7.       DBUA가 DB를 올려달라고 요청하면 그때 올려주면 된다.
 
8.       성공적으로 끝나면 9.2.0.1 까지 업그레이드가 다 된 것이다. 확인하고 싶다면 여기서 sqlplus 로 DB를 올려보면 된다.
 

9.2.0.X Patchset 적용
 
1.  Patchset을 업로드하고 적당한 곳에서 압축을 푼다.
 
Uncompress the file using "gunzip". Eg.: "gunzip solaris64_9.2.0.1.0.Disk1.cpio.gz"

Extract the file resulting from the step above using "cpio". Eg.: "cpio -idmv < solaris64_9.2.0.1.0.Disk1.cpio"

Repeat this for solaris64_9.2.0.1.0.Disk2.cpio.gz and solaris64_9.2.0.1.0.Disk3.cpio.gz

Important Note: Some browsers will uncompress the files but leave the extension the same (gz) when downloading. If the above steps do not work, try skipping step 1 and go directly to step 2 without changing the filename. Eg. "cpio -idmv < solaris64_9.2.0.1.0.Disk1.cpio.gz"
 
* oracle_patch_from_9.2.0.4_to_9.2.0.6.pdf 문서에 이 작업이 그림과 함께 자세히 설명되어 있으므로 참고하기 바람.
 
2.       DB와 Listener를 내린다. Agent도 내린다. (agentctl stop   사용되지 않은 상태였다면 “Could not contact agent. It may not be running.” 라는 메시지가 나오는데 무시하면 된다.)
 
3.       동일한 방법으로 runInstaller를 실행하고 지시에 따른다.
 

사후 처리
 
1.       끝나면 startup migrate 로 시작한후 $ORACLE_HOME/rdbms/admin/catpatch.sql을 수행한다. 서버와 데이터의 크기에 따라 다르지만 1시간여 걸린다.
 
2.       DB를 내렸다가 정상적으로 startup 한 다음 $ORACLE_HOME/rdbms/admin/utlrp.sql을 수행한다.
 
3.       v$version 등을 조회해서 이상없이 업그레이드가 되었는지 확인한다. 이전의 $ORACLE_HOME에 가서 listner 관련 파일(tnsnames 등등)들을 복사해 와서 새로운 홈에서 적절히 수정한다.
반응형
Posted by [PineTree]
ORACLE/TroubleShooting2010. 5. 26. 17:47
반응형

# sqlplus /nolog

# connect / as sysdba

SQL> STARTUP UPGRADE

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql

SQL> SHUTDOWN

SQL> STARTUP


반응형
Posted by [PineTree]