Oracle Grid Infrastructure 홈 패치 및 전환

Oracle GoldenGate Maximum Availability Hub 스택의 기본 및 대기 클러스터에 대해 다음 단계를 완료합니다.

switchGridHome 명령은 동일한 릴리스의 서로 다른 RU 간 전환에만 사용할 수 있습니다.

  1. My Oracle Support에서 적용할 Oracle AI Database RU(릴리스 업데이트)를 node1의 /tmp 디렉토리로 다운로드합니다.

  2. node1 및 node2의 root 사용자로 새 Oracle Grid Infrastructure 홈 디렉토리를 만들고 iptables를 사용 안함으로 설정합니다. <version-number>를 적절한 RU 버전 번호로 바꿔야 합니다.

    $ mkdir -p /u01/app/<version-number>/grid
    $ chown grid:oinstall /u01/app/<version-number>/grid
    $ systemctl stop iptables
    $ systemctl disable iptables

    주: 새 Oracle Grid Infrastructure 홈 경로는 현재 Oracle Grid Infrastructure 홈 경로와 달라야 합니다.

  3. 클러스터의 node1에 있는 grid 사용자로 Oracle Grid Infrastructure 이미지 파일을 다운로드하고 파일을 새 Oracle Grid Infrastructure 홈 디렉토리로 추출합니다. 기존 Oracle Grid Infrastructure 홈 경로의 Grid 설정 응답 파일을 새 홈 경로로 복사합니다. <version-number>를 적절한 RU 버전 번호로 바꿔야 합니다.

    $ cd /u01/app/<version-number>/grid
    $ unzip -q download_location/grid.zip
    $ cp Old_GI_Home/gridsetup.rsp  .
  4. -switchGridHome 플래그를 사용하여 node1에서 Oracle Grid Infrastructure 설치 프로그램을 시작하여 설치 후 패치된 Oracle Grid Infrastructure 홈으로 전환하고, 설치 중 선택적 -applyRU 플래그를 사용하여 RU(릴리스 업데이트)를 적용합니다. <version-number>를 적절한 RU 버전 번호로 바꿔야 합니다.

    $ /u01/app/<version-number>/grid/gridSetup.sh -responseFile /u01/app/<version-number>/grid/gridsetup.rsp -switchGridHome [-applyRU patch_directory_location]
    [-applyOneOffs comma_seperated_list_of_patch_directory_locations]
  5. root 사용자로 클러스터의 node1에서 다음 스크립트를 실행합니다.

    $ /u01/app/<version-number>/grid/root.sh

    그런 다음 node2에서 스크립트를 실행합니다.

  6. 패치가 완료되었는지 확인합니다.

    $ crsctl query crs activeversion -f
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL].
    The cluster active patch level is [patch_level].
  7. 새 Grid 홈에서 모든 CRS 프로세스가 실행 중인지 확인합니다.

    $ ps -ef | grep d\.bin

    응답은 다음을 반환해야 합니다.

    grid      6322     1  0 19:16 ?        00:00:00 /u01/app/<version-number>/grid/bin/acfsrepl_dupd.bin /mnt/acfs_gg
    root     28946     1  0 19:12 ?        00:00:05 /u01/app/<version-number>/grid/bin/ohasd.bin reboot _ORA_BLOCKING_STACK_LOCALE=AMERICAN_AMERICA.AL32UTF8
    grid     29169     1  0 19:12 ?        00:00:00 /u01/app/<version-number>/grid/bin/mdnsd.bin
    grid     29170     1  0 19:12 ?        00:00:02 /u01/app/<version-number>/grid/bin/evmd.bin
    grid     29209     1  0 19:12 ?        00:00:00 /u01/app/<version-number>/grid/bin/gpnpd.bin
    grid     29274     1  0 19:12 ?        00:00:02 /u01/app/<version-number>/grid/bin/gipcd.bin
    root     29310     1  0 19:12 ?        00:00:05 /u01/app/<version-number>/grid/bin/osysmond.bin
    grid     29397     1  0 19:12 ?        00:00:05 /u01/app/<version-number>/grid/bin/ocssd.bin  -S 1
    root     29595     1  0 19:12 ?        00:00:02 /u01/app/<version-number>/grid/bin/octssd.bin reboot
    root     29629     1  1 19:12 ?        00:00:11 /u01/app/<version-number>/grid/bin/crsd.bin reboot
  8. 클러스터의 두 노드에서 iptables를 사용으로 설정하고 다시 시작합니다.

    $ systemctl enable iptables
    $ systemctl restart iptables
  9. 패치 적용이 실패하면 다음 단계를 수행하여 패치를 롤백합니다.

    1. root 사용자로 프리패치 스크립트를 실행합니다.

      # /u01/app/<version-number>/grid/crs/install/rootcrs.sh -prepatch -dstcrshome Old_GI_Home -rollback
    2. root 유저로 패치 후 스크립트를 실행합니다.

      # /u01/app/<version-number>/grid/crs/install/rootcrs.sh -postpatch -dstcrshome Old_GI_Home -rollback
  10. 모든 노드의 새 Grid 홈으로 성공적으로 전환하고 이전 Grid 홈으로 다시 전환하려는 경우 다음 단계를 수행합니다.

    1. root 사용자로 이전 Grid 홈의 잠금을 해제합니다.

      # Old_GI_Home/crs/install/rootcrs.sh -unlock -crshome Old_GI_Home
    2. grid 사용자로 이전 Grid 홈에서 switchGridHome를 실행합니다.

      $ Old_GI_Home/gridSetup.sh -silent -switchGridHome [-zeroDowntimeGIPatching] [-skipDriverUpdate]