반응형

테스트용 Oracle10g 운용서버의 Enterprise Manager에 문제가 생긴건 거진 두달전 이야기이다. 그동안 줄곧 복구해야겠다고 마음먹었으나 기타 업무가 산적해있던 관계로 줄곧 미루어오다가 드디어 전번주부터 수복작업에 착수했다.

일단 증상으로는 Enterprise Manager에 접속이 되지않고 기동명령을 내리면 기동되었다는 메세지가 나오지만 스테이터스를 확인하면 여전히 not running 상태로 표시된다.

일주일동안 줄곧 OiSC에 문의하고 적용하며 테스트 한 결과 오늘에야 간신히 복구가 가능했다.

결국 내린 해결책은 문제점을 찾아내서 고치는게 아니라 기존의 Enterprise Manager 의 설정 및 Repository, 그리고 서비스 구성파일을 깔끔하게 지워버리고 나서 구성 요소를 새로 인스톨하는 방법이었다. (엘레강스한 방법을 원했건만 결국 무식하게 힘으로 밀어붙이는 방법밖에 알 수 없었다. ㅠㅠ)
이 방법은 Enterprise Manager에 관계된 자료만 손대므로 DB의 데이터는 당연히 안전하다.

복구과정 및 결과를 기록해둔다.
(단 이 과정은 RAC환경에서 ASM을 적용한 서버의 경우이다. 그렇지 않은 경우는 적절히 고쳐야 함.)

Oracle10g Enterprise Manager 복구(재구성) 순서

1) Management Repository 를 삭제한다.

% cd $ORACLE_HOME/sysman/admin/emdrep/bin
% ./RepManager < 호스트 이름 > < 리스너 포트 번호 > < SID > -sys_password < SYS 유저 패스워드 > -action drop

2) DBA권한을 가진 유저로 SQL*Plus 에 접속해서 다음의 명령을 실행한다.

drop user sysman cascade;
drop user mgmt_view cascade;
drop role mgmt_user;
drop public synonym mgmt_target_blackouts;
drop public synonym setemviewusercontext;

3) Enterprise Manager 서비스 구성파일을 삭제한다.

% emca -c -x < DB_NAME > 을 실행.

※ < DB_NAME > 은 초기화 파라메터 db_name 에서 지정하는 값으로 < SID > 가 아닌점에 주의할것.
※ ORACLE_HOME, ORACLE_SID 가 미리 설정되어 있는 환경에서 해야할 필요가 있음. (그냥 오라클 유저로 하는게 제일 속편하다.)

4) Enterprise Manager 서비스 구성파일을 새롭게 설치하기위해 다음 명령을 실행한다.

% emca -a -c

※ -a : ASM 환경에서 설정하는 옵션.
※ -c : Real Application Cluster 환경에서 설정하는 옵션.

5) 4)를 실행하면 다음의 입력을 요구받는다.

리스너의 포트번호
클러스터 이름(모를경우 ORACLE_HOME/install/cluster.ini 에서 cluster_name 으로 지정된 값 확인)
데이터베이스 이름 (초기화 파라메터 dbname 에 지정된 값)
서비스 이름(데이터베이스의 service_name. lsnrctl status < 리스너 이름 > 등으로 확인가능 )
통지용 메일주소:(입력안해도 무관, 걍 엔터)
통지용 메일게이트웨이:(역시 입력안해도 무관, 걍 엔터)
ASM ORACLE_HOME [ ... ] (디폴트설정이면 그냥 엔터)
ASM포트 [ ... ] (역시 디폴트설정이면 그냥 엔터)
ASM유저 롤 [ SYSDBA ] (역시 디폴트설정이면 그냥 엔터)
ASM유저 이름 [ SYS ] (역시 디폴트설정이면 그냥 엔터)
ASM유저패스워드
DBSNMP유저 패스워드
SYSMAN유저 패스워드
SYS유저 패스워드

6) 이상으로 작업종료. Enterprise Manager 가 정상기동 되었는지 확인해본다.

출처 : 오라클 KROWN

이상.
반응형

+ Recent posts