DB Downgrade 11.2.0.4 -> 10.2.0.5
오라클 데이터베이스를 다운그레이드 할 경우 만약 10.1.0.5에서 11.2로 업그레이드를 했다면 이후에 10.2로 다운그레이드 할 수 없고 오직 10.1.0.5로만 다운그레이드 할 수 있다
다운그레이드를 할 때 생각해야 하는 것은 호환성(compatible)의 문제다
Compatible 파라미터라는 것이 있는데 오라클 데이터베이스를 만약 10g로 업그레이드 한 후에 오라클 데이터베이스 10g에서 동작할 수 있는 조건을 만족했다면 compatible 파라미터를 10.0으로 설정할 수 있는데 단 한번 compatible 파라미터를 10.0으로 설정했다면 그 값을 이전으로 되돌릴 수 없다 즉 이 점이 이전 오라클 버전(9i)과의 차이점이다
이전 릴리즈(ex> Oracle 8, Oracle8i or Oracle 9iR1)에서 Oracle Database 10g로 업그레이드 하는 사용자는 Oracle 9iR2를 먼저 설치하지 않으면 Oracle9iR2로 다운그레이드 할 수 없다 10g로 업그레이드 하면 데이터베이스는 기본적으로 Oracle9iR2 파일 형식 호환 기능을 유지하므로 Oracle Database 10g가 기록하는 디스크상 구조는 Oracle9iR2 구조와 호환되어 Oracle9iR2로 다운그레이드 할 수 있게 된다 만약 위에서도 언급했지만 COMPATIBLE=10.x를 사용하여 파일 형식 호환 기능을 명시적으로 10로 설정한 후에는 다운그레이드가 불가하다
Oracle compatible parameter는 오라클 데이터베이스가 운영되는 mode를 결정하게 되는데 예를 들어 9.2.0.4를 사용하는데 만약 9i의 기능을 쓰지 않고 8i의 기능을 사용하고자 한다면 compatible에 8.1.6.0.0 이렇게 주면 이전의 version 기능대로 수행한다 일반적으로는 S/W version과 동일하게 지정하게 되고 특히 upgrade 후에 과거의 version기능대로 수행 시 사용하지만 현업에서는 거의 변경하지 않는 parameter다
10g부터는 COMPATIBLE initparameter가 irreversible(역행 불가능)하다 즉 COMPATIBLE는 현 값보다 적게 거꾸로 가는 것이 불가능하다는 것이다
COMPATIBLE=9.2.0 -> COMPATIBLE=10.0.0(OK)
COMPATIBLE=10.0.0 -> COMPATIBLE=9.2.0(startup시 error)
이전 버전 사용 시점으로 point time recovery하는 것 이외에는 역행이 불가능하므로 10g부터는
Alter database reset compatibility 명령도 잘 쓰이지 않는다
Compatible을 확인해보면 여전히 10.2.0.1인걸 알 수 있다
SQL> show parameter compatible
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 10.2.0.1.0 |
Compatbile을 변경 및 DB 재시작
SQL> alter system set compatible = '11.2.0.4.0' scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed. Database dismounted. ORACLE instance shut down. |
SQL> startup
ORACLE instance started. Total System Global Area 1219260416 bytes Fixed Size 2252744 bytes Variable Size 385876024 bytes Database Buffers 822083584 bytes Redo Buffers 9048064 bytes Database mounted. Database opened. |
SQL> show parameter compatible
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 11.2.0.4.0
|
버전이 변경된걸 알 수 있다 다만 이렇게 compatible을 업그레이드 하여 11g의 기능을 사용할 경우 downgrade시 error가 발생한다
Compatible 파라미터를 변경하지 않고 downgrade 실행
SQL> startup downgrade
ORACLE instance started.
Total System Global Area 1219260416 bytes Fixed Size 2252744 bytes Variable Size 385876024 bytes Database Buffers 822083584 bytes Redo Buffers 9048064 bytes Database mounted. Database opened. |
EM관련 최고의 권한을 가진 sysman계정을 downgrade 스크립트를 실행하기 전 drop
SQL> DROP USER sysman CASCADE;
User dropped.
스크립트 실행 전 log파일 설정
SQL> SPOOL downgrade.log
스크립트 실행
SQL> @?/rdbms/admin/catdwgrd.sql
~중략~ TIMESTAMP ----------------------------------------------------------- COMP_TIMESTAMP DWGRD_END 2015-11-18 00:47:51 2457345 02871
1 row selected.
SQL> SQL> Rem *********************************************************************** SQL> Rem END catdwgrd.sql SQL> Rem *********************************************************************** SQL> |
Log 해제
SQL> SPOOL off
DB shutdown
SQL> shutdown immediate;
Database closed. Database dismounted. ORACLE instance shut down. |
10g 관련 실행을 위한 bash_profile 재설정 및 적용
[oracle@lnx04 ~]$ vi .bash_profile
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/dbhome_1
#export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
[oracle@lnx04 ~]$ . .bash_profile
10g DB에 접속 후 startup upgrade 실행
SQL> startup upgrade;
ORACLE instance started.
Total System Global Area 1224736768 bytes Fixed Size 2095896 bytes Variable Size 318768360 bytes Database Buffers 889192448 bytes Redo Buffers 14680064 bytes Database mounted. Database opened. |
스크립트 실행 전 log파일 설정
SQL> SPOOL reload.log
스크립트 실행
SQL> @?/rdbms/admin/catrelod.sql
~중략~ COMP_NAME STATUS ----------------------------------- -------------------------------------------- VERSION ---------------------------------------- Oracle Database Packages and Types VALID 10.2.0.5.0
Oracle Database Catalog Views VALID 10.2.0.5.0
JServer JAVA Virtual Machine VALID 10.2.0.5.0
Oracle XDK VALID 10.2.0.5.0
Oracle Database Java Packages VALID 10.2.0.5.0
Oracle Text VALID 10.2.0.5.0
Oracle XML Database VALID 10.2.0.5.0
Oracle Workspace Manager VALID 10.2.0.5.0
Oracle Data Mining VALID 10.2.0.5.0
OLAP Analytic Workspace VALID 10.2.0.5.0
OLAP Catalog VALID 10.2.0.5.0
Oracle OLAP API VALID 10.2.0.5.0
Oracle interMedia VALID 10.2.0.5.0
Spatial INVALID 10.2.0.5.0
Oracle Expression Filter INVALID 10.2.0.5.0
Oracle Rule Manager INVALID 10.2.0.5.0
16 rows selected. |
실행 후 compatible 확인 ( 초기 버전 10.2.0.1 설치 후 올린적이 없기 때문에 그대로다 )
SQL> show parameter compatible
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 10.2.0.1.0 |
DB shutdown
SQL> shutdown immediate
Database closed. Database dismounted. ORACLE instance shut down. |
다시 DB open
SQL> startup
ORACLE instance started.
Total System Global Area 1224736768 bytes Fixed Size 2095896 bytes Variable Size 369100008 bytes Database Buffers 838860800 bytes Redo Buffers 14680064 bytes Database mounted. Database opened. |
모든 PL/SQL modules의 INVALID state에 대한 recompiles을 위한 스크립트 실행
SQL> @?/rdbms/admin/utlrp.sql
~중략~ ERRORS DURING RECOMPILATION --------------------------- 115 1 row selected. PL/SQL procedure successfully completed. |
'스터디북' 카테고리의 다른 글
<11/20> Blind Love (0) | 2015.11.20 |
---|---|
<11/19> 서른즈음에 (0) | 2015.11.19 |
<11/18> Luv (0) | 2015.11.18 |
<11/17> Remember (0) | 2015.11.17 |
<11/16> Love Is Over (0) | 2015.11.16 |