Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle AD 온라인 패치 오류 및 수정

원래 Tricore에서 발행:2017년 8월 14일

이 블로그에서는 Oracle® AD Online Patching(adop) 유틸리티에 대한 다음과 같은 일반적인 문제와 솔루션에 대해 설명합니다.

  • 데이터 사전 손상 오류
  • 준비 실패
  • 양식 개체 생성 실패
  • 단락 끊기 채택
  • 패치 중단

데이터 사전 손상 오류

adop 준비 단계가 실패하면 데이터 사전 손상 오류가 발생할 수 있습니다.

오류

다음 오류는 환경에 따라 다를 수 있습니다.

[EVENT]     Verifying data dictionary.
[UNEXPECTED]Data dictionary corrupted:
[UNEXPECTED]Data dictionary corruption - missing parent
5608975 ORA$BASE        IMAT            V_WORKFLOWWORKITEMII           VIEW
5608973 ORA$BASE        IMAT            V_WFSTAGETIME                  VIEW
5608973 ORA$BASE        IMAT            V_WFSTAGETIME                  VIEW
[UNEXPECTED]Data dictionary corruption detected. Provide details to
[UNEXPECTED]Oracle Support and ask for a bug to be opened against the
[UNEXPECTED]Online Patching component of Oracle Application Install.

/apps1/SID/fs_ne/EBSapps/log/adop/18/adop_xxxxx_xxxxx.log:

원인

이 데이터 사전 문제는 개발자가 온라인 패치 표준을 위반하는 사용자 지정을 적절하게 홍보할 때 발생합니다.

솔루션

데이터 사전 손상(부모 누락)을 수정하려면 다음 단계를 실행하십시오.

  1. $AD_TOP/sql/ADZDDBCC.sql 실행 apps user로 스크립트 논리적 데이터 사전 손상 여부를 확인합니다. 스풀 로그의 손상 여부를 확인하십시오.

  2. $AD_TOP/patch/115/sql/adzddmpfix.sql 스크립트를 실행합니다. sys user로 부패를 수정합니다. 다음 샘플에서는 12개의 손상 개체가 수정되었습니다.

     SQL> @adzddmpfix.sql
    
     "---- Fixing Data Dictionary Corruptions (missing parent) ----"
     12 rows deleted.
     Commit complete.
     System altered.
     "---- Compiling invalids ----"
     PL/SQL procedure successfully completed.
     Commit complete.
    
  3. $AD_TOP/sql/ADZDDBCC.sql 실행 apps user로 다시 스크립트 논리적 데이터 사전 손상이 여전히 존재하는지 확인하려면.a. 손상이 발견되지 않으면 업그레이드를 진행하거나 patching-cycle.b를 채택하십시오. 손상이 여전히 존재하는 경우 Oracle 지원에 문의하고 버그를 기록하십시오.

  4. 문제가 해결되면 adop 준비 단계를 다시 시도하십시오.

adop 준비 실패

경우에 따라 adop 준비 단계가 실패합니다. 이 섹션은 하나의 가능한 준비 오류 및 해결 방법을 보여줍니다.

오류

다음 adop 준비 오류는 Oracle 버그입니다.

Lines #(47-50):
runMSSrvPortsVal : oacore_server1:7252
ERROR: Run fs Context variable s_oacore_server_ports value cannot be NULL for oacore_server2
ERROR: Derived Patch managed server oacore_server2 port : NULL
ERROR: Failed to clone Run Context file to refresh Patch context file

솔루션

이 오류를 해결하려면 다음 단계를 실행하십시오.

  1. 다음 코드 샘플의 샘플 대상 서버 및 SID를 오류에 보고된 포트 및 경로로 변경하고 코드를 실행하여 이 문제를 수정하십시오.

     perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \
     ebs-delete-managedserver \
     -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml -managedsrvname=oacore_server2 \
     -servicetype=oacore -logfile=$APPLRGF/TXK/delMS_oacore_server2.log
    
     perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml \
     -configoption=removeMS -oacore=server.cm.charter.com:7252
    
  2. 수정 사항이 적용된 후 adop prepare를 다시 시도하십시오.

양식 개체 생성 실패

때때로 adop phase=apply patches=123456으로 패치를 적용할 때 , 양식 개체가 성공적으로 생성되지 않을 수 있으며, 이로 인해 Patch continue prompt Y/N을 표시하지 않고 adop 세션이 종료됩니다. .

오류

예를 들어 다음 Oracle Forms 개체가 성공적으로 생성되지 않았습니다.

inv     forms/US        INVMWBIV.fmx

솔루션

다음 명령을 사용하여 패치 디렉토리에서 실패한 패치 세션을 다시 시작하십시오.

cd /apps1/SID/fs_ne/EBSapps/patch
adop phase=apply patches=20609071 restart=yes flags=autoskip

컷오버 중단 채택

adop cutover가 중단되거나 서버가 adop cutover 단계 중 충돌 또는 재부팅 문제가 있는 경우 다음 단계를 수행하여 문제를 해결한 후 패치 프로세스를 진행합니다.

솔루션

  1. PATCH 파일 시스템에서 실행 중인 서비스나 프로세스가 없는지 확인하십시오.

  2. Weblogic Admin Server 및 Node Manager가 실행 파일 시스템에서 실행 중인지 확인하십시오. 다음 명령을 실행하여 상태를 확인하십시오.

     $ adadminsrvctl.sh status
     $ adnodemgrctl.sh status
    
  3. 다음 명령을 실행하십시오.

     $ adop phase=abort
     $ adop phase=cleanup cleanup_mode=full
     $ adop phase=fs_clone force=yes
    
  4. 빈 adop 주기를 실행하여 다음 명령을 실행하여 adop 컷오버에 문제가 없는지 확인합니다.

     $adop phase=prepare, finalize, cutover, cleanup cleanup_mode=full
    
  5. 새로운 채택 준비를 시작하고 패치를 적용하십시오.

  6. 적용 단계 후 마무리, 컷오버 및 정리를 포함한 나머지 채택 단계를 완료합니다.

패치 중단

패치 주기가 실패하고 문제를 신속하게 해결할 수 없는 경우 패치 주기를 중단하고 패치 에디션을 삭제하는 일반 런타임 작업으로 돌아갈 수 있습니다.

다음 명령을 실행하여 패치 주기를 중단할 수 있습니다(패치 적용 없이):

$ adop phase=abort

중요: 이 명령은 전환 단계가 성공적으로 완료되기 전에만 사용할 수 있습니다. 컷오버 후 시스템은 새 버전에서 실행되고 abort 해당 패치 주기에는 더 이상 명령을 사용할 수 없습니다.

패치 주기를 중단하면 패치 에디션이 삭제되지만 새 패치 주기를 시작하기 전에 cleanup 및 fs_clone 단계를 실행해야 합니다. 정리는 전체 정리여야 합니다. 다음 예는 이러한 일련의 이벤트를 보여줍니다.

$ adop phase=prepare
$ adop phase=apply patches=123456
[Patch application encounters problems and you want to abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone

선택적으로 다음 명령과 같이 중단 및 정리 명령을 결합할 수 있습니다.

$ adop phase=abort,cleanup cleanup_mode=full

참고: 핫패치 모드(adop phase=apply apply_mode=hot patch)에서 적용된 패치의 적용을 중단할 수 없습니다. ).

결론

adop 유틸리티에 대한 이 알려진 문제 및 솔루션 모음은 이러한 문제 또는 유사한 문제가 있는 데이터베이스 관리자에게 도움이 될 수 있습니다.

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.