오라클 DBUA를 이용한 DBMS Upgrade에 대해 알아보겠습니다.
진행 프로세스는 아래와 같습니다.

기존 오라클 데이터베이스
 |- Change $ORACLE_HOME
 |- Install 10g Software
 |- Startup old Database
 |- Start DBUA
 |- Apply New Config
10g 오라클 데이터베이스 업그레이드 완료.

업그레이드 할 9.2.0 DB를 정지 한 후 .profile의 $ORACLE_HOME (#cd ~)을 새로운 홈 디렉토리로 변경.

#export ORACLE_HOME=/ora9/app/oracle/product/920
export ORACLE_HOME=/ora9/app/oracle/product/102
(예: 새로이 설치 할 10.2.0 DB의 홈 디렉토리로 변경 후 기존 디렉토리는 주석 처리)
진행 과정 중 Display 설정 오류가 뜬다면 xhost + hostname 명령어로 재설정,
noexec_user_stack 오류가 뜬다면 /etc/system 파일에 set noexec_user_stack=1 라인 추가 후 저장.

Oracle 10g 설치를 마친 후  기존 databas(9.2.0)에 접속하여 DB를 오픈 시킨 후 DBUA 작업을 진행 한다.
설치 완료 직후 DB 접속을 시도하면 접속할 수 없을 것이다. 홈 디렉토리가 새롭게 설치 될 디렉토리로
설정 되어 있기 때문 .profile 에서 홈 디렉토리를 기존 9.2.0으로 설정, DB Open 후 다시 디렉토리 변경 한다.
.profile의 설정을 반영하기 위해 Oracle user 계정을 재접속해야 한다.

ora9/app/oracle/product/102/bin 디렉토리에서 DBUA를 실행.
DBUA를 통해 업그레이드 될 Database 버전 및 구성 정보를 불러 온다.
실제 업그레이드 될 기존 DB를 선택 한 후 계속 진행.

진행 중 아래와 같은 오류 메세지와 함께 계속 진행 할 수 없었다.

While using the Database Upgrade Assistant (DBUA) to upgrade from 9.2.0.x or 10.1.0.x to 10.2.0.x, DBUA fails with the error: "The upgrade of Orcalenull release database to Oracle Database 10g release 10.2.0.x is not supported by this Assistant."

단순히 버전간의 패치 불가로 생각했으나 Oracle meta link 검색 결과
This issue can be caused by invalid components or invalid objects in the source database 임을 알게 됨.

해결 방법으로 아래와 같이 제시 되어 있음.

To implement the solution, please execute the following steps :

1. Check whether all the components and objects in the source database are valid :

SQL> SELECT substr(comp_id,1,12) comp_id, status, substr(version,1,10) version,
substr(comp_name,1,40) comp_name FROM dba_registry ORDER BY 1;

SQL> SELECT substr(comp_id,1,12) comp_id, status, substr(version,1,10) version,
  2  substr(comp_name,1,40) comp_name FROM dba_registry ORDER BY 1;
COMP_ID                  STATUS      VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
AMD                      INVALID     9.2.0.1.0
OLAP Catalog
APS                      LOADED      9.2.0.1.0
OLAP Analytic Workspace
CATALOG                  LOADING     9.2.0.1.0
Oracle9i Catalog Views

COMP_ID                  STATUS      VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
CATJAVA                  VALID       9.2.0.1.0
Oracle9i Java Packages
CATPROC                  VALID       9.2.0.1.0
Oracle9i Packages and Types
CONTEXT                  VALID       9.2.0.1.0
Oracle Text

COMP_ID                  STATUS      VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
JAVAVM                   VALID       9.2.0.1.0
JServer JAVA Virtual Machine
ODM                      LOADED      9.2.0.1.0
Oracle Data Mining
ORDIM                    LOADED      9.2.0.1.0
Oracle interMedia

COMP_ID                  STATUS      VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
OWM                      VALID       9.2.0.1.0
Oracle Workspace Manager
SDO                      LOADED      9.2.0.1.0
Spatial
WK                       VALID       9.2.0.1.0
Oracle Ultra Search

COMP_ID                  STATUS      VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
XDB                      VALID       9.2.0.1.0
Oracle XML Database
XML                      VALID       9.2.0.2.0
Oracle XDK for Java
XOQ                      LOADED      9.2.0.1.0
Oracle OLAP API

15 rows selected.


SQL> SELECT owner, count(*), object_type FROM dba_objects WHERE status = 'INVALID'
GROUP BY owner, object_type;

SQL> SELECT owner, count(*), object_type FROM dba_objects WHERE status = 'INVALID'
G  2  ROUP BY owner, object_type;
OWNER                            COUNT(*) OBJECT_TYPE
------------------------------ ---------- ------------------
HR                                      2 TRIGGER
HR                                      2 PROCEDURE
OE                                     27 TYPE
OE                                      5 VIEW
OE                                      3 TRIGGER
OE                                      3 TYPE BODY
PM                                      3 TYPE
ODM                                    42 TYPE
ODM                                    15 PACKAGE
ODM                                     1 TRIGGER
ODM                                     2 PROCEDURE
OWNER                            COUNT(*) OBJECT_TYPE
------------------------------ ---------- ------------------
ODM                                    12 PACKAGE BODY
SYS                                    83 TYPE
SYS                                     3 VIEW
SYS                                    15 PACKAGE
SYS                                     1 FUNCTION
SYS                                    10 PACKAGE BODY
XDB                                    65 TYPE
XDB                                     2 VIEW
XDB                                    10 PACKAGE
XDB                                     8 TRIGGER
XDB                                     2 FUNCTION
OWNER                            COUNT(*) OBJECT_TYPE
------------------------------ ---------- ------------------
XDB                                     6 OPERATOR
XDB                                     2 INDEXTYPE
XDB                                     2 PROCEDURE
XDB                                     2 TYPE BODY
XDB                                     5 XML SCHEMA
XDB                                    11 PACKAGE BODY
MDSYS                                   9 TYPE
MDSYS                                  12 VIEW
MDSYS                                   6 TRIGGER
MDSYS                                   1 TYPE BODY
MDSYS                                   3 PACKAGE BODY
OWNER                            COUNT(*) OBJECT_TYPE
------------------------------ ---------- ------------------
WKSYS                                  20 TYPE
WKSYS                                  27 VIEW
WKSYS                                  18 PACKAGE
WKSYS                                  23 TRIGGER
WKSYS                                   3 FUNCTION
WKSYS                                   3 PROCEDURE
WKSYS                                  16 PACKAGE BODY
QS_ADM                                  5 TYPE
QS_ADM                                  1 PACKAGE
QS_ADM                                  1 PACKAGE BODY
OLAPSYS                                 2 TYPE
OWNER                            COUNT(*) OBJECT_TYPE
------------------------------ ---------- ------------------
OLAPSYS                               123 VIEW
OLAPSYS                                32 PACKAGE
OLAPSYS                                31 TRIGGER
OLAPSYS                                33 PACKAGE BODY
48 rows selected.


2. If any components or objects are invalid, re-run catpatch.sql and utlrp.sql :

SQL> startup migrate
SQL> spool patch.log
SQL> @?/rdbms/admin/catpatch.sql
SQL> spool off
SQL> shutdown immediate
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql

SQL> startup migrate
ORACLE instance started.
Total System Global Area  404194512 bytes
Fixed Size                   730320 bytes
Variable Size             369098752 bytes
Database Buffers           33554432 bytes
Redo Buffers                 811008 bytes
Database mounted.
Database opened.
SQL> spool patch.log
SQL> @?/rdbms/admin/catpatch.sql
Comment created.
Comment created.
Comment created.
Comment created.
         ......
SQL> spool off
SQL> shutdown immediate
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql



3. After running catpatch.sql an utlrp.sql, verify again that the source database has all components valid and no invalid objects :

SQL> SELECT substr(comp_id,1,12) comp_id, status, substr(version,1,10) version,
substr (comp_name,1,40) comp_name FROM dba_registry ORDER BY 1;

SQL> SELECT owner, count(*), object_type FROM dba_objects WHERE status = 'INVALID'
GROUP BY owner, object_type;

4. If all the components and objects are now valid, try running DBUA again.

스크립트 실행 후에도 AMD invalid 뜸,
결국 9.2.0.7로 패치 후 다시 10.2.0.1 설치 - DBUA 실행 -

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

Tablespace 공간이 부족할 때  (0) 2008.06.16
Oracle 에러 조치 사항  (0) 2008.06.16
oracle migration export and import  (0) 2008.04.28
오라클 데이터베이스 백업/복구  (0) 2008.04.25
uDPM을 이용한 튜닝  (0) 2008.04.23

+ Recent posts