오라클 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;
2 substr(comp_name,1,40) comp_name FROM dba_registry ORDER BY 1;
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
AMD INVALID 9.2.0.1.0
OLAP Catalog
OLAP Analytic Workspace
Oracle9i Catalog Views
COMP_ID STATUS VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
CATJAVA VALID 9.2.0.1.0
Oracle9i Java Packages
Oracle9i Packages and Types
Oracle Text
COMP_ID STATUS VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
JAVAVM VALID 9.2.0.1.0
JServer JAVA Virtual Machine
Oracle Data Mining
Oracle interMedia
COMP_ID STATUS VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
OWM VALID 9.2.0.1.0
Oracle Workspace Manager
Spatial
Oracle Ultra Search
COMP_ID STATUS VERSION
------------------------ ----------- --------------------
COMP_NAME
--------------------------------------------------------------------------------
XDB VALID 9.2.0.1.0
Oracle XML Database
Oracle XDK for Java
Oracle OLAP API
15 rows selected.
SQL> SELECT owner, count(*), object_type FROM dba_objects WHERE status = 'INVALID'
GROUP BY owner, object_type;
G 2 ROUP BY owner, 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
------------------------------ ---------- ------------------
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
------------------------------ ---------- ------------------
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
------------------------------ ---------- ------------------
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
------------------------------ ---------- ------------------
OLAPSYS 123 VIEW
OLAPSYS 32 PACKAGE
OLAPSYS 31 TRIGGER
OLAPSYS 33 PACKAGE BODY
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
ORACLE instance started.
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 |