이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 4 다음 »


I. 개요

1. 사용 Software

제품명버전아키텍쳐배포 사이트
VirtualBox6.1.x호스트 환경에 따름https://www.virtualbox.org
Oracle Enterprise Linux7 (Update 5 이상 권장)x86 64bit

https://edelivery.oracle.com/linux

Oracle 11g RAC11.2.0.4Linux x86 64bithttps://edelivery.oracle.com (등록된 고객만 다운로드 가능)
Oracle 11g Grid Patch18370031Linux x86 64bithttps://support.oracle.com (Extended Support 고객만 다운로드 가능)
Oracle 11g Patch Set Update30501155 (202001)Linux x86 64bithttps://support.oracle.com (Extended Support 고객만 다운로드 가능)
Oracle 19c RAC19.3Linux x86 64bithttp://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
Oracle 19c Release Update30501910 (202001)Linux x86 64bithttps://support.oracle.com (등록된 고객만 다운로드 가능)
Opatch11.2 & 12.2Linux x86 64bithttps://support.oracle.com (등록된 고객만 다운로드 가능)
  • Linux 7에 Grid 설치를 위해서 18370031 패치는 필수 입니다. 패치를 적용하지 않고 root 스크립트를 수행할 경우 클러스터 구성에 실패합니다.
  • Grid를 11.2.0.4에서 19c로 업그레이드 하려면 28553832 (11.2.0.4.GIPSU:191015), 17617807 (11.2.0.4.GIPSU04), 21255373 (11.2.0.4.GIPSU:160419) 패치가 필요합니다.
  • PSU 패치 30501155 (11.2.0.4.GIPSU:200114)를 적용하면 3가지가 통합되어 패치가 됩니다.

2. 구성 계획

A) 서버

VMHost NameMemoryNet Adapter 1Net Adapter 2구성 방법비고
RAC1rac110GB브리지 어댑터호스트 전용 어댑터리눅스 설치dnsmasq를 사용하여 DNS 구성
RAC2rac210GB브리지 어댑터호스트 전용 어댑터RAC1 복제dnsmasq를 사용하여 DNS 구성

리눅스 기반의 2 node RAC로 구성합니다.

B) 스토리지

파일 이름용량타입용도비고
rac1.vdi100GBDynamic / NormalRAC1 노드 스토리지디스크 사용량을 최소화하기 위해 Dynamic으로 생성합니다.
rac2.vdi100GBDynamic / NormalRAC2 노드 스토리지vboxmanage clonemedium을 이용하여 rac1.vdi 파일을 복제합니다.
CRS1.vdi1GBFixed / ShareableOCR / Vote 저장 영역  공유(shareable) 디스크로 사용하기 위해서는 Fixed Size로 생성해야 합니다.  


   


  
CRS2.vdi1GBFixed / Shareable
CRS3.vdi1GBFixed / Shareable
DATA.vdi30GBFixed / ShareableDATA 영역
FRA.vdi20GBFixed / ShareableFast Recovery Area 
RAW.vdi20GBFixed / ShareableRaw Device 영역

Automatic Storage Management를 이용하여 Data 공간과 Fast Recovery Area를 구성합니다.

테스트를 위한 VM이므로 디스크 공간을 절약하기 위해 파일을 업로드 없이 VirtualBox의 게스트 확장 기능으로 VM에서 불러와 사용합니다.

C) 네트워크

VMPublic IPPrivate IPVirtual IPNetmaskGatewayDNS ServerSCAN IP
RAC110.0.1.10110.0.5.10110.0.1.201255.255.255.010.0.1.1127.0.0.1

10.0.1.191, 10.0.1.192, 10.0.1.193

RAC210.0.1.10210.0.5.10210.0.1.202255.255.255.010.0.1.1127.0.0.1

Netmask의 경우 Public과 Private 모두 24bit(255.255.255.0)을 사용합니다.

인터넷 공유기 또는 Gateway의 IP에 맞춰 Public IP와 Virtual IP를 설정하기 바랍니다.

별도의 DNS 서버 구성 없이 dnsmasq를 사용하여 RAC를 구축할 계획이므로 DNS는 Loopback IP로 지정합니다.

3. 호스트 환경

A) 시스템

12c부터는 64비트의 운영체제만을 지원하므로, 호스트 장비 또한 64비트 운영체제를 사용하여 구축해야 합니다.

메모리는 오라클의 권고에 따라 VM 노드당 8GB 이상이 필요하므로, 가능하면 20GB 이상의 메모리가 장착된 환경에서 작업하는 것을 권합니다.

(구축 테스트를 위해 임시적으로 설치하는 것이라면 경고 메시지를 무시하고 8GB 이하로 구성할 수도 있으나, 운영 환경에서는 권고하지 않습니다.)

B) 스토리지

디스크 I/O에 의한 지연을 최소화하기 위해 호스트의 OS가 설치되지 않은 별도의 내장 디스크를 사용하거나 SSD의 사용을 권합니다.

ESATA 또는 USB 3.0 이상의 빠른 속도를 보장하는 외장 디스크를 사용하는 것도 방법일 수 있습니다만 지속적인 연결이 보장되어야 합니다.

사실상 디스크의 속도에 따라 설치에 소요되는 시간이 크게 좌우되므로, 가급적이면 안정적이고 빠른 스토리지를 사용하기 바랍니다.

II. VM 구성

1. VM 생성

RAC 1번 노드 구성을 위한 VM을 생성합니다.

<새로 만들기> 버튼을 클릭합니다.

A) 가상 머신 만들기

OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택합니다.

머신 폴더는 VM 설정을 위한 파일이나, 가상 이미지를 저장할 디렉토리를 선택합니다. 가급적 성능이 좋은 디스크나 SSD에 저장할 것을 권합니다.

Oracle Database은 12c R1 버전부터 64bit만을 지원하고 있습니다.

Client 소프트웨어만 32bit 프로그램을 제공합니다.

기본 메모리는 "10240MB"로 지정합니다.

Grid를 설치하기 위한 최소 메모리는 8GB 이지만, 원활한 작업을 위해서는 가급적 10GB 이상을 할당하는 것이 좋습니다.

새로운 디스크를 생성해야 하므로 '지금 새 가상 하드 디스크 만들기'를 선택하고 <만들기>를 클릭합니다.

B) 가상 하드 디스크 만들기

가상 하드 디스크 파일의 종류는 'VDI(VirtualBox 디스크 이미지)'를 선택한 후 <다음>을 클릭합니다.

물리적 하드 드라이브 저장 방식은 '동적 할당'으로 하고 <다음>을 클릭합니다.

디스크 파일의 크기는 "100GB"로 한 후 <만들기>를 클릭하면 VM이 생성됩니다.

2. VM 설정 변경

생성된 가상 머신의 설정을 변경해야 하므로, 가상 머신을 선택하고 <설정>을 클릭합니다.

A) 시스템

부팅 순서에서 "플로피 디스크"를 해제하고, "광 디스크"가 우선권을 갖도록 합니다.

B) 디스플레이

VirtualBox에서 제공하는 Guest Additions 기능을 설치하는 과정에서 화면이 깨지는 경우가 있으므로, 잠시 그래피 컨트롤러를 "VBoxVGA"로 선택합니다.

설치가 정상으로 된 후에는 원래의 설정인 "VMSVGA"로 원복시켜주면 됩니다.

C) 저장소

설치할 리눅스 디스크 이미지를 마운트 하기 위해 저장소로 이동합니다.

'컨트롤러 : IDE'를 선택하고, 속성의 '광학 드라이브' 우측의 광 디스크 모양 아이콘을 클릭합니다.

리눅스 이미지가 있는 경로를 찾아가서 마운트하면, IDE 컨트롤러에 리눅스 설치 이미지가 마운트 됩니다.

D) 오디오

오디오는 사용하지 않을 것이므로 '오디오 사용하기'는 해제합니다.

E) 네트워크

1번 네트워크 카드를 설치될 환경에 맞게 적절한 장치에 연결합니다.

일반적으로 외부와 통신을 하기 위해서 '어댑터에 브리지'를 선택합니다.

RAC 노드간의 통신을 위해 2번 어댑터를 활성화해야 합니다.

어댑터 2번 항목에 가서 '네트워크 어댑터 사용하기'를 체크합니다.

그리고, RAC 노드 내부에서만 사용할 것이므로 '호스트 전용 어댑터'를 클릭합니다.

사전에 VirtualBox의 호스트 전용 네트워크가 생성되어 있어야 합니다.

F) 공유 폴더

VirtualBox 상에서 Guest Additions 을 설치하면, 공유 폴더 기능을 사용할 수 있습니다.

공유 폴더를 설정할 경우, 호스트 서버에 저장된 설치 파일을 업로드 없이 바로 사용할 수 있습니다.

오른쪽에 폴더 모양에 '+' 표시가 있는 아이콘을 클릭합니다.

공유할 폴더를 입력하기 위해 폴더 경로에 '기타'를 선택합니다

공유할 폴더를 선택하고, 폴더 이름을 "oracle"로 지정하고 '자동 마운트'를 선택한 후 <OK>를 클릭합니다

설정 변경이 모두 완료되었으므로 <OK>를 클릭합니다.

리눅스 설치를 위해 <시작> 버튼을 클릭하면, 마운트된 리눅스 이미지로 가상 시스템이 부팅되며 OS 설치가 시작 됩니다.

III. Oracle Linux 7 설치

1. 부팅

A) 미디어 검사 여부 선택

설치 미디어에 대한 테스트 없이 바로 설치를 진행하려면 'Install Oracle Linux 7.x'를 키보드로 선택하고 "엔터"를 입력합니다.

B) 언어 선택

실습의 편의를 위해 설치 언어는 '한국어'를 선택하고 <계속 진행>을 클릭합니다.

운영 환경에서는 이슈 발생시의 문제 해결이나 디버깅 등을 위해 영어로 설치하는 것을 권합니다.

2. 설치 요약

A) 소프트웨어 선택

설치 요약 화면입니다.

이 화면에서 각 항목별로 필요한 옵션을 수정한 후에 설치를 진행할 예정입니다.

먼저 '소프트웨어 선택' 항목을 클릭합니다.

서버에서 직접 GUI 모드로 설치하기 위해 '서버 - GUI 사용'을 선택하고, 우측의 '선택한 환경의 기능'에서 다음의 두 기능을 추가합니다.

  • 호환성 라이브러리
  • 개발용 도구

그리고 <완료>를 클릭합니다.

B) 설치 대상

다음으로 '설치 대상'을 수정합니다.

설치할 디스크를 체크하고 '파티션을 설정합니다'를 선택한 후에 <완료> 버튼을 클릭합니다.

C) 파티션 설정

'수동으로 파티션 설정' 화면으로 전환됩니다.

'새로운 Oracle Linux 7.x 설치' 항목 좌측 하단에 <+> 버튼을 클릭하여 마운트 지점을 생성합니다

마운트 지점을 "/boot"로 지정하고 "500MiB"를 할당한 후 <마운트 지점 추가>를 클릭합니다.

swap 영역도 <+> 버튼을 클릭하여 '새 마운트 지점 추가' 창을 연 후에 RAM 크기와 동일한 10GiB를 할당하고, <마운트 지점 추가> 버튼을 클릭합니다.

swap의 크기는 아래와 같이 크기를 할당할 수 있습니다.

물리 메모리(RAM) 크기swap 영역 크기
1GB~2GBRAM의 1.5배 크기
2GB~16GBRAM과 동일한 크기
16GB 이상16GB

동일한 방식으로 나머지 공간을 "/"(root) 영역에 할당 합니다.

용량 항목을 빈 칸으로 입력한 후 <마운트 지점 추가>를 클릭하면 나머지 전체 영역이 할당됩니다.

각각의 마운트 지점이 아래와 같은 크기로 할당됩니다.

할당 영역

크기

/boot200MB
swap10GB
/나머지 공간 할당

적용된 내용을 확인한 후에 <완료> 버튼을 클릭합니다.

변경 요약 화면이 나오면 <변경 사항 적용> 버튼을 클릭합니다.

D) KDUMP

실습을 위한 구축이므로 'KDUMP' 항목에서 kdump 기능을 비활성화하려 합니다.

'KDUMP' 항목으로 이동합니다.

'kdump 활성화'를 해제합니다.

운영 환경에서는 문제 해결 등의 이유로 활성화된 상태로 사용할 수 있으며, 운영 정책에 따라 지정해야 합니다.

필요한 옵션을 선택하였으면 <완료>를 클릭합니다

네트워크 및 호스트명

네트워크와 호스트명을 변경하기 위해 '네트워크 및 호스트명' 항목을 선택합니다.

네트워크와 호스트 이름을 설정해야 합니다.

좌측에서 Public 네트워크와 연결할 이더넷 인터페이스인 enp0s3을 선택하고 우측 하단의 <설정> 버튼을 클릭합니다.

VirtualBox가 아닌 VMware를 사용할 경우, 인터페이스 이름이 다를 수 있습니다.

(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Consistent_Network_Device_Naming.html)

네트워크 인터페이스명은 BIOS나 firmware를 기준으로 자동으로 생성됩니다.

RAC를 구성하는데 있어서, 모든 노드의 public 이더넷과 private 이더넷의 이름이 각 그룹내에서 동일해야 경고없이 설치나 패치를 진행할 수 있습니다.

일반 탭에서 '사용 가능하면 자동으로 이 네트워크에 연결'을 체크합니다.

IPv4 설정 탭으로 이동하여 방식에 '수동'을 선택합니다.

'Add' 버튼을 클릭하고 다음의 정보를 입력합니다.

항목입력값비고
주소10.0.1.1011번 노드 Public IP 주소
넷마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능
게이트웨이10.0.1.1Public 망의 게이트웨이
DNS 서버127.0.0.1dnsmasq를 사용할 경우 loopback IP 사용
검색 도메인localdomain로컬 도메인 정보 입력

DNS가 없는 환경이어서 dnsmasq를 사용할 것이므로 DNS 서버에 "127.0.0.1"을 입력하였으나, 운영 환경에서는 적절한 DNS 주소 입력이 필요합니다.

IPv6는 사용하지 않을 것이므로 방식에 '무시'를 선택하고, <저장>을 클릭합니다.

이더넷(enp0s3)에 입력한 Public 네트워크 정보가 적용된 것을 확인할 수 있습니다.

이번에는 좌측에서 Private 네트워크와 연결할 이더넷 인터페이스인 enp0s8을 선택하고 우측 하단의 <설정> 버튼을 클릭합니다.

일반 탭에서 '사용 가능하면 자동으로 이 네트워크에 연결'을 체크합니다.

IPv4 설정 탭으로 이동하여 방식에 '수동'을 선택합니다.

'Add' 버튼을 클릭하고 다음의 정보를 입력합니다.

항목입력값비고
주소10.0.5.1011번 노드 Private IP 주소
넷마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능

Private 망을 위한 설정으로 게이트웨이나 DNS값은 비워둡니다.

실습에서는 Private 연결에 별도의 장치를 구성하지는 않았지만, 운영 환경에서는 노드 간의 통신은 L2 이상의 장비를 통해 연결되어야 합니다. (오라클 권고)

IPv6는 사용하지 않을 것이므로 방식에 '무시'를 선택하고, <저장>을 클릭합니다.

이더넷(enp0s8)에 입력한 Private 네트워크 정보가 적용된 것을 확인할 수 있습니다.

좌측 하단에 서버에 사용될 호스트명을 입력하고 <적용>을 클릭합니다.

실습 환경에서는 1번 노드는 "rac1"을 사용할 것입니다.

네트워크 구성이 완료되었으므로 <완료> 버튼을 클릭합니다.

E) SECURITY POLICY

보안 관련 설정을 변경하기 위해 'SECURITY POLICY' 항목으로 이동합니다.

실습에서는 'SECURITY POLICY'의 모든 내용을 끄고 진행하겠습니다.

'Apply security policy'를 끄고 <완료>를 클릭합니다.

운영 환경에서는 보안 정책을 고려하여 설정을 변경할 것을 권고합니다.

설치를 위한 사전 준비가 모두 완료되었으므로 <설치 시작>을 클릭합니다.

3. 사용자 설정

A) ROOT 암호

설치가 진행되는 중간에 root 계정의 암호와 추가 사용자를 생성할 수 있습니다.

먼저 'ROOT 암호'를 선택합니다.

적당한 암호를 입력하고 <완료> 버튼을 클릭합니다.

취약한 암호를 사용할 경우에는 <완료> 버튼을 2번 클릭해야 합니다.

B) 사용자 생성

'사용자 생성'에서는 root와는 별개의 관리자 권한을 생성하겠습니다.

리눅스 7버전에서는 별도의 관리자 계정을 생성하여 사용하는 것을 권하고 있습니다.

추가할 관리자 계정의 정보를 입력하고 <완료> 버튼을 클릭합니다.

OS 설치가 진행되는 동안 기다립니다.

4. 재부팅

설치가 완료되면 <재부팅> 버튼을 클릭합니다.

가상 머신이 재부팅됩니다.

A) LICENSE INFORMATION

재부팅 화면에서 'LICENSE INFORMATION'을 클릭하여 라이센스 동의를 진행합니다.

'약관에 동의합니다'를 체크하고 <완료>를 클릭합니다.

모든 구성이 완료되었으므로 본격적인 사용을 위해 <설정 완료>를 클릭합니다.

IV. 리눅스 환경 설정

1. GUI 접속 환경 설정

A) root 계정 접속

VirtualBox를 사용하는 실습 환경에서는 편의를 위해 Guest Addition을 설치하는 것이 좋습니다.

VMware라면 VMware Tools를 설치할 수 있습니다.

물론 가상머신을 사용하지 않는 운영 환경에서는 이 방법을 사용할 수 없고, ftp나 sftp 등의 방식으로 파일을 서버에 업로드해야 합니다.

root 유저로 접속하기 위해서 초기 접속 화면에 '목록에 없습니까?'를 클릭합니다.

사용자 이름에 "root"를 입력하고 <다음>을 클릭합니다.

암호에 root 계정의 암호를 입력하고 <다음>을 클릭합니다.

처음 접속시 환영 메시지와 함께 초기 설정 화면이 나옵니다.

언어를 '한국어'로 선택한 상태에서 <다음>을 클릭합니다.

운영 환경에서는 영어(English)를 사용하는 것을 권합니다.

키보드 배치에 '한국어'가 선택된 상태에서 <다음>을 클릭합니다.

위치 정보 서비스를 '끔'으로 변경하고 <다음>을 클릭합니다.

온라인 계정 설정 화면에서 <건너뛰기>를 클릭합니다.

마지막으로 'Oracle Linux Server 시작'을 클릭하면, 초기 설정 창이 닫힙니다.

시작하기란 새로운 창이 열리면 창 우측 상단의 'x' 표시를 클릭하여 닫아 줍니다.

GUI 모드로 다른 계정에 처음 접속할 때도, 동일한 방식으로 접속을 진행하면 됩니다.

B) VirtualBox Guest Additions 설치

호스트 머신의 VirtualBox 메뉴에서 '장치' > '게스트 확장 CD 이미지 삽입'을 클릭하여, Guest Additions CD를 가상머신에 mount 시켜줍니다

설치 미디어가 인식되면 자동 시작 프로그램에 대한 안내 창이 뜹니다.

설치를 진행하기 위해 <실행>을 클릭합니다.

Guest Additions이 정상적으로 설치되었으면, 마운트 된 설치 이미지를 eject 해야 합니다.

바탕화면을 마우스 우측 버튼으로 클릭하면 드롭다운 메뉴가 펼쳐지며, '터미널 열기'를 클릭하면 됩니다.

터미널에서 eject 명령어로 이미지를 해제한 후, 가상머신의 디스플레이 설정을 변경하기 위해서 shutdown 명령어로 서버를 중지합니다.

가상머신의 설정 메뉴에서 디스플레이의 그래픽 컨트롤러를 'VMSVGA'로 원복한 후에 가상 머신을 다시 기동합니다.

자동 설치 스크립트가 실행되며, VM에 Guest Addition이 설치됩니다.

설치가 완료되면 "엔터"를 입력하여 실행 창을 닫아줍니다.

C) 화면 해상도 변경

가상 머신을 설치하게 되면 기본 화면 크기가 800*600으로 설정되어 있습니다.

OUI 로 설치를 진행하기 위해서는 화면의 해상도를 변경해야 합니다.

메뉴바에서 '프로그램' > '시스템 도구' > '설정'을 클릭합니다.

좌측의 항목 중에서 '장치'를 클릭합니다.

장치 목록에서 '디스플레이'를 선택한 후, '해상도' 부분을 클릭합니다.

해상도를 선택할 수 있는 창이 열리면 '1024x768' 이상의 화면 크기롤 선택합니다.

원하는 해상도를 선택하였으면 우측 상단의 <적용> 버튼을 클릭하여, 선택한 값으로 해상도가 변경되도록 합니다.

정상적으로 화면이 출력된다면, 디스클레이 설정 유지 여부를 뭍는 창에서 '바뀐 사항 유지'를 클릭하면 변경된 해상도로 계속 사용할 수 있게 됩니다.

2. 리눅스 환경 설정

A) 설치 정보 확인

OS 정보 확인
uname -a
cat /etc/oracle-release
[root@rac1 ~]# uname -a
Linux rac1 4.1.12-112.16.4.el7uek.x86_64 #2 SMP Mon Mar 12 23:57:12 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@rac1 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.5

먼저 설치된 리눅스의 버전 정보를 확인합니다.

B) 미사용 서비스 정리

미사용 서비스 정리
### 방화벽 중지
systemctl stop firewalld
systemctl disable firewalld
### 블루투스 중지
systemctl stop bluetooth
systemctl disable bluetooth
### 시간 동기화 중지
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
### NTP 중지
systemctl stop ntpdate
systemctl disable ntpdate
### AVAHI 중지
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon
### 가상 시스템 관리 중지
systemctl stop libvirtd
systemctl disable libvirtd
[root@rac1 ~]# systemctl stop firewalld
[root@rac1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@rac1 ~]# systemctl stop bluetooth
[root@rac1 ~]# systemctl disable bluetooth
Removed symlink /etc/systemd/system/dbus-org.bluez.service.
Removed symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service.

[root@rac1 ~]# systemctl stop chronyd
[root@rac1 ~]# systemctl disable chronyd
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@rac1 ~]# mv /etc/chrony.conf /etc/chrony.conf.bak

[root@rac1 ~]# systemctl stop ntpdate
[root@rac1 ~]# systemctl disable ntpdate

[root@rac1 ~]# systemctl stop avahi-daemon.socket
[root@rac1 ~]# systemctl disable avahi-daemon.socket
Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.

[root@rac1 ~]# systemctl stop avahi-daemon
[root@rac1 ~]# systemctl disable avahi-daemon
Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.

[root@rac1 ~]# systemctl stop libvirtd
[root@rac1 ~]# systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket.

테스트 환경에서 사용하지 않는 서비스를 정리합니다.

실습 환경에서는 CTSS를 활성화 모드로 운영할 것이므로 NTP나 chrony 등의 시간 동기화 서비스를 중지할 것입니다.

그러나 실제 운영환경에서는 구성 환경을 고려하여 사용 여부를 결정해야하며, 가급적 NTP를 설정(-x 포함)하여 사용하는 것을 권장합니다.

C) 리눅스 제공 필수 패키지 설치

Linux 필수 패키지 설치
cd <리눅스 설치 디스크 마운트 경로>/Packages
rpm -ivh ksh-*.el7.x86_64.rpm
rpm -ivh libaio-devel-*.el7.x86_64.rpm
rpm -ivh oracleasm-support-*.el7.x86_64.rpm
[root@rac1 ~]# cd /run/media/root/OL-7.5\ Server.x86_64/Packages

[root@rac1 Packages]# rpm -ivh ksh-20120801-137.0.1.el7.x86_64.rpm
경고: ksh-20120801-137.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:ksh-20120801-137.0.1.el7         ################################# [100%]

[root@rac1 Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
경고: libaio-devel-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:libaio-devel-0.3.109-13.el7      ################################# [100%]

[root@rac1 Packages]# rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm
경고: oracleasm-support-2.1.11-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:oracleasm-support-2.1.11-2.el7   ################################# [100%]
알림: 'systemctl enable oracleasm.service'에 요청을 전송하고 있습니다.
Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service.

리눅스 설치시에 기본적으로 설치된 패키지 외에 추가로 3개의 패키지를 설치해야 합니다.

리눅스 설치 이미지를 mount한 후에 Package 디렉토리로 이동하여 패키지를 설치합니다.

D) 11g 설치를 위한 필수 패키지 추가 설치

오라클 11g R2를 위한 추가 패키지 설치
rpm -ivh zlib-devel-*.el7.x86_64.rpm
rpm -ivh elfutils-libelf-devel-*.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm
경고: zlib-devel-1.2.7-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:zlib-devel-1.2.7-17.el7          ################################# [100%]

[root@rac1 Packages]# rpm -ivh elfutils-libelf-devel-0.170-4.el7.x86_64.rpm
경고: elfutils-libelf-devel-0.170-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:elfutils-libelf-devel-0.170-4.el7################################# [100%]

리눅스 7에 오라클 11g R2를 설치하기 위해서는 추가로 elfutils-libelf-devel 패키지를 설치해야 하며, 이 패키지를 설치하기 위해서는 zlib-devel 패키지가 먼서 설치되어야 합니다.

E) OCFS2를 위한 패키지 추가 설치

OCFS2를 위한 패키지 추가 설치
rpm -ivh ocfs2-tools-*.el7.x86_64.rpm
rpm -ivh libcom_err-devel-*.el7.x86_64.rpm
rpm -ivh e2fsprogs-devel-*.el7.x86_64.rpm
rpm -ivh pcre-devel-*.el7.x86_64.rpm
rpm -ivh glib2-devel-*.el7.x86_64.rpm
rpm -ivh ocfs2-tools-devel-*.x86_64.rpm
cd
eject
[root@rac1 Packages]# rpm -ivh ocfs2-tools-1.8.6-9.el7.x86_64.rpm
경고: ocfs2-tools-1.8.6-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:ocfs2-tools-1.8.6-9.el7          ################################# [100%]

[root@rac1 Packages]# rpm -ivh libcom_err-devel-1.42.9-11.0.1.el7.x86_64.rpm
경고: libcom_err-devel-1.42.9-11.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:libcom_err-devel-1.42.9-11.0.1.el################################# [100%]

[root@rac1 Packages]# rpm -ivh e2fsprogs-devel-1.42.9-11.0.1.el7.x86_64.rpm
경고: e2fsprogs-devel-1.42.9-11.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:e2fsprogs-devel-1.42.9-11.0.1.el7################################# [100%]

[root@rac1 Packages]# rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
경고: pcre-devel-8.32-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:pcre-devel-8.32-17.el7           ################################# [100%]

[root@rac1 Packages]# rpm -ivh glib2-devel-2.54.2-2.el7.x86_64.rpm
경고: glib2-devel-2.54.2-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:glib2-devel-2.54.2-2.el7         ################################# [100%]

[root@rac1 Packages]# rpm -ivh ocfs2-tools-devel-1.8.6-9.el7.x86_64.rpm
경고: ocfs2-tools-devel-1.8.6-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:ocfs2-tools-devel-1.8.6-9.el7    ################################# [100%]

[root@rac1 Packages]# cd

[root@rac1 ~]# eject

Raw Device에서 아카이브 로그 저장을 위한 공유 스토리즈를 사용하기 위해 OCFS2를 위한 패키지를 추가로 설치합니다.

설치가 완료되면 설치 이미지 밖의 경로로 이동한 후에 이미지를 eject 시켜줍니다.

그러지 않을 경우, 재부팅시 다시 리눅스 설치 화면으로 돌아오게 됩니다.

Linux 필수 패키지 설치 여부 확인
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++-33
rpm -q glibc
rpm -q glibc-devel
rpm -q kmod-20
rpm -q kmod-libs-20
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libX11
rpm -q libXau
rpm -q libxcb
rpm -q libXi
rpm -q libXtst
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q smartmontools
rpm -q sysstat
[root@rac1 ~]# rpm -q binutils
binutils-2.27-27.base.el7.x86_64
[root@rac1 ~]# rpm -q compat-libcap1
compat-libcap1-1.10-7.el7.x86_64
[root@rac1 ~]# rpm -q compat-libstdc++-33
compat-libstdc++-33-3.2.3-72.el7.x86_64
[root@rac1 ~]# rpm -q glibc
glibc-2.17-222.el7.x86_64
[root@rac1 ~]# rpm -q glibc-devel
glibc-devel-2.17-222.el7.x86_64
[root@rac1 ~]# rpm -q kmod-20
kmod-20-21.0.1.el7.x86_64
[root@rac1 ~]# rpm -q kmod-libs-20
kmod-libs-20-21.0.1.el7.x86_64
[root@rac1 ~]# rpm -q ksh
ksh-20120801-137.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libaio
libaio-0.3.109-13.el7.x86_64
[root@rac1 ~]# rpm -q libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
[root@rac1 ~]# rpm -q libgcc
libgcc-4.8.5-28.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libstdc++
libstdc++-4.8.5-28.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libstdc++-devel
libstdc++-devel-4.8.5-28.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libX11
libX11-1.6.5-1.el7.x86_64
[root@rac1 ~]# rpm -q libXau
libXau-1.0.8-2.1.el7.x86_64
[root@rac1 ~]# rpm -q libxcb
libxcb-1.12-1.el7.x86_64
[root@rac1 ~]# rpm -q libXi
libXi-1.7.9-1.el7.x86_64
[root@rac1 ~]# rpm -q libXtst
libXtst-1.2.3-1.el7.x86_64
[root@rac1 ~]# rpm -q make
make-3.82-23.el7.x86_64
[root@rac1 ~]# rpm -q net-tools
net-tools-2.0-0.22.20131004git.el7.x86_64
[root@rac1 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.0.1.el7.x86_64
[root@rac1 ~]# rpm -q smartmontools
smartmontools-6.5-1.el7.x86_64
[root@rac1 ~]# rpm -q sysstat
sysstat-10.1.5-13.el7.x86_64

오라클 설치에 필요한 리눅스 패키지들이 모두 설치되어 있는지 검증합니다.

누락된 패키지가 있다면 반드시 설치해야 합니다.

패키지 파일은 yum 이용하여 직접 설치하거나 Oracle Linux Repository에서 다운로드   있습니다.

대부분의 패키지는 설치 미디어에 함께 제공되고 있습니다.

F) hosts 파일 수정

vi /etc/hosts 로 호스트 파일 수정
### Public
10.0.1.101  rac1        rac1.localdomain
10.0.1.102  rac2        rac2.localdomain
### Private
10.0.5.101  rac1-priv   rac1-priv.localdomain
10.0.5.102  rac2-priv   rac2-priv.localdomain
### Virtual
10.0.1.201  rac1-vip    rac1-vip.localdomain
10.0.1.202  rac2-vip    rac2-vip.localdomain
### DNS
10.0.1.150  dns         dns.localdomain
### SCAN
10.0.1.191  rac-scan    rac-scan.localdomain
10.0.1.192  rac-scan    rac-scan.localdomain
10.0.1.193  rac-scan    rac-scan.localdomain

/etc/hosts 파일에 설치할 모든 서버의 IP와 호스트명을 추가합니다.

오라클 소프트웨어 설치를 정상적으로 진행하기 위해 로컬 노드와 원격 노드에 대한 정보를 정확히 입력해야 합니다.

SCAN IP는 1개만 할당해도 설치에 지장은 없습니다. 다만, 18c부터는 3개를 할당하지 않을 경우, 필요 조건 검사 과정에서 검증 실패 메시지가 출력됩니다.

G) 보안 설정 변경

vi /etc/selinux/config 로 selinux 모드 변경
SELINUX=permissive
SELinux 모드를 온라인 상에서 변경
setenforce permissive

Selinux 모드를 permissive로 변경합니다.

H) dnsmasq 활성화

vi /etc/dnsmasq.conf 로 dnsmasq에 로컬 도메인 정보 추가
local=/localdomain/

dnsmasq 서비스의 환경 설정 파일에 로컬 도메인에 대한 정보를 입력합니다.

resolv.conf 내용 확인 및 dnsmasq 활성화
cat /etc/resolv.conf
systemctl start dnsmasq
systemctl enable dnsmasq
nslookup rac-scan.localdomain	# 재기동 필요
[root@rac1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 127.0.0.1

[root@rac1 ~]# systemctl start dnsmasq
[root@rac1 ~]# systemctl enable dnsmasq
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

[root@rac1 ~]# nslookup rac-scan.localdomain
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan.localdomain
Address: 10.0.1.191
Name:   rac-scan.localdomain
Address: 10.0.1.192
Name:   rac-scan.localdomain
Address: 10.0.1.193

[root@rac1 ~]# nslookup rac-scan.localdomain
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan.localdomain
Address: 10.0.1.192
Name:   rac-scan.localdomain
Address: 10.0.1.193
Name:   rac-scan.localdomain
Address: 10.0.1.191

[root@rac1 ~]# nslookup rac-scan.localdomain
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan.localdomain
Address: 10.0.1.193
Name:   rac-scan.localdomain
Address: 10.0.1.191
Name:   rac-scan.localdomain
Address: 10.0.1.192

별도의 DNS 서비스 없이 SCAN을 사용하기 위해 dnsmasq 서비스를 활성화합니다.

DNS 설정 파일(resolv.conf)에는 "nameserver 127.0.0.1"가 입력되어 있어야 합니다.

I) 가상 메모리 파일 시스템 할당

vi /etc/fstab 로 tmpfs 영역 할당
tmpfs                   /dev/shm                tmpfs   size=8g         0 0
mount 명령으로 /dev/shm 영역 remount
mount -o remount /dev/shm
tmpfs                   /dev/shm                tmpfs   size=8g         0 0
[root@rac1 ~]# mount -o remount /dev/shm

[root@rac1 ~]# df -h | grep shm
tmpfs                8.0G   84K  8.0G   1% /dev/shm

가상 메모리 파일 시스템(tmpfs) 값을 설정하고 remount하여 적용시킵니다.

J) oracle 제공 추가 패키지 설치

Oracle 사전환경 구성 패키지 및 ASMLib 패키지 설치
rpm -ivh oracle-database-preinstall-19c-*.el7.x86_64.rpm
rpm -ivh oracleasmlib-*.el7.x86_64.rpm
[root@rac1 tmp]# rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
경고: oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:oracle-database-preinstall-19c-1.################################# [100%]

[root@rac1 tmp]# rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm
경고: oracleasmlib-2.0.12-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:oracleasmlib-2.0.12-1.el7        ################################# [100%]

preinstall 패키지는 Oracle Linux Repository에서 받을 수 있고, ASMLib 패키지는 아래 경로에서 다운로드 합니다.

https://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel7-2773795.html

K) 그룹 및 사용자 계정 작업

그룹 등록 및 사용자 설정 변경
### 그룹 등록 (정책에 따라 생략)
# groupadd oper
# groupadd backupdba
# groupadd dgdba
# groupadd kmdba
# groupadd racdba
groupadd asmadmin
groupadd asmdba
groupadd asmoper
### 유저 그룹 설정 변경 (vboxsf는 VirtualBox의 Guest Additions 사용시 설정)
usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper,vboxsf oracle
# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper oracle
### 계정 암호 변경
passwd oracle
[root@rac1 ~]# groupadd asmadmin
[root@rac1 ~]# groupadd asmdba
[root@rac1 ~]# groupadd asmoper

[root@rac1 ~]# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper,vboxsf oracle

[root@rac1 ~]# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

소프트웨어를 설치할 사용자 계정과 그룹을 생성 또는 추가합니다.

preinstall 패키지가 설치되었다면 oracle 유저와 oinstall, dba, oper, backupdba, dgdba, kmdba, racdba 그룹은 이미 생성되어 있습니다.

vboxsf 그룹은 VirtualBox의 Guest Addition을 사용하기 위한 그룹으로, 실제 운영 환경에서 Guest Addition을 사용하지 않는다면 추가하지 않습니다.

passwd 명령어로 각 계정의 암호를 지정해주면 됩니다.

L) 설치 경로 생성

설치 경로 생성 및 권한 부여
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
[root@rac1 ~]# mkdir -p /u01/app/oracle
[root@rac1 ~]# chown -R oracle:oinstall /u01
[root@rac1 ~]# chmod -R 775 /u01

오라클 소프트웨어 설치를 위한 경로를 생성하고, 해당 경로에 대한 권한과 소유권을 수정합니다.

M) 사용자 환경 설정

vi ~oracle/.bash_profile 로 oracle 프로필 설정
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1             # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/11.2.0/grid
export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1                # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '

oracle 유저의 .bash_profile을 수정합니다.

root계정에서 해당 파일을 직접 수정할 수 있습니다.

먼저 11g R2의 RAC를 구축할 것이므로 경로는 이에 맞게 설정합니다.

vi ~oracle/.bashrc 로 alias 설정
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM1;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb1;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH'

Grid와 DB 인스턴스 간의 변환을 쉽게 하기 위해 alias를 설정합니다.

vi ~/.bash_profile 로 root 프로필 수정
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/11.2.0/grid
export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$GRID_HOME/bin

작업의 편의를 위해 root 계정의 .bash_profile에도 경로 정보를 추가로 입력합니다.

V. 공유 환경 및 2번 노드 구성

1. 공유 스토리지 생성

공유 스토리지 구성을 위해 고정 공간이 할당된 가상 디스크 6개를 추가로 생성합니다.

파일 이름용량타입용도비고

CRS1.vdi

1GBFixed / ShareableCRS 저장 영역공유(shareable) 디스크로 사용하기 위해서 Fixed Size로 생성합니다.
CRS2.vdi1GBFixed / Shareable
CRS3.vdi1GBFixed / Shareable
DATA.vdi30GBFixed / ShareableData 저장 영역
FRA.vdi20GBFixed / ShareableFast Recovery Area
RAW.vdi20GBFixed / ShareableRaw Device 영역

A) 가상 스토리지 파일 생성

공유 스토리지 가상 디스크 생성
vboxmanage createmedium --filename CRS1.vdi --size 1024 --format VDI --variant Fixed
vboxmanage createmedium --filename CRS2.vdi --size 1024 --format VDI --variant Fixed
vboxmanage createmedium --filename CRS3.vdi --size 1024 --format VDI --variant Fixed
vboxmanage createmedium --filename DATA.vdi --size 30720 --format VDI --variant Fixed
vboxmanage createmedium --filename FRA.vdi --size 20480 --format VDI --variant Fixed
vboxmanage createmedium --filename RAW.vdi --size 20480 --format VDI --variant Fixed
PS D:\VM> pwd

Path
----
D:\VM

PS D:\VM> vboxmanage createmedium --filename CRS1.vdi --size 1024 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 3a6327e8-0367-4edc-bb5b-591efe123e8d
PS D:\VM> vboxmanage createmedium --filename CRS2.vdi --size 1024 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 9d4524a2-5a06-478a-b733-81cd9889e59e
PS D:\VM> vboxmanage createmedium --filename CRS3.vdi --size 1024 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: a9d5a021-b91a-4c43-b7d5-2136bf447e83
PS D:\VM> vboxmanage createmedium --filename DATA.vdi --size 30720 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 94a0fac2-2040-42ec-9b7e-2fecc49bcf05
PS D:\VM> vboxmanage createmedium --filename FRA.vdi --size 20480 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 8f120938-511d-42b1-b15b-dfd4e20218e9
PS D:\VM> vboxmanage createmedium --filename RAW.vdi --size 20480 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 4f20eb5e-79a3-42e3-8b35-c9c9983b9040

Host 컴퓨터에서 VM에 연결시킬 공유 디스크를 생성합니다.

디스크는 2개의 노드에서 공유할 것이므로, 반드시 Fixed 모드로 디스크 공간이 사전에 할당되도록 생성해야 합니다.

B) 스토리지 파일 공유 설정

가상 디스크 타입 변경
vboxmanage modifymedium CRS1.vdi --type shareable
vboxmanage modifymedium CRS2.vdi --type shareable
vboxmanage modifymedium CRS3.vdi --type shareable
vboxmanage modifymedium DATA.vdi --type shareable
vboxmanage modifymedium FRA.vdi --type shareable
vboxmanage modifymedium RAW.vdi --type shareable
PS D:\VM> vboxmanage modifymedium CRS1.vdi --type shareable
PS D:\VM> vboxmanage modifymedium CRS2.vdi --type shareable
PS D:\VM> vboxmanage modifymedium CRS3.vdi --type shareable
PS D:\VM> vboxmanage modifymedium DATA.vdi --type shareable
PS D:\VM> vboxmanage modifymedium FRA.vdi --type shareable
PS D:\VM> vboxmanage modifymedium RAW.vdi --type shareable

생성된 디스크들은 모두 shareable 디스크로 속성 변경이 필요합니다.

VirtualBox의 GUI 툴을 사용하여 변경할 수도 있습니다.

C) VM에 스토리지 연결

정지된 1번 노드의 설정 모드로 들어가서 디스크 파일을 추가합니다.

SATA 콘트롤러의 오른쪽에 하드디스크 모양의 아이콘을 클릭합니다

vboxmanage 명령으로 이미 생성된 디스크 파일을 추가할 것이므로 <기존 디스크 선택하기>를 클릭합니다.

Not Attatched에 등록된 디스크 목록에서 "CRS1.vdi"를 선택한 후 <선택>을 클릭합니다.

만약 생성된 디스크 이미지가 목록에 없다면 <추가> 아이콘을 클릭한 후에 디스크 이미지를 찾아서 추가하면 됩니다.

정상적으로 스토리지가 추가된 것을 확인할 수 있습니다.

다른 공유 디스크들도 같은 방법으로 추가해줍니다.

나머지 디스크 파일 모두 순서에 맞게 SATA 컨트롤러에 등록시켜줍니다.

반드시 동일한 순서대로 다른 노드에도 등록시켜야 합니다.

2. 공유 스토리지 환경 구성

A) 디스크 파티셔닝

스토리지 파티션 생성
ls /dev/sd*
fdisk /dev/sdb  ### "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdc  ### "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdd  ### "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sde  ### "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdf  ### "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdg  ### "n", "p", "1", "엔터", "+15G" 입력, "n", "p", "2", "엔터", "엔터", "w" 입력
ls /dev/sd*
[root@rac1 ~]# ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdc  /dev/sde  /dev/sdg
/dev/sda1  /dev/sdb   /dev/sdd  /dev/sdf

[root@rac1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xcc8fe296.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x721e08dc.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# fdisk /dev/sdd
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4f1e2a87.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# fdisk /dev/sde
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x02219e92.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-62914559, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559):
Using default value 62914559
Partition 1 of type Linux and of size 30 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# fdisk /dev/sdf
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xecdb8b19.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# fdisk /dev/sdg
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6f157778.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +15G
Partition 1 of type Linux and of size 15 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (31459328-41943039, default 31459328):
Using default value 31459328
Last sector, +sectors or +size{K,M,G} (31459328-41943039, default 41943039):
Using default value 41943039
Partition 2 of type Linux and of size 5 GiB is set

Command (m for help): p

Disk /dev/sdg: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x6f157778

   Device Boot      Start         End      Blocks   Id  System
/dev/sdg1            2048    31459327    15728640   83  Linux
/dev/sdg2        31459328    41943039     5241856   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdc1  /dev/sde   /dev/sdf1  /dev/sdg2
/dev/sda1  /dev/sdb1  /dev/sdd   /dev/sde1  /dev/sdg
/dev/sda2  /dev/sdc   /dev/sdd1  /dev/sdf   /dev/sdg1

VM에 연결된 디스크에 fdisk 명령어로 파티션 분할 작업을 수행 합니다.

/dev/sdb에서부터 /dev/sdf까지는 하나의 파티션으로 분할하여 ASM 스토리지로 사용할 것입니다.

/dev/sdg 디스크는 15GB와 5GB의 파티셔으로 분할하여, 15GB는 raw device 영역으로 사용하고 나머지 5GB는 OCFS2으로 클러스터링하여 FRA 영역으로 사용합니다.

B) ASM 구성

ASM 환경 설정
oracleasm configure -i
oracleasm init
oracleasm status
oracleasm configure
[root@rac1 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done

[root@rac1 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

[root@rac1 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes

[root@rac1 ~]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=asmadmin
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

ASM library에 대한 추가적인 환경 설정(사용자, 그룹, 부팅시 활성화, 부팅시 스캔 여부)을 수행하고 적용 여부를 검증합니다.

ASM 디스크 생성 및 확인
oracleasm createdisk CRS1 /dev/sdb1
oracleasm createdisk CRS2 /dev/sdc1
oracleasm createdisk CRS3 /dev/sdd1
oracleasm createdisk DATA /dev/sde1
oracleasm createdisk FRA /dev/sdf1
oracleasm scandisks
oracleasm listdisks
[root@rac1 ~]# oracleasm createdisk CRS1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DATA /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk FRA /dev/sdf1
Writing disk header: done
Instantiating disk: done

[root@rac1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

[root@rac1 ~]# oracleasm listdisks
CRS1
CRS2
CRS3
DATA
FRA

VM에 마운트된 디스크를 각각 ASM Disk로 할당해줍니다.

순서대로 마운트가 되었다면, 디바이스 명의 알파벳 순으로 ASM 디스크를 생성하면 됩니다.

C) Raw Device 구성

Raw Device 볼륨 그룹 생성
pvcreate /dev/sdg1
pvdisplay /dev/sdg1
vgcreate rawvg /dev/sdg1
vgdisplay rawvg
[root@rac1 ~]# pvcreate /dev/sdg1
  Physical volume "/dev/sdg1" successfully created.
  
[root@rac1 ~]# pvdisplay /dev/sdg1
  "/dev/sdg1" is a new physical volume of "15.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdg1
  VG Name
  PV Size               15.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               30eYro-iXra-PEwU-ncIe-oo0D-ijud-8RBXmu

[root@rac1 ~]# vgcreate rawvg /dev/sdg1
  Volume group "rawvg" successfully created
  
[root@rac1 ~]# vgdisplay rawvg
  --- Volume group ---
  VG Name               rawvg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <15.00 GiB
  PE Size               4.00 MiB
  Total PE              3839
  Alloc PE / Size       0 / 0
  Free  PE / Size       3839 / <15.00 GiB
  VG UUID               Eqt7EF-d4Qt-DuQP-ChuW-Lceo-uG9r-X1DZ6t

Raw Device로 사용할 디스크의 물리 볼륨과 볼륨 그룹을 생성합니다.

Raw Device 논리 볼륨 생성
lvcreate -L 300M -n ocr01 rawvg
lvcreate -L 300M -n ocr02 rawvg
lvcreate -L 300M -n vote01 rawvg
lvcreate -L 300M -n vote02 rawvg
lvcreate -L 300M -n vote03 rawvg
lvcreate -L 2048M -n system rawvg
lvcreate -L 2048M -n sysaux rawvg
lvcreate -L 1024M -n users rawvg
lvcreate -L 700M -n temp rawvg
lvcreate -L 2048M -n undotbs1 rawvg
lvcreate -L 2048M -n undotbs2 rawvg
lvcreate -L 100M -n control01 rawvg
lvcreate -L 100M -n control02 rawvg
lvcreate -L 200M -n redo01 rawvg
lvcreate -L 200M -n redo02 rawvg
lvcreate -L 200M -n redo03 rawvg
lvcreate -L 200M -n redo04 rawvg
lvcreate -L 200M -n redo05 rawvg
lvcreate -L 200M -n redo06 rawvg
lvcreate -L 200M -n spfile rawvg
lvdisplay
[root@rac1 ~]# lvcreate -L 300M -n ocr01 rawvg
  Logical volume "ocr01" created.
  
[root@rac1 ~]# lvcreate -L 300M -n ocr02 rawvg
  Logical volume "ocr02" created.
  
[root@rac1 ~]# lvcreate -L 300M -n vote01 rawvg
  Logical volume "vote01" created.
  
[root@rac1 ~]# lvcreate -L 300M -n vote02 rawvg
  Logical volume "vote02" created.
  
[root@rac1 ~]# lvcreate -L 300M -n vote03 rawvg
  Logical volume "vote03" created.
  
[root@rac1 ~]# lvcreate -L 2048M -n system rawvg
  Logical volume "system" created.
  
[root@rac1 ~]# lvcreate -L 2048M -n sysaux rawvg
  Logical volume "sysaux" created.
  
[root@rac1 ~]# lvcreate -L 1024M -n users rawvg
  Logical volume "users" created.
  
[root@rac1 ~]# lvcreate -L 700M -n temp rawvg
  Logical volume "temp" created.
  
[root@rac1 ~]# lvcreate -L 2048M -n undotbs1 rawvg
  Logical volume "undotbs1" created.
  
[root@rac1 ~]# lvcreate -L 2048M -n undotbs2 rawvg
  Logical volume "undotbs2" created.
  
[root@rac1 ~]# lvcreate -L 100M -n control01 rawvg
  Logical volume "control01" created.
  
[root@rac1 ~]# lvcreate -L 100M -n control02 rawvg
  Logical volume "control02" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo01 rawvg
  Logical volume "redo01" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo02 rawvg
  Logical volume "redo02" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo03 rawvg
  Logical volume "redo03" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo04 rawvg
  Logical volume "redo04" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo05 rawvg
  Logical volume "redo05" created.
  
[root@rac1 ~]# lvcreate -L 200M -n redo06 rawvg
  Logical volume "redo06" created.
  
[root@rac1 ~]# lvcreate -L 200M -n spfile rawvg
  Logical volume "spfile" created.

[root@rac1 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/rawvg/ocr01
  LV Name                ocr01
  VG Name                rawvg
  LV UUID                VP12OH-WsGO-nuQc-3KGr-0sIl-q8Hj-QZ0zL1
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                300.00 MiB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:2

  --- Logical volume ---
  LV Path                /dev/rawvg/ocr02
  LV Name                ocr02
  VG Name                rawvg
  LV UUID                2nMgYm-Et4K-ODEK-WXM9-c5u7-ZP3W-zxEjxN
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                300.00 MiB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:3

  --- Logical volume ---
  LV Path                /dev/rawvg/vote01
  LV Name                vote01
  VG Name                rawvg
  LV UUID                OuYYAj-yANF-kSxa-X92S-6WHt-2s9Z-sihzqr
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                300.00 MiB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:4

  --- Logical volume ---
  LV Path                /dev/rawvg/vote02
  LV Name                vote02
  VG Name                rawvg
  LV UUID                by0V2t-L14c-GTuC-6eeA-lm9g-Ikiv-YabeRA
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                300.00 MiB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:5

  --- Logical volume ---
  LV Path                /dev/rawvg/vote03
  LV Name                vote03
  VG Name                rawvg
  LV UUID                kBx6Wo-h8a0-ETtq-FbIV-5dat-84rI-uTKv2L
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                300.00 MiB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:6

  --- Logical volume ---
  LV Path                /dev/rawvg/system
  LV Name                system
  VG Name                rawvg
  LV UUID                m0x6bB-bEzR-qgDO-DgnQ-OMDO-y3Td-0sxnGh
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:7

  --- Logical volume ---
  LV Path                /dev/rawvg/sysaux
  LV Name                sysaux
  VG Name                rawvg
  LV UUID                KKgx8r-f1kl-su3S-K3GI-h2kr-dsnZ-nZPQqa
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:8

  --- Logical volume ---
  LV Path                /dev/rawvg/users
  LV Name                users
  VG Name                rawvg
  LV UUID                FSGR2q-0MZZ-rFdR-5VSD-KNCu-ujLb-zmha2D
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:9

  --- Logical volume ---
  LV Path                /dev/rawvg/temp
  LV Name                temp
  VG Name                rawvg
  LV UUID                qntMvR-9Dm0-dtRv-4azP-2f9R-hR7e-Dsw0g5
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:56 +0900
  LV Status              available
  # open                 0
  LV Size                700.00 MiB
  Current LE             175
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:10

  --- Logical volume ---
  LV Path                /dev/rawvg/undotbs1
  LV Name                undotbs1
  VG Name                rawvg
  LV UUID                srl0yr-gufu-Byf3-zgdG-Wwr6-oIsv-5hTK9u
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:11

  --- Logical volume ---
  LV Path                /dev/rawvg/undotbs2
  LV Name                undotbs2
  VG Name                rawvg
  LV UUID                TCK1xl-ZvXs-2bRT-PZWI-isqV-Ei73-AAv152
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:12

  --- Logical volume ---
  LV Path                /dev/rawvg/control01
  LV Name                control01
  VG Name                rawvg
  LV UUID                2uw94p-td32-23yd-li8G-y3xE-bnJg-dpuxJe
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:13

  --- Logical volume ---
  LV Path                /dev/rawvg/control02
  LV Name                control02
  VG Name                rawvg
  LV UUID                GbO1Iq-EdGK-gDXz-O2em-PSLV-s9rm-k2Gy3Y
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:14

  --- Logical volume ---
  LV Path                /dev/rawvg/redo01
  LV Name                redo01
  VG Name                rawvg
  LV UUID                lWipjE-Ted7-JF33-tDNe-BKUX-FnNc-5Garlr
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:15

  --- Logical volume ---
  LV Path                /dev/rawvg/redo02
  LV Name                redo02
  VG Name                rawvg
  LV UUID                iWGac1-yfbz-vWy4-jZ0C-7DFa-joq0-6OF03E
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:16

  --- Logical volume ---
  LV Path                /dev/rawvg/redo03
  LV Name                redo03
  VG Name                rawvg
  LV UUID                4WVBxD-gXs6-kkQD-MK8j-ApUF-kJFc-NbOcWz
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:17

  --- Logical volume ---
  LV Path                /dev/rawvg/redo04
  LV Name                redo04
  VG Name                rawvg
  LV UUID                TP8pev-sQ7z-UwlH-Wte3-96H7-DHvB-c0DHgK
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:18

  --- Logical volume ---
  LV Path                /dev/rawvg/redo05
  LV Name                redo05
  VG Name                rawvg
  LV UUID                SxhN6y-KNHF-OiOF-ENfW-ud4Q-Bc0o-Jh2Fah
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:19

  --- Logical volume ---
  LV Path                /dev/rawvg/redo06
  LV Name                redo06
  VG Name                rawvg
  LV UUID                TXeS5L-qPEk-RlBf-VHo6-Ab5F-buiY-HvhDNi
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:20

  --- Logical volume ---
  LV Path                /dev/rawvg/spfile
  LV Name                spfile
  VG Name                rawvg
  LV UUID                O1d4Ck-b15L-ORZx-EI4Z-RhA4-hl1B-9f3uag
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 13:24:57 +0900
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:21

  --- Logical volume ---
  LV Path                /dev/ol/swap
  LV Name                swap
  VG Name                ol
  LV UUID                E6X06I-63Al-dbJo-i53I-Fk7V-uR90-uCLpBf
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 09:25:27 +0900
  LV Status              available
  # open                 2
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:1

  --- Logical volume ---
  LV Path                /dev/ol/root
  LV Name                root
  VG Name                ol
  LV UUID                d1uCT2-Z8h7-HVtm-3mQ8-OWpX-WewL-a8zJQr
  LV Write Access        read/write
  LV Creation host, time rac1, 2020-04-13 09:25:27 +0900
  LV Status              available
  # open                 1
  LV Size                <89.51 GiB
  Current LE             22914
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           249:0

데이터 파일이나 로그 파일, 컨트롤 파일 등에 사용할 크기별로 논리 볼륨을 할당합니다.

개별 논리 볼륨을 Raw Device로 할당
raw /dev/raw/raw1 /dev/rawvg/ocr01
raw /dev/raw/raw2 /dev/rawvg/ocr02
raw /dev/raw/raw3 /dev/rawvg/vote01
raw /dev/raw/raw4 /dev/rawvg/vote02
raw /dev/raw/raw5 /dev/rawvg/vote03
raw /dev/raw/raw6 /dev/rawvg/system
raw /dev/raw/raw7 /dev/rawvg/sysaux
raw /dev/raw/raw8 /dev/rawvg/users
raw /dev/raw/raw9 /dev/rawvg/temp
raw /dev/raw/raw10 /dev/rawvg/undotbs1
raw /dev/raw/raw11 /dev/rawvg/undotbs2
raw /dev/raw/raw12 /dev/rawvg/control01
raw /dev/raw/raw13 /dev/rawvg/control02
raw /dev/raw/raw14 /dev/rawvg/redo01
raw /dev/raw/raw15 /dev/rawvg/redo02
raw /dev/raw/raw16 /dev/rawvg/redo03
raw /dev/raw/raw17 /dev/rawvg/redo04
raw /dev/raw/raw18 /dev/rawvg/redo05
raw /dev/raw/raw19 /dev/rawvg/redo06
raw /dev/raw/raw20 /dev/rawvg/spfile
raw -qa
ls -l /dev/raw
[root@rac1 ~]# raw /dev/raw/raw1 /dev/rawvg/ocr01
/dev/raw/raw1:  bound to major 249, minor 2

[root@rac1 ~]# raw /dev/raw/raw2 /dev/rawvg/ocr02
/dev/raw/raw2:  bound to major 249, minor 3

[root@rac1 ~]# raw /dev/raw/raw3 /dev/rawvg/vote01
/dev/raw/raw3:  bound to major 249, minor 4

[root@rac1 ~]# raw /dev/raw/raw4 /dev/rawvg/vote02
/dev/raw/raw4:  bound to major 249, minor 5

[root@rac1 ~]# raw /dev/raw/raw5 /dev/rawvg/vote03
/dev/raw/raw5:  bound to major 249, minor 6

[root@rac1 ~]# raw /dev/raw/raw6 /dev/rawvg/system
/dev/raw/raw6:  bound to major 249, minor 7

[root@rac1 ~]# raw /dev/raw/raw7 /dev/rawvg/sysaux
/dev/raw/raw7:  bound to major 249, minor 8

[root@rac1 ~]# raw /dev/raw/raw8 /dev/rawvg/users
/dev/raw/raw8:  bound to major 249, minor 9

[root@rac1 ~]# raw /dev/raw/raw9 /dev/rawvg/temp
/dev/raw/raw9:  bound to major 249, minor 10

[root@rac1 ~]# raw /dev/raw/raw10 /dev/rawvg/undotbs1
/dev/raw/raw10:  bound to major 249, minor 11

[root@rac1 ~]# raw /dev/raw/raw11 /dev/rawvg/undotbs2
/dev/raw/raw11:  bound to major 249, minor 12

[root@rac1 ~]# raw /dev/raw/raw12 /dev/rawvg/control01
/dev/raw/raw12:  bound to major 249, minor 13

[root@rac1 ~]# raw /dev/raw/raw13 /dev/rawvg/control02
/dev/raw/raw13:  bound to major 249, minor 14

[root@rac1 ~]# raw /dev/raw/raw14 /dev/rawvg/redo01
/dev/raw/raw14:  bound to major 249, minor 15

[root@rac1 ~]# raw /dev/raw/raw15 /dev/rawvg/redo02
/dev/raw/raw15:  bound to major 249, minor 16

[root@rac1 ~]# raw /dev/raw/raw16 /dev/rawvg/redo03
/dev/raw/raw16:  bound to major 249, minor 17

[root@rac1 ~]# raw /dev/raw/raw17 /dev/rawvg/redo04
/dev/raw/raw17:  bound to major 249, minor 18

[root@rac1 ~]# raw /dev/raw/raw18 /dev/rawvg/redo05
/dev/raw/raw18:  bound to major 249, minor 19

[root@rac1 ~]# raw /dev/raw/raw19 /dev/rawvg/redo06
/dev/raw/raw19:  bound to major 249, minor 20

[root@rac1 ~]# raw /dev/raw/raw20 /dev/rawvg/spfile
/dev/raw/raw20:  bound to major 249, minor 21

[root@rac1 ~]# raw -qa
/dev/raw/raw1:  bound to major 249, minor 2
/dev/raw/raw2:  bound to major 249, minor 3
/dev/raw/raw3:  bound to major 249, minor 4
/dev/raw/raw4:  bound to major 249, minor 5
/dev/raw/raw5:  bound to major 249, minor 6
/dev/raw/raw6:  bound to major 249, minor 7
/dev/raw/raw7:  bound to major 249, minor 8
/dev/raw/raw8:  bound to major 249, minor 9
/dev/raw/raw9:  bound to major 249, minor 10
/dev/raw/raw10:  bound to major 249, minor 11
/dev/raw/raw11:  bound to major 249, minor 12
/dev/raw/raw12:  bound to major 249, minor 13
/dev/raw/raw13:  bound to major 249, minor 14
/dev/raw/raw14:  bound to major 249, minor 15
/dev/raw/raw15:  bound to major 249, minor 16
/dev/raw/raw16:  bound to major 249, minor 17
/dev/raw/raw17:  bound to major 249, minor 18
/dev/raw/raw18:  bound to major 249, minor 19
/dev/raw/raw19:  bound to major 249, minor 20

[root@rac1 ~]# ls -l /dev/raw
합계 0
crw-rw----. 1 oracle dba 162,  0  4월 13 14:42 rawctl
crw-rw----. 1 oracle dba 162,  1  4월 13 14:42 raw1
crw-rw----. 1 oracle dba 162,  2  4월 13 14:42 raw2
crw-rw----. 1 oracle dba 162,  3  4월 13 14:42 raw3
crw-rw----. 1 oracle dba 162,  4  4월 13 14:42 raw4
crw-rw----. 1 oracle dba 162,  5  4월 13 14:42 raw5
crw-rw----. 1 oracle dba 162,  6  4월 13 14:42 raw6
crw-rw----. 1 oracle dba 162,  7  4월 13 14:42 raw7
crw-rw----. 1 oracle dba 162,  8  4월 13 14:42 raw8
crw-rw----. 1 oracle dba 162,  9  4월 13 14:42 raw9
crw-rw----. 1 oracle dba 162, 10  4월 13 14:42 raw10
crw-rw----. 1 oracle dba 162, 11  4월 13 14:42 raw11
crw-rw----. 1 oracle dba 162, 12  4월 13 14:42 raw12
crw-rw----. 1 oracle dba 162, 13  4월 13 14:42 raw13
crw-rw----. 1 oracle dba 162, 14  4월 13 14:42 raw14
crw-rw----. 1 oracle dba 162, 15  4월 13 14:42 raw15
crw-rw----. 1 oracle dba 162, 16  4월 13 14:42 raw16
crw-rw----. 1 oracle dba 162, 17  4월 13 14:42 raw17
crw-rw----. 1 oracle dba 162, 18  4월 13 14:42 raw18
crw-rw----. 1 oracle dba 162, 19  4월 13 14:42 raw19
crw-rw----. 1 oracle dba 162, 20  4월 13 14:42 raw20

생성된 논리 볼륨을 Raw Device에 할당합니다.

vi /etc/udev/rules.d/60-raw.rules 로 규칙 생성
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="ocr01", RUN+="/bin/raw /dev/raw/raw1 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="ocr02", RUN+="/bin/raw /dev/raw/raw2 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote01", RUN+="/bin/raw /dev/raw/raw3 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote02", RUN+="/bin/raw /dev/raw/raw4 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote03", RUN+="/bin/raw /dev/raw/raw5 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="system", RUN+="/bin/raw /dev/raw/raw6 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="sysaux", RUN+="/bin/raw /dev/raw/raw7 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="users", RUN+="/bin/raw /dev/raw/raw8 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="temp", RUN+="/bin/raw /dev/raw/raw9 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="undotbs1", RUN+="/bin/raw /dev/raw/raw10 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="undotbs2", RUN+="/bin/raw /dev/raw/raw11 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="control01", RUN+="/bin/raw /dev/raw/raw12 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="control02", RUN+="/bin/raw /dev/raw/raw13 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo01", RUN+="/bin/raw /dev/raw/raw14 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo02", RUN+="/bin/raw /dev/raw/raw15 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo03", RUN+="/bin/raw /dev/raw/raw16 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo04", RUN+="/bin/raw /dev/raw/raw17 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo05", RUN+="/bin/raw /dev/raw/raw18 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo06", RUN+="/bin/raw /dev/raw/raw19 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="spfile", RUN+="/bin/raw /dev/raw/raw20 %N"
ACTION=="add", KERNEL=="raw*", OWNER=="oracle", GROUP=="dba", MODE=="0660"
[root@rac1 ~]# cat > /etc/udev/rules.d/60-raw.rules
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="ocr01", RUN+="/bin/raw /dev/raw/raw1 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="ocr02", RUN+="/bin/raw /dev/raw/raw2 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote01", RUN+="/bin/raw /dev/raw/raw3 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote02", RUN+="/bin/raw /dev/raw/raw4 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="vote03", RUN+="/bin/raw /dev/raw/raw5 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="system", RUN+="/bin/raw /dev/raw/raw6 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="sysaux", RUN+="/bin/raw /dev/raw/raw7 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="users", RUN+="/bin/raw /dev/raw/raw8 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="temp", RUN+="/bin/raw /dev/raw/raw9 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="undotbs1", RUN+="/bin/raw /dev/raw/raw10 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="undotbs2", RUN+="/bin/raw /dev/raw/raw11 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="control01", RUN+="/bin/raw /dev/raw/raw12 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="control02", RUN+="/bin/raw /dev/raw/raw13 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo01", RUN+="/bin/raw /dev/raw/raw14 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo02", RUN+="/bin/raw /dev/raw/raw15 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo03", RUN+="/bin/raw /dev/raw/raw16 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo04", RUN+="/bin/raw /dev/raw/raw17 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo05", RUN+="/bin/raw /dev/raw/raw18 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="redo06", RUN+="/bin/raw /dev/raw/raw19 %N"
ENV{DM_VG_NAME}=="rawvg", ENV{DM_LV_NAME}=="spfile", RUN+="/bin/raw /dev/raw/raw20 %N"
ACTION=="add", KERNEL=="raw*", OWNER=="oracle", GROUP=="dba", MODE=="0660"
^C

서버를 재부팅 시에 논리 볼륨을 raw device에 할당할 수 있도록 rule 파일을 생성하고, 소유자와 그룹 설정을 추가합니다.

Raw Device 규칙을 적용
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
[root@rac1 ~]# udevadm control --reload-rules

[root@rac1 ~]# udevadm trigger --type=devices --action=change

생성된 rule을 적용합니다.

D) OCFS2 구성

OCFS2 클러스터 정보 등록
o2cb add-cluster <클러스터명>
o2cb add-node <클러스터명> <node1명> --ip <node1 사설IP>
o2cb add-node <클러스터명> <node2명> --ip <node2 사설IP>
cat /etc/ocfs2/cluster.conf
[root@rac1 ~]# o2cb add-cluster raccluster

[root@rac1 ~]# o2cb add-node raccluster rac1 --ip 10.0.5.101

[root@rac1 ~]# o2cb add-node raccluster rac2 --ip 10.0.5.102

[root@rac1 ~]# cat /etc/ocfs2/cluster.conf
cluster:
        heartbeat_mode = local
        node_count = 2
        name = raccluster

node:
        number = 0
        cluster = raccluster
        ip_port = 7777
        ip_address = 10.0.5.101
        name = rac1

node:
        number = 1
        cluster = raccluster
        ip_port = 7777
        ip_address = 10.0.5.102
        name = rac2

Archive Log를 저장하기 위해서는 파일을 저장할 수 있는 공유 영역이 있어야 하며, 이를 위해서 OCFS2를 구성해야 합니다.

각각의 노드에 파일로 저장할 경우, 파일을 공유할 수 없어서 노드 장애로 인한 복구가 어려울 수 있습니다.

먼저 클러스터의 이름과 연결될 노드 정보를 저장합니다.

OCFS2 환경 설정 및 활성화
/sbin/o2cb.init configure	# "y" 입력, "엔터" 입력, <클러스터명> 입력, "엔터" 입력, "엔터" 입력, "엔터" 입력, "엔터" 입력
/sbin/o2cb.init status
systemctl enable o2cb
systemctl enable ocfs2
[root@rac1 ~]# /sbin/o2cb.init configure
Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
<ENTER> without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [n]: y
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]: raccluster
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
checking debugfs...
Loading stack plugin "o2cb": OK
Loading filesystem "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Setting cluster stack "o2cb": OK
Registering O2CB cluster "raccluster": OK
Setting O2CB cluster timeouts : OK

[root@rac1 ~]# /sbin/o2cb.init status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster "raccluster": Online
  Heartbeat dead threshold: 31
  Network idle timeout: 30000
  Network keepalive delay: 2000
  Network reconnect delay: 2000
  Heartbeat mode: Local
Checking O2CB heartbeat: Not active
Debug file system at /sys/kernel/debug: mounted

[root@rac1 ~]# systemctl enable o2cb
Created symlink from /etc/systemd/system/multi-user.target.wants/o2cb.service to /usr/lib/systemd/system/o2cb.service.

[root@rac1 ~]# systemctl enable ocfs2
Created symlink from /etc/systemd/system/multi-user.target.wants/ocfs2.service to /usr/lib/systemd/system/ocfs2.service.

OCFS2를 사용하기 위한 환경 설정과 서비스 활성화를 수행합니다.

vi /etc/sysctl.conf 로 커널 파라미터 추가
# Define panic and panic_on_oops for cluster operation
kernel.panic = 30
kernel.panic_on_oops = 1

추가적으로 필요한 커널 파라미터를 /etc/sysctl.conf에 추가합니다.

마운트 경로 및 OCFS2 영역 생성
mkdir /FRA
mkfs.ocfs2 -L "fra" /dev/sdg2
[root@rac1 ~]# mkdir /FRA

[root@rac1 ~]# mkfs.ocfs2 -L "fra" /dev/sdg2
mkfs.ocfs2 1.8.6
Cluster stack: classic o2cb
Label: fra
Features: sparse extended-slotmap backup-super unwritten inline-data strict-journal-super xattr indexed-dirs refcount discontig-bg
Block size: 4096 (12 bits)
Cluster size: 4096 (12 bits)
Volume size: 5367660544 (1310464 clusters) (1310464 blocks)
Cluster groups: 41 (tail covers 20224 clusters, rest cover 32256 clusters)
Extent allocator size: 4194304 (1 groups)
Journal size: 67108864
Node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 2 block(s)
Formatting Journals: done
Growing extent allocator: done
Formatting slot map: done
Formatting quota files: done
Writing lost+found: done
mkfs.ocfs2 successful

OCFS2 영역을 마운트할 경로를 생성하고, 공유할 디스크 영역에 대한 포맷을 수행합니다.

vi /etc/fstab 으로 마운트 정보 저장
/dev/sdg2               /FRA            ocfs2   _netdev,defaults        0 0

포맷한 영역이 공유 경로에 마운트될 수 있도록 /etc/fstab에 정보를 저장합니다.

vi /etc/rc.d/rc.local 로 소유자 및 권한 설정
chown -R oracle:dba /FRA
chmod -R 770 /FRA

OCFS2 영역의 소유자와 권한 부여 작업을  /etc/rc.d/rc.local에 저장하여 재기동시에 설정이 유지될 수 있도록 합니다.

부팅시 자동 수행 활성화
chmod +x /etc/rc.d/rc.local
[root@rac1 ~]# chmod +x /etc/rc.d/rc.local

/etc/rc.d/rc.local 파일에 실행 모드를 추가하여 재기동시 작업이 수행되도록 활성화시킵니다.

3. 2번 노드 구성

A) 2번 노드 가상 머신 만들기

.

가상 머신 2번 노드를 만들기 위해 VirtualBox에서 ‘새로 만들기’를 클릭합니다.

가상 머신의 이름을 "rac2"로 정하고, 1번 노드와 동일한 경로를 머신 폴더로 지정합니다.

해당 디렉토리 아래에 rac2라는 디렉토리가 생성되고, 디렉토리 안에 가상 머신 관련 파일들이 저장됩니다.

OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택한 후 <다음>을 클릭합니다.

메모리 크기는 1번 노드와 동일하게 10240MB로 선택한 후 <다음>을 클릭합니다.

B) 1번 노드 VM 복제

2번 노드 가상 디스크 이미지 복제
vboxmanage clonemedium disk .\rac1.vdi ..\rac2\rac2.vdi
PS D:\VM\rac1> vboxmanage clonemedium disk .\rac1.vdi ..\rac2\rac2.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VDI'. UUID: 28c8742c-e783-4dca-b95c-5919bfd1257e

1번 노드가 정지된 상태에서 1번 노드의 복제본을 rac2 디렉토리에 저장합니다.

1번 노드의 UUID값과 다른 이미지가 생성되도록 반드시 VirtualBox에서 제공하는 방식으로 복제합니다.

하드 디스크는 '기존의 가상 하드 디스크 파일 사용'을 선택합니다.

그리고 방금 복제한 가상 하드 디스크 파일을 선택하기 위해 폴더 모양의 아이콘을 클릭합니다.

vboxmanage 명령으로 디스크를 복제했다면, Not Attatched 항목에 rac2.vdi 파일이 존재합니다.

만약 목록에 없다면 <추가> 버튼을 클릭하여 복제한 이미지를 찾아 불러오면 됩니다.

rac2.vdi 파일을 선택한 후 <선택> 버튼을 클릭합니다.

<만들기>를 클릭하면, 지금까지 선택한 환경에 맞게 가상 머신이 생성됩니다.

C) 2번 노드 VM 환경 설정

기본적으로 생성된 가상 머신을 RAC 환경에 맞게 변경해야 하므로, 2번 노드를 선택하고 <설정>을 클릭합니다.

부팅 순서에서 플로피 디스크를 해제합니다.

1번 노드와 동일한 순서로 공유 디스크를 추가시켜 줍니다.

반드시 같은 순서대로 SATA 컨트롤러에 연결시켜야 합니다.

오디오는 사용하지 않을 것이므로 '오디오 사용하기'를 해제합니다.

어댑터 1의 네트워크 설정을 1번 노드와 동일하게 구성합니다.

본인이 사용할 네트워크 환경에 맞게 설정하면 됩니다.

RAC 노드간의 통신을 위해 어댑터 2를 활성화시킵니다.

어댑터 2번 항목에 가서 '네트워크 어댑터 사용하기'를 체크하고, 1번 노드와 동일하게 '호스트 전용 어댑터'로 구성합니다.

1번 노드와 동일하게 공유 폴더 기능을 설정합니다.

공유 폴더를 설정할 경우, 호스트 서버에 저장된 설치 파일을 업로드 없이 바로 사용할 수 있습니다.

모든 구성이 완료되었으면 <확인>을 클릭해서 변경한 설정 값을 저장하고, 가상머신을 기동합니다.

D) 네트워크 설정 변경

네트워크 설정을 변경하기 위해 root 계정으로 접속한 후에 '프로그램' > '시스템 도구' > '설정'을 클릭합니다.

네트워크 항목으로 이동한 후에 각 이더넷 항목에 톱니바퀴 모양의 아이콘을 클릭하여 설정을 변경합니다.

참고로 VirtualBox를 기준으로 했을 떄, 이더넷 enp0s3은 Public 네트워크이고 enp0s8은 Private 네트워크의 인터페이스입니다.


네트워크 인터페이스 alias 변경
ip link set <old NIC alias> down
ip link set <old NIC alias> name <new NIC alias>
ip link set <new NIC alias> up
mv /etc/sysconfig/network-scripts/ifcfg-<old NIC alias> /etc/sysconfig/network-scripts/ifcfg-<new NIC alias>
sed -ire "s/NAME=\"<old NIC alias>\"/NAME=\"<new NIC alias>\"/" /etc/sysconfig/network-scripts/ifcfg-<new NIC alias>
sed -ire "s/DEVICE=\"<old NIC alias>\"/NAME=\"<new NIC alias>\"/" /etc/sysconfig/network-scripts/ifcfg-<new NIC alias>

만약 2번 VM의 NIC(Network Interface Card)의 alias가 1번 노드의 alias와 일치하지 않을 경우, grid 검증 과정에서 오류가 발생합니다.

좌측의 명령어로 alias를 1번과 동일하게 변경하여 해결할 수 있습니다.

추가적으로 NIC별 UUID 확인이 필요할 경우 다음의 명령어를 사용합니다.

NIC별 UUID 확인
nmcli connection



이더넷 enp0s3의 IPv4 항목에서 주소를 "10.0.1.102"(2번 노드의 Public 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.

리눅스 버전에 따라 네트워크 정보가 초기화되어 있을 수 있습니다.

그럴 때는 아래의 정보와 같이 입력합니다.

항목

입력값

비고

주소10.0.1.1021번 노드 Public IP 주소
네트마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능
게이트웨이10.0.1.1Public 망의 게이트웨이
네임서버(DNS)127.0.0.1dnsmasq를 사용할 경우 loopback IP 사용
검색 도메인localdomain로컬 도메인 정보 입력

이더넷 enp0s8의 IPv4 항목에서 주소를 "10.0.5.102"(2번 노드의 Private 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.

마찬가지로 네트워크 정보가 초기화 되었을 경우, 아래와 같이 입력합니다.

항목

입력값

비고

주소10.0.5.1011번 노드 Private IP 주소
네트마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능

각 이더넷 인터페이스를 껏다가 키면 변경된 설정이 적용됩니다.

또는 명령 프롬프트에서 아래 명령을 수행합니다.

root 유저로 네트워크 재기동 수행
systemctl restart network
2번 노드 IP 주소 변경하기 (옵션)
ip addr show
vi /etc/sysconfig/network-scripts/ifcfg-<public 인터페이스명>
# IPADDR=XXX.XXX.XXX.XXX 부분 변경
vi /etc/sysconfig/network-scripts/ifcfg-<private 인터페이스명>
# IPADDR=XXX.XXX.XXX.XXX 부분 변경
systemctl restart network
ip addr show
[root@rac1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:72:b8:d8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.101/24 brd 10.0.1.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe72:b8d8/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:fd:6d:a9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.5.101/24 brd 10.0.5.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::cd39:da9a:86ab:40a8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
... << 생략 >> ...
IPADDR=10.0.1.102
... << 생략 >> ...

[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
... << 생략 >> ...
IPADDR=10.0.5.102
... << 생략 >> ...

[root@rac1 ~]# systemctl restart network

[root@rac1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:72:b8:d8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.102/24 brd 10.0.1.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe72:b8d8/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:fd:6d:a9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.5.102/24 brd 10.0.5.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::cd39:da9a:86ab:40a8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

위의 GUI 방식보다 간단하게 CLI 모드에서 vi 편집기를 사용하여 IP를 수정할 수도 있습니다.

다만 Public Private 이더넷을 혼동하여 잘못 설정할  있으므로 주의가 필요합니다.

E) 호스트명 변경

2번 노드 hostname 변경
hostnamectl status
hostnamectl set-hostname rac2
hostnamectl status
[root@rac1 ~]# hostnamectl status
   Static hostname: rac1
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 5554cd8ab5124283be4afd144783a884
           Boot ID: dc642dbe4f44426f82469fbda8e61f27
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.6
       CPE OS Name: cpe:/o:oracle:linux:7:6:server
            Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64
      Architecture: x86-64
	  
[root@rac1 ~]# hostnamectl set-hostname rac2

[root@rac1 ~]# hostnamectl status
   Static hostname: rac2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 5554cd8ab5124283be4afd144783a884
           Boot ID: dc642dbe4f44426f82469fbda8e61f27
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.6
       CPE OS Name: cpe:/o:oracle:linux:7:6:server
            Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64
      Architecture: x86-64

2번 노드의 호스트 명은 CLI 모드에서 간단한 명령어로 변경할 수 있습니다.

2번 노드 CLI 모드로 변경
systemctl set-default multi-user.target
[root@rac2 ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

설치 과정 중에 리소스를 절약하기 위해 2번 노드는 텍스트 모드로 실행되도록 수정합니다.

F) 사용자 환경 변수 변경

vi ~oracle/.bash_profile로 2번 노드 oracle 프로필 변경
export ORACLE_HOSTNAME=rac2
export ORACLE_SID=racdb2
[root@rac2 ~]# cat ~oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac2             # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/11.2.0/grid
export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb2                # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '

oracle 유저의 환경 설정을 2번 노드에 맞게 수정합니다.

vi ~oracle/.bashrc 2번 노드의 alias 설정 변경
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH'

aslias 설정의 ORACLE_SID 정보도 2번 노드에 맞게 수정합니다.

VI. 11g Grid Infrastructure 설치

1. Grid Infrastructure 설치 및 클러스터 구성

2. Grid Infrastructure 설치 및 클러스터 구축

A) 사전 준비

1번 노드 cvuqdisk 패키지 설치 및 2번 노드로 전송
cd <Grid 설치 파일 압축 해제 경로>/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm
scp cvuqdisk-1.0.9-1.rpm root@rac2:/tmp
[root@rac1 ~]# cd /media/sf_oracle/11.2/grid/rpm

[root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm
준비 중...                         ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.9-1                 ################################# [100%]

[root@rac1 rpm]# scp cvuqdisk-1.0.9-1.rpm root@rac2:/tmp
The authenticity of host 'rac2 (10.0.1.102)' can't be established.
ECDSA key fingerprint is SHA256:OIsLbVfyE5WfHmGP9j2nnMA7DOOZ9OGF2vrFXKypYyQ.
ECDSA key fingerprint is MD5:a0:76:58:38:02:f0:e1:06:48:ee:dc:cf:e4:1b:4e:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,10.0.1.102' (ECDSA) to the list of known hosts.
root@rac2's password:
cvuqdisk-1.0.9-1.rpm                           100% 8288     5.4MB/s   00:00

root 계정으로 1번 노드에서 cvuqdisk 패키지를 설치한 후, 2번 노드로 파일을 전송합니다.

2번 노드 cvuqdisk 패키지 설치
cd /tmp
rpm -ivh cvuqdisk-1.0.9-1.rpm
[root@rac1 ~]# cd /tmp

[root@rac2 tmp]# rpm -ivh cvuqdisk-1.0.9-1.rpm
준비 중...                         ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.9-1                 ################################# [100%]

2번 노드에서도 root 계정으로 cvuqdisk 패키지를 설치합니다.

oracle 계정의 패스워드 없는 SSH 접속 환경 설정
cd <Grid 설치 파일 압축 해제 경로>/sshsetup
./sshUserSetup.sh -user oracle -hosts "<노드 1번 호스트명> <노드 2번 호스트명>" -noPromptPassphrase -advanced
[racdb1:/home/oracle]> cd /media/sf_oracle/11.2/grid/sshsetup

[racdb1:/media/sf_oracle/11.2/grid/sshsetup]> ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
The output of this script is also logged into /tmp/sshUserSetup_2020-04-14-08-21-52.log
Hosts are rac1 rac2
user is oracle
Platform:- Linux
Checking if the remote hosts are reachable
PING rac1 (10.0.1.101) 56(84) bytes of data.
64 bytes from rac1 (10.0.1.101): icmp_seq=1 ttl=64 time=0.016 ms
64 bytes from rac1 (10.0.1.101): icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from rac1 (10.0.1.101): icmp_seq=3 ttl=64 time=0.059 ms
64 bytes from rac1 (10.0.1.101): icmp_seq=4 ttl=64 time=0.043 ms
64 bytes from rac1 (10.0.1.101): icmp_seq=5 ttl=64 time=0.041 ms

--- rac1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.016/0.042/0.059/0.015 ms
PING rac2 (10.0.1.102) 56(84) bytes of data.
64 bytes from rac2 (10.0.1.102): icmp_seq=1 ttl=64 time=1.19 ms
64 bytes from rac2 (10.0.1.102): icmp_seq=2 ttl=64 time=0.910 ms
64 bytes from rac2 (10.0.1.102): icmp_seq=3 ttl=64 time=0.632 ms
64 bytes from rac2 (10.0.1.102): icmp_seq=4 ttl=64 time=0.472 ms
64 bytes from rac2 (10.0.1.102): icmp_seq=5 ttl=64 time=1.24 ms

--- rac2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 0.472/0.890/1.242/0.302 ms
Remote host reachability check succeeded.
The following hosts are reachable: rac1 rac2.
The following hosts are not reachable: .
All hosts are reachable. Proceeding further...
firsthost rac1
numhosts 2
The script will setup SSH connectivity from the host rac1 to all
the remote hosts. After the script is executed, the user can use SSH to run
commands on the remote hosts or copy files between this host rac1
and the remote hosts without being prompted for passwords or confirmations.

NOTE 1:
As part of the setup procedure, this script will use ssh and scp to copy
files between the local host and the remote hosts. Since the script does not
store passwords, you may be prompted for the passwords during the execution of
the script whenever ssh or scp is invoked.

NOTE 2:
AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY
AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEDGES TO THESE
directories.

Do you want to continue and let the script make the above mentioned changes (yes/no)?
yes

The user chose yes
User chose to skip passphrase related questions.
Creating .ssh directory on local host, if not present already
Creating authorized_keys file on local host
Changing permissions on authorized_keys to 644 on local host
Creating known_hosts file on local host
Changing permissions on known_hosts to 644 on local host
Creating config file on local host
If a config file exists already at /home/oracle/.ssh/config, it would be backed up to /home/oracle/.ssh/config.backup.
Removing old private/public keys on local host
Running SSH keygen on local host with empty passphrase
Generating public/private rsa key pair.
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:oo5TWhOhim7CCvd0H5yuzJJDoYaE+mTpdy3sRa++qk4 oracle@rac1
The key's randomart image is:
+---[RSA 1024]----+
|                 |
|    .            |
|.  . .           |
|... o            |
|+o o o. S        |
|= * =. + o       |
|+*.=E+..= .      |
|o==*=+++.o       |
|= .+=**=*.       |
+----[SHA256]-----+
Creating .ssh directory and setting permissions on remote host rac1
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac1. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac1.
Warning: Permanently added 'rac1,10.0.1.101' (ECDSA) to the list of known hosts.
oracle@rac1's password:
Done with creating .ssh directory and setting permissions on remote host rac1.
Creating .ssh directory and setting permissions on remote host rac2
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac2. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac2.
Warning: Permanently added 'rac2,10.0.1.102' (ECDSA) to the list of known hosts.
oracle@rac2's password:
Done with creating .ssh directory and setting permissions on remote host rac2.
Copying local host public key to the remote host rac1
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1.
oracle@rac1's password:
Done copying local host public key to the remote host rac1
Copying local host public key to the remote host rac2
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac2.
oracle@rac2's password:
Done copying local host public key to the remote host rac2
Creating keys on remote host rac1 if they do not exist already. This is required to setup SSH on host rac1.

Creating keys on remote host rac2 if they do not exist already. This is required to setup SSH on host rac2.
Generating public/private rsa key pair.
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BdQ3lUzzNX+T2wmlpkuCJjoNPzAWLbS57eDCfa06cb4 oracle@rac2
The key's randomart image is:
+---[RSA 1024]----+
|   .   .o.   +++.|
|  . +    .. o =o=|
|   = .    .. = o+|
|    =   ..  o . *|
|   B o oS. o   o.|
|. +.X.+   o .    |
| o =+* .   .     |
|  ..o.o          |
|   .oE.          |
+----[SHA256]-----+
Updating authorized_keys file on remote host rac1
Updating known_hosts file on remote host rac1
Updating authorized_keys file on remote host rac2
Updating known_hosts file on remote host rac2
cat: /home/oracle/.ssh/known_hosts.tmp: 그런 파일이나 디렉터리가 없습니다
cat: /home/oracle/.ssh/authorized_keys.tmp: 그런 파일이나 디렉터리가 없습니다
SSH setup is complete.

------------------------------------------------------------------------
Verifying SSH setup
===================
The script will now run the date command on the remote nodes using ssh
to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP,
THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR
PASSWORDS. If you see any output other than date or are prompted for the
password, ssh is not setup correctly and you will need to resolve the
issue and set up ssh again.
The possible causes for failure could be:
1. The server settings in /etc/ssh/sshd_config file do not allow ssh
for user oracle.
2. The server may have disabled public key based authentication.
3. The client public key on the server may be outdated.
4. ~oracle or ~oracle/.ssh on the remote host may not be owned by oracle.
5. User may not have passed -shared option for shared remote users or
may be passing the -shared option for non-shared remote users.
6. If there is output in addition to the date, but no password is asked,
it may be a security alert shown as part of company policy. Append the
additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file.
------------------------------------------------------------------------
--rac1:--
Running /usr/bin/ssh -x -l oracle rac1 date to verify SSH connectivity has been setup from local host to rac1.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
2020. 04. 14. (화) 08:22:21 KST
------------------------------------------------------------------------
--rac2:--
Running /usr/bin/ssh -x -l oracle rac2 date to verify SSH connectivity has been setup from local host to rac2.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
2020. 04. 14. (화) 08:22:21 KST
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac1
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac2
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file
------------------------------------------------------------------------
-Verification from complete-
SSH verification complete.

모든 노드에 대해 암호없는 SSH 접속 환경을 설정합니다.

스크립트 수행 시 암호를 뭍는 단계마다 각 노드의 oracle 계정 OS 암호를 입력합니다.

SSH 접속 확인
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
[racdb1:/home/oracle]> ssh rac1 date
2020. 04. 14. (화) 08:23:12 KST

[racdb1:/home/oracle]> ssh rac2 date
2020. 04. 14. (화) 08:23:15 KST

[racdb1:/home/oracle]> ssh rac1-priv date
The authenticity of host 'rac1-priv (10.0.5.101)' can't be established.
ECDSA key fingerprint is SHA256:OIsLbVfyE5WfHmGP9j2nnMA7DOOZ9OGF2vrFXKypYyQ.
ECDSA key fingerprint is MD5:a0:76:58:38:02:f0:e1:06:48:ee:dc:cf:e4:1b:4e:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac1-priv,10.0.5.101' (ECDSA) to the list of known hosts.
2020. 04. 14. (화) 08:23:21 KST

[racdb1:/home/oracle]> ssh rac2-priv date
The authenticity of host 'rac2-priv (10.0.5.102)' can't be established.
ECDSA key fingerprint is SHA256:OIsLbVfyE5WfHmGP9j2nnMA7DOOZ9OGF2vrFXKypYyQ.
ECDSA key fingerprint is MD5:a0:76:58:38:02:f0:e1:06:48:ee:dc:cf:e4:1b:4e:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2-priv,10.0.5.102' (ECDSA) to the list of known hosts.
2020. 04. 14. (화) 08:23:26 KST
[racdb2:/home/oracle]> ssh rac1 date
2020. 04. 14. (화) 08:23:30 KST

[racdb2:/home/oracle]> ssh rac2 date
2020. 04. 14. (화) 08:23:32 KST

[racdb2:/home/oracle]> ssh rac1-priv date
The authenticity of host 'rac1-priv (10.0.5.101)' can't be established.
ECDSA key fingerprint is SHA256:OIsLbVfyE5WfHmGP9j2nnMA7DOOZ9OGF2vrFXKypYyQ.
ECDSA key fingerprint is MD5:a0:76:58:38:02:f0:e1:06:48:ee:dc:cf:e4:1b:4e:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac1-priv,10.0.5.101' (ECDSA) to the list of known hosts.
2020. 04. 14. (화) 08:23:40 KST

[racdb2:/home/oracle]> ssh rac2-priv date
The authenticity of host 'rac2-priv (10.0.5.102)' can't be established.
ECDSA key fingerprint is SHA256:OIsLbVfyE5WfHmGP9j2nnMA7DOOZ9OGF2vrFXKypYyQ.
ECDSA key fingerprint is MD5:a0:76:58:38:02:f0:e1:06:48:ee:dc:cf:e4:1b:4e:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2-priv,10.0.5.102' (ECDSA) to the list of known hosts.
2020. 04. 14. (화) 08:23:45 KST

암호 없는 SSH 접속이 정상적으로 설정되었는지, 모든 노드에서 테스트합니다.

사전 환경 검증 스크립트 실행
grid_env
cd <Grid 설치 파일 압축 해제 경로>
./runcluvfy.sh stage -pre crsinst -n <노드 1번 호스트명>,<노드 2번 호스트명> -fixup -verbose
[+ASM1:/home/oracle]> cd /media/sf_oracle/11.2/grid

[+ASM1:/media/sf_oracle/11.2/grid]> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

클러스터 서비스 설정에 대한 사전 확인 수행

노드 연결 가능성을 검사하는 중...

검사: "rac1" 노드에서의 노드 연결 가능성
  대상 노드                                 연결 가능?
  ------------------------------------  ------------------------
  rac2                                  예
  rac1                                  예
결과: "rac1" 노드에서 노드 연결 가능성 검사를 성공했습니다.


사용자 equivalence를 검사하는 중...

검사: 사용자 "oracle"에 대한 사용자 equivalence
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공
결과: 사용자 "oracle"에 대한 사용자 equivalence 검사를 성공했습니다.

노드 연결을 검사하는 중...

호스트 구성 파일 확인 중...
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공

호스트 구성 파일 확인을 성공했습니다.


"rac2" 노드에 대한 인터페이스 정보
 이름     IP 주소           서브넷             게이트웨이           Def. 게이트웨이      HW 주소             MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 10.0.1.102      10.0.1.0        0.0.0.0         10.0.1.1        08:00:27:6E:44:4D 1500
 enp0s8 10.0.5.102      10.0.5.0        0.0.0.0         10.0.1.1        08:00:27:BE:10:55 1500


"rac1" 노드에 대한 인터페이스 정보
 이름     IP 주소           서브넷             게이트웨이           Def. 게이트웨이      HW 주소             MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 10.0.1.101      10.0.1.0        0.0.0.0         10.0.1.1        08:00:27:39:AE:EE 1500
 enp0s8 10.0.5.101      10.0.5.0        0.0.0.0         10.0.1.1        08:00:27:D3:1A:94 1500


검사: "10.0.1.0" 서브넷에 대한 노드 연결
  소스                              대상                              접속됨?    
  ------------------------------  ------------------------------  ----------------
  rac2[10.0.1.102]                rac1[10.0.1.101]                예             
결과: rac2,rac1개의 노드를 사용하는 "10.0.1.0" 서브넷에 대한 노드 연결을 성공했습니다.


검사: "10.0.1.0" 서브넷의 TCP 접속
  소스                              대상                              접속됨?    
  ------------------------------  ------------------------------  ----------------
  rac1:10.0.1.101                 rac2:10.0.1.102                 성공           
결과: "10.0.1.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다.


검사: "10.0.5.0" 서브넷에 대한 노드 연결
  소스                              대상                              접속됨?    
  ------------------------------  ------------------------------  ----------------
  rac2[10.0.5.102]                rac1[10.0.5.101]                예             
결과: rac2,rac1개의 노드를 사용하는 "10.0.5.0" 서브넷에 대한 노드 연결을 성공했습니다.


검사: "10.0.5.0" 서브넷의 TCP 접속
  소스                              대상                              접속됨?    
  ------------------------------  ------------------------------  ----------------
  rac1:10.0.5.101                 rac2:10.0.5.102                 성공           
결과: "10.0.5.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다.


"10.0.1.0" 서브넷에서 발견된 VIP 후보로 적합한 인터페이스:
rac2 enp0s3:10.0.1.102
rac1 enp0s3:10.0.1.101

"10.0.5.0" 서브넷에서 발견된 전용 상호 접속 후보로 적합한 인터페이스:
rac2 enp0s8:10.0.5.102
rac1 enp0s8:10.0.5.101
서브넷 마스크 일관성 확인 중...
"10.0.1.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다.
"10.0.5.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다.
서브넷 마스크 일관성 검사를 성공했습니다.

결과: 노드 연결 검사를 성공했습니다.

멀티캐스트 통신을 검사하는 중...

멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.1.0" 서브넷을 검사하는 중...
멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.1.0" 서브넷 검사를 성공했습니다.

멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.5.0" 서브넷을 검사하는 중...
멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.5.0" 서브넷 검사를 성공했습니다.

멀티캐스트 통신 검사를 성공했습니다.

ASMLib 구성을 검사하는 중입니다.
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공
결과: ASMLib 구성 검사를 성공했습니다.

검사: 총 메모리
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          9.7635GB (1.0237792E7KB)  1.5GB (1572864.0KB)       성공
  rac1          9.7635GB (1.0237792E7KB)  1.5GB (1572864.0KB)       성공
결과: 총 메모리 검사를 성공했습니다.

검사: 사용 가능한 메모리
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          9.5567GB (1.0020956E7KB)  50MB (51200.0KB)          성공
  rac1          9.232GB (9680436.0KB)     50MB (51200.0KB)          성공
결과: 사용 가능한 메모리 검사를 성공했습니다.

검사: 교체 공간
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          10GB (1.0485756E7KB)      9.7635GB (1.0237792E7KB)  성공
  rac1          10GB (1.0485756E7KB)      9.7635GB (1.0237792E7KB)  성공
결과: 교체 공간 검사를 성공했습니다.

검사: "rac2:/tmp"에 대한 여유 디스크 공간
  경로                노드 이름         마운트 위치        사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              rac2          /             89.5264GB     1GB           성공 
결과: "rac2:/tmp"에 대한 여유 디스크 공간 검사를 성공했습니다.

검사: "rac1:/tmp"에 대한 여유 디스크 공간
  경로                노드 이름         마운트 위치        사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              rac1          /             89.4643GB     1GB           성공 
결과: "rac1:/tmp"에 대한 여유 디스크 공간 검사를 성공했습니다.

검사: "oracle"에 대한 사용자 존재 여부
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함(54321)
  rac1          성공                        존재함(54321)

UID 값이 54321인 다중 사용자를 검사하는 중
결과: UID 값이 54321인 다중 사용자 검사를 성공했습니다.
결과: "oracle"에 대한 사용자 존재 여부 검사를 성공했습니다.

검사: "oinstall"에 대한 그룹 존재 여부
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함
  rac1          성공                        존재함
결과: "oinstall"에 대한 그룹 존재 여부 검사를 성공했습니다.

검사: "dba"에 대한 그룹 존재 여부
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함
  rac1          성공                        존재함
결과: "dba"에 대한 그룹 존재 여부 검사를 성공했습니다.

검사: "oinstall" 그룹[기본]의 사용자 "oracle"에 대한 멤버쉽
  노드 이름             사용자가 존재함      그룹이 존재함       그룹의 사용자       기본            상태
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              예             예             예             예             성공
  rac1              예             예             예             예             성공
결과: "oinstall" 그룹[기본]의 사용자 "oracle"에 대한 멤버쉽 검사를 성공했습니다.

검사: "dba" 그룹의 사용자 "oracle"에 대한 멤버쉽
  노드 이름             사용자가 존재함      그룹이 존재함       그룹의 사용자       상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              예             예             예             성공            
  rac1              예             예             예             성공            
결과: "dba" 그룹의 사용자 "oracle"에 대한 멤버쉽 검사를 성공했습니다.

검사: 실행 레벨
  노드 이름         실행 레벨                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          3                         3,5                       성공
  rac1          5                         3,5                       성공
결과: 실행 레벨 검사를 성공했습니다.

검사: "최대 열린 파일 기술자"에 대한 완전 제한
  노드 이름             유형            사용 가능         필수            상태   
  ----------------  ------------  ------------  ------------  ----------------
  rac2              완전            65536         65536         성공             
  rac1              완전            65536         65536         성공             
결과: "최대 열린 파일 기술자"에 대한 완전 제한 검사를 성공했습니다.

검사: "최대 열린 파일 기술자"에 대한 부분 제한
  노드 이름             유형            사용 가능         필수            상태   
  ----------------  ------------  ------------  ------------  ----------------
  rac2              부분            1024          1024          성공             
  rac1              부분            65536         1024          성공             
결과: "최대 열린 파일 기술자"에 대한 부분 제한 검사를 성공했습니다.

검사: "최대 사용자 프로세스"에 대한 완전 제한
  노드 이름             유형            사용 가능         필수            상태   
  ----------------  ------------  ------------  ------------  ----------------
  rac2              완전            16384         16384         성공             
  rac1              완전            16384         16384         성공             
결과: "최대 사용자 프로세스"에 대한 완전 제한 검사를 성공했습니다.

검사: "최대 사용자 프로세스"에 대한 부분 제한
  노드 이름             유형            사용 가능         필수            상태   
  ----------------  ------------  ------------  ------------  ----------------
  rac2              부분            16384         2047          성공             
  rac1              부분            16384         2047          성공             
결과: "최대 사용자 프로세스"에 대한 부분 제한 검사를 성공했습니다.

검사: 시스템 구조
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          x86_64                    x86_64                    성공
  rac1          x86_64                    x86_64                    성공
결과: 시스템 구조 검사를 성공했습니다.

검사: 커널 버전
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          4.1.12-112.16.4.el7uek.x86_64  2.6.9                     성공    
  rac1          4.1.12-112.16.4.el7uek.x86_64  2.6.9                     성공    
결과: 커널 버전 검사를 성공했습니다.

검사: "semmsl"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              250           250           250           성공
  rac1              250           250           250           성공
결과: "semmsl"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "semmns"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              32000         32000         32000         성공
  rac1              32000         32000         32000         성공
결과: "semmns"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "semopm"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              100           100           100           성공
  rac1              100           100           100           성공
결과: "semopm"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "semmni"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              128           128           128           성공
  rac1              128           128           128           성공
결과: "semmni"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "shmmax"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              4398046511104  4398046511104  4294967295    성공             
  rac1              4398046511104  4398046511104  4294967295    성공             
결과: "shmmax"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "shmmni"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              4096          4096          4096          성공
  rac1              4096          4096          4096          성공
결과: "shmmni"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "shmall"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              1073741824    1073741824    2097152       성공
  rac1              1073741824    1073741824    2097152       성공
결과: "shmall"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "file-max"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              6815744       6815744       6815744       성공
  rac1              6815744       6815744       6815744       성공
결과: "file-max"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "ip_local_port_range"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              between 9000.0 & 65500.0  between 9000.0 & 65500.0  between 9000.0 & 65500.0  성공
  rac1              between 9000.0 & 65500.0  between 9000.0 & 65500.0  between 9000.0 & 65500.0  성공
결과: "ip_local_port_range"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "rmem_default"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              262144        262144        262144        성공
  rac1              262144        262144        262144        성공
결과: "rmem_default"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "rmem_max"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              4194304       4194304       4194304       성공
  rac1              4194304       4194304       4194304       성공
결과: "rmem_max"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "wmem_default"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              262144        262144        262144        성공
  rac1              262144        262144        262144        성공
결과: "wmem_default"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "wmem_max"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              1048576       1048576       1048576       성공
  rac1              1048576       1048576       1048576       성공
결과: "wmem_max"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "aio-max-nr"에 대한 커널 매개변수
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              1048576       1048576       1048576       성공
  rac1              1048576       1048576       1048576       성공
결과: "aio-max-nr"에 대한 커널 매개변수 검사를 성공했습니다.

검사: "ocfs2-tools"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          ocfs2-tools-1.8.6-9.el7   ocfs2-tools-1.2.7         성공
  rac1          ocfs2-tools-1.8.6-9.el7   ocfs2-tools-1.2.7         성공
결과: "ocfs2-tools"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "make"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          make-3.82-23.el7          make-3.80                 성공
  rac1          make-3.82-23.el7          make-3.80                 성공
결과: "make"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "binutils"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          binutils-2.27-27.base.el7  binutils-2.15.92.0.2      성공
  rac1          binutils-2.27-27.base.el7  binutils-2.15.92.0.2      성공
결과: "binutils"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "gcc(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          gcc(x86_64)-4.8.5-28.0.1.el7  gcc(x86_64)-3.4.6         성공     
  rac1          gcc(x86_64)-4.8.5-28.0.1.el7  gcc(x86_64)-3.4.6         성공     
결과: "gcc(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "libaio(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.105    성공    
  rac1          libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.105    성공    
결과: "libaio(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "glibc(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc(x86_64)-2.17-222.el7  glibc(x86_64)-2.3.4-2.41  성공       
  rac1          glibc(x86_64)-2.17-222.el7  glibc(x86_64)-2.3.4-2.41  성공       
결과: "glibc(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "compat-libstdc++-33(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          compat-libstdc++-33(x86_64)-3.2.3-72.el7  compat-libstdc++-33(x86_64)-3.2.3  성공
  rac1          compat-libstdc++-33(x86_64)-3.2.3-72.el7  compat-libstdc++-33(x86_64)-3.2.3  성공
결과: "compat-libstdc++-33(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "elfutils-libelf(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          elfutils-libelf(x86_64)-0.170-4.el7  elfutils-libelf(x86_64)-0.97  성공
  rac1          elfutils-libelf(x86_64)-0.170-4.el7  elfutils-libelf(x86_64)-0.97  성공
결과: "elfutils-libelf(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "elfutils-libelf-devel"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          elfutils-libelf-devel-0.170-4.el7  elfutils-libelf-devel-0.97  성공
  rac1          elfutils-libelf-devel-0.170-4.el7  elfutils-libelf-devel-0.97  성공
결과: "elfutils-libelf-devel"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "glibc-common"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc-common-2.17-222.el7  glibc-common-2.3.4        성공
  rac1          glibc-common-2.17-222.el7  glibc-common-2.3.4        성공
결과: "glibc-common"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "glibc-devel(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc-devel(x86_64)-2.17-222.el7  glibc-devel(x86_64)-2.3.4  성공
  rac1          glibc-devel(x86_64)-2.17-222.el7  glibc-devel(x86_64)-2.3.4  성공
결과: "glibc-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "glibc-headers"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc-headers-2.17-222.el7  glibc-headers-2.3.4       성공       
  rac1          glibc-headers-2.17-222.el7  glibc-headers-2.3.4       성공       
결과: "glibc-headers"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "gcc-c++(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          gcc-c++(x86_64)-4.8.5-28.0.1.el7  gcc-c++(x86_64)-3.4.6     성공 
  rac1          gcc-c++(x86_64)-4.8.5-28.0.1.el7  gcc-c++(x86_64)-3.4.6     성공 
결과: "gcc-c++(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "libaio-devel(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.105  성공
  rac1          libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.105  성공
결과: "libaio-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "libgcc(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libgcc(x86_64)-4.8.5-28.0.1.el7  libgcc(x86_64)-3.4.6      성공  
  rac1          libgcc(x86_64)-4.8.5-28.0.1.el7  libgcc(x86_64)-3.4.6      성공  
결과: "libgcc(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "libstdc++(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libstdc++(x86_64)-4.8.5-28.0.1.el7  libstdc++(x86_64)-3.4.6   성공
  rac1          libstdc++(x86_64)-4.8.5-28.0.1.el7  libstdc++(x86_64)-3.4.6   성공
결과: "libstdc++(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "libstdc++-devel(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libstdc++-devel(x86_64)-4.8.5-28.0.1.el7  libstdc++-devel(x86_64)-3.4.6  성공
  rac1          libstdc++-devel(x86_64)-4.8.5-28.0.1.el7  libstdc++-devel(x86_64)-3.4.6  성공
결과: "libstdc++-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "sysstat"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          sysstat-10.1.5-13.el7     sysstat-5.0.5             성공
  rac1          sysstat-10.1.5-13.el7     sysstat-5.0.5             성공
결과: "sysstat"에 대한 패키지 존재 여부 검사를 성공했습니다.

검사: "pdksh"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          누락됨                       pdksh-5.2.14              실패      
  rac1          누락됨                       pdksh-5.2.14              실패      
결과: "pdksh"에 대한 패키지 존재 여부 검사를 실패했습니다.

검사: "expat(x86_64)"에 대한 패키지 존재 여부
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          expat(x86_64)-2.1.0-10.el7_3  expat(x86_64)-1.95.7      성공     
  rac1          expat(x86_64)-2.1.0-10.el7_3  expat(x86_64)-1.95.7      성공     
결과: "expat(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다.

UID 값이 0인 다중 사용자를 검사하는 중
결과: UID 값이 0인 다중 사용자 검사를 성공했습니다.

검사: 현재 그룹 ID
결과: 현재 그룹 ID 검사를 성공했습니다.

루트 사용자의 기본 그룹 일관성 검사를 시작하는 중입니다.
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공

루트 사용자의 기본 그룹에 대한 일관성 검사를 성공했습니다.

NTP(Network Time Protocol)를 사용하여 시계 동기화 검사를 시작하는 중...

NTP 구성 파일 검사가 시작되었습니다.
노드에서 NTP(Network Time Protocol) 구성 파일을 찾을 수 없습니다. 클러스터 노드에 대한 시간 동기화에 NTP 대신 Oracle CTSS(Cluster Time Synchronization Service)를 사용할 수 있습니다.
실행 중인 NTP 데몬 또는 서비스가 없는 것으로 확인되었습니다.

결과: NTP(Network Time Protocol)를 사용한 시계 동기화 검사를 성공했습니다.

코어 파일 이름 패턴 일관성을 검사하는 중...
코어 파일 이름 패턴 일관성 검사를 성공했습니다.

사용자 "oracle"이(가) "root" 그룹에 속해 있지 않은지 확인하는 중입니다.
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재하지 않음
  rac1          성공                        존재하지 않음
결과: 사용자 "oracle"이(가) "root" 그룹에 속해 있지 않습니다. 검사를 성공했습니다.

기본 사용자 파일 생성 마스크 검사
  노드 이름         사용 가능                     필수                        설명
  ------------  ------------------------  ------------------------  ----------
  rac2          0022                      0022                      성공
  rac1          0022                      0022                      성공
결과: 기본 사용자 파일 생성 마스크 검사를 성공했습니다.
노드에서 "/etc/resolv.conf" 파일의 일관성을 검사하는 중

"/etc/resolv.conf" 파일에서 'domain' 및 'search' 항목이 하나씩만 정의되어 있는지 검사하는 중
"/etc/resolv.conf" 파일에 'domain' 항목과 'search' 항목이 모두 정의되지 않았습니다.
"/etc/resolv.conf" 파일의 'domain' 항목이 노드에서 일치하는지 여부를 검사하는 중...
"/etc/resolv.conf" 파일의 'domain' 항목이 노드에서 일치합니다.
"/etc/resolv.conf" 파일의 'search' 항목이 노드에서 일치하는지 여부를 검사하는 중...
"/etc/resolv.conf" 파일의 'search' 항목이 노드에서 일치합니다.
"/etc/resolv.conf" 파일에서 'search' 항목이 하나만 정의되었는지 검사하는 중
모든 노드의 "/etc/resolv.conf" 파일에 'search' 항목이 하나만 정의되었습니다.
모든 노드에서 'search' 항목이 "rac2" 노드에서 발견된 것과 동일한 "localdomain"인지 검사하는 중
클러스터의 모든 노드에서 'search' 값이 동일합니다.
연결할 수 없는 노드에 대한 DNS 응답 시간을 검사하는 중
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공
모든 노드에서 연결할 수 없는 노드에 대한 DNS 응답 시간이 허용되는 제한 범위에 속합니다.

"/etc/resolv.conf" 파일이 노드에서 일치합니다.

검사: 시간대 일관성
결과: 시간대 일관성 검사를 성공했습니다.

모든 노드에서 클러스터 서비스 설정에 대한 사전 확인을 실패했습니다.


B) response 파일 생성

grid_install.rsp 파일 생성 (주요 파라미터 요약)
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0
ORACLE_HOSTNAME=rac1
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,ko
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/11.2.0/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=rac-scan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=rac
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip
oracle.install.crs.config.networkInterfaceList=enp0s3:10.0.1.0:1,enp0s8:10.0.5.0:2
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL
oracle.install.crs.config.useIPMI=false
oracle.install.asm.SYSASMPassword=oracle_4U
oracle.install.asm.diskGroup.name=DATA
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=1
oracle.install.asm.diskGroup.disks=/dev/raw/raw6
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw*
oracle.install.asm.monitorPassword=oracle_4U
oracle.install.asm.upgradeASM=false
oracle.installer.autoupdates.option=SKIP_UPDATES
[+ASM1:/home/oracle]> cat > ~/grid_install.rsp
###############################################################################
## Copyright(c) Oracle Corporation 1998,2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.                                                                   ##
##                                                                           ##
## IMPORTANT NOTE: This file contains plain text passwords and               ##
## should be secured to have read permission only by oracle user             ##
## or db administrator who owns this installation.                           ##
##                                                                           ##
###############################################################################

###############################################################################
##                                                                           ##
## Instructions to fill this response file                                   ##
## To install and configure 'Grid Infrastructure for Cluster'                ##
##  - Fill out sections A,B,C,D,E,F and G                                    ##
##  - Fill out section G if OCR and voting disk should be placed on ASM      ##
##                                                                           ##
## To install and configure 'Grid Infrastructure for Standalone server'      ##
##  - Fill out sections A,B and G                                           ##
##                                                                           ##
## To install software for 'Grid Infrastructure'                             ##
##  - Fill out sections A,B and C                                           ##
##                                                                           ##
## To upgrade clusterware and/or Automatic storage management of earlier     ##
## releases                                                                  ##
##  - Fill out sections A,B,C,D and H                                       ##
##                                                                           ##
###############################################################################
#------------------------------------------------------------------------------
# Do not change the following system generated value.
#------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0

###############################################################################
#                                                                             #
#                          SECTION A - BASIC                                  #
#                                                                             #
###############################################################################

#-------------------------------------------------------------------------------
# Specify the hostname of the system as set during the install. It can be used
# to force the installation to use an alternative hostname rather than using the
# first hostname found on the system. (e.g., for systems with multiple hostnames
# and network interfaces)
#-------------------------------------------------------------------------------
ORACLE_HOSTNAME=rac1

#-------------------------------------------------------------------------------
# Specify the location which holds the inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory

#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.
#
# en   : English                  ja   : Japanese
# fr   : French                   ko   : Korean
# ar   : Arabic                   es   : Latin American Spanish
# bn   : Bengali                  lv   : Latvian
# pt_BR: Brazilian Portuguese     lt   : Lithuanian
# bg   : Bulgarian                ms   : Malay
# fr_CA: Canadian French          es_MX: Mexican Spanish
# ca   : Catalan                  no   : Norwegian
# hr   : Croatian                 pl   : Polish
# cs   : Czech                    pt   : Portuguese
# da   : Danish                   ro   : Romanian
# nl   : Dutch                    ru   : Russian
# ar_EG: Egyptian                 zh_CN: Simplified Chinese
# en_GB: English (Great Britain)  sk   : Slovak
# et   : Estonian                 sl   : Slovenian
# fi   : Finnish                  es_ES: Spanish
# de   : German                   sv   : Swedish
# el   : Greek                    th   : Thai
# iw   : Hebrew                   zh_TW: Traditional Chinese
# hu   : Hungarian                tr   : Turkish
# is   : Icelandic                uk   : Ukrainian
# in   : Indonesian               vi   : Vietnamese
# it   : Italian
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
#-------------------------------------------------------------------------------
SELECTED_LANGUAGES=en,ko

#-------------------------------------------------------------------------------
# Specify the installation option.
# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY
#   - CRS_CONFIG : To configure Grid Infrastructure for cluster
#   - HA_CONFIG  : To configure Grid Infrastructure for stand alone server
#   - UPGRADE    : To upgrade clusterware software of earlier release
#   - CRS_SWONLY : To install clusterware files only (can be configured for cluster
#                or stand alone server later)
#-------------------------------------------------------------------------------
oracle.install.option=CRS_CONFIG

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#-------------------------------------------------------------------------------
ORACLE_BASE=/u01/app/oracle

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Home.
#-------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/11.2.0/grid

################################################################################
#                                                                              #
#                              SECTION B - GROUPS                              #
#                                                                              #
#   The following three groups need to be assigned for all GI installations.  #
#   OSDBA and OSOPER can be the same or different.  OSASM must be different    #
#   than the other two.                                                        #
#   The value to be specified for OSDBA, OSOPER and OSASM group is only for    #
#   Unix based Operating System.                                               #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
#-------------------------------------------------------------------------------
oracle.install.asm.OSDBA=asmdba

#-------------------------------------------------------------------------------
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The value to be specified for OSOPER group is optional.
#-------------------------------------------------------------------------------
oracle.install.asm.OSOPER=asmoper

#-------------------------------------------------------------------------------
# The OSASM_GROUP is the OS group which is to be granted OSASM privileges. This
# must be different than the previous two.
#-------------------------------------------------------------------------------
oracle.install.asm.OSASM=asmadmin

################################################################################
#                                                                              #
#                           SECTION C - SCAN                                   #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify a name for SCAN
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.scanName=rac-scan

#-------------------------------------------------------------------------------
# Specify a unused port number for SCAN service
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.scanPort=1521

################################################################################
#                                                                              #
#                           SECTION D - CLUSTER & GNS                          #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify a name for the Cluster you are creating.
#
# The maximum length allowed for clustername is 15 characters. The name can be
# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-)
# and underscore(_).
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterName=rac

#-------------------------------------------------------------------------------
# Specify 'true' if you would like to configure Grid Naming Service(GNS), else
# specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.configureGNS=false

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure GNS
# Specify the GNS subdomain and an unused virtual hostname for GNS service
# Additionally you may also specify if VIPs have to be autoconfigured
#
# Value for oracle.install.crs.config.autoConfigureClusterNodeVIP should be true
# if GNS is being configured(oracle.install.crs.config.gpnp.configureGNS), false
# otherwise.
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.autoConfigureClusterNodeVIP=false

#-------------------------------------------------------------------------------
# Specify a list of public node names, and virtual hostnames that have to be
# part of the cluster.
#
# The list should a comma-separated list of nodes.  Each entry in the list
# should be a colon-separated string that contains 2 fields.
#
# The fields should be ordered as follows:
# 1. The first field is for public node name.
# 2. The second field is for virtual host name
#    (specify as AUTO if you have chosen 'auto configure for VIP'
#     i.e. autoConfigureClusterNodeVIP=true)
#
# Example: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip

#-------------------------------------------------------------------------------
# The value should be a comma separated strings where each string is as shown below
# InterfaceName:SubnetAddress:InterfaceType
# where InterfaceType can be either "1", "2", or "3"
# (1 indicates public, 2 indicates private, and 3 indicates the interface is not used)
#
# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3
#
#-------------------------------------------------------------------------------
oracle.install.crs.config.networkInterfaceList=enp0s3:10.0.1.0:1,enp0s8:10.0.5.0:2

################################################################################
#                                                                              #
#                              SECTION E - STORAGE                             #
#                                                                              #
################################################################################

#-------------------------------------------------------------------------------
# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting
# Disks files
#   - ASM_STORAGE
#   - FILE_SYSTEM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.crs.config.storageOption=ASM_STORAGE

#-------------------------------------------------------------------------------
# THIS PROPERTY NEEDS TO BE FILLED ONLY IN CASE OF WINDOWS INSTALL.
# Specify a comma separated list of strings where each string is as shown below:
# Disk Number:Partition Number:Drive Letter:Format Option
# The Disk Number and Partition Number should refer to the location which has to
# be formatted. The Drive Letter should refer to the drive letter that has to be
# assigned. "Format Option" can be either of the following -
#   - SOFTWARE : Format to place software binaries.
#   - DATA     : Format to place the OCR/VDSK files.
#
# For example: 1:2:P:DATA,1:3:Q:SOFTWARE,1:4:R:DATA,1:5:S:DATA
#
#-------------------------------------------------------------------------------
oracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping=

#-------------------------------------------------------------------------------
# These properties are applicable only if FILE_SYSTEM_STORAGE is chosen for
# storing OCR and voting disk
# Specify the location(s) and redundancy for OCR and voting disks
# In case of windows, mention the drive location that is specified to be
# formatted for DATA in the above property.
# Multiple locations can be specified, separated by commas
# Redundancy can be one of these:
#     EXTERNAL - one(1) location should be specified for OCR and voting disk
#     NORMAL - three(3) locations should be specified for OCR and voting disk
# Example:
#     For Unix based Operating System:
#     oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=/oradbocfs/storage/vdsk1,/oradbocfs/storage/vdsk2,/oradbocfs/storage/vdsk3
#     oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=/oradbocfs/storage/ocr1,/oradbocfs/storage/ocr2,/oradbocfs/storage/ocr3
#     For Windows based Operating System:
#     oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=P:\vdsk1,R:\vdsk2,S:\vdsk3
#     oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=P:\ocr1,R:\ocr2,S:\ocr3
#-------------------------------------------------------------------------------
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL

################################################################################
#                                                                              #
#                               SECTION F - IPMI                               #
#                                                                              #
################################################################################

#-------------------------------------------------------------------------------
# Specify 'true' if you would like to configure Intelligent Power Management interface
# (IPMI), else specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.useIPMI=false

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure IPMI
# i.e. oracle.install.crs.config.useIPMI=true
# Specify the username and password for using IPMI service
#-------------------------------------------------------------------------------
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=

################################################################################
#                                                                              #
#                                SECTION G - ASM                               #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify a password for SYSASM user of the ASM instance
#-------------------------------------------------------------------------------
oracle.install.asm.SYSASMPassword=oracle_4U

#-------------------------------------------------------------------------------
# The ASM DiskGroup
#
# Example: oracle.install.asm.diskGroup.name=data
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.name=DATA

#-------------------------------------------------------------------------------
# Redundancy level to be used by ASM.
# It can be one of the following
#   - NORMAL
#   - HIGH
#   - EXTERNAL
# Example: oracle.install.asm.diskGroup.redundancy=NORMAL
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.redundancy=EXTERNAL

#-------------------------------------------------------------------------------
# Allocation unit size to be used by ASM.
# It can be one of the following values
#   - 1
#   - 2
#   - 4
#   - 8
#   - 16
#   - 32
#   - 64
# Example: oracle.install.asm.diskGroup.AUSize=4
# size unit is MB
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.AUSize=1

#-------------------------------------------------------------------------------
# List of disks to create a ASM DiskGroup
#
# Example:
#     For Unix based Operating System:
#     oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2
#     For Windows based Operating System:
#     oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.disks=/dev/raw/raw6

#-------------------------------------------------------------------------------
# The disk discovery string to be used to discover the disks used create a ASM DiskGroup
#
# Example:
#     For Unix based Operating System:
#     oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/*
#     For Windows based Operating System:
#     oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK*
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw*

#-------------------------------------------------------------------------------
# oracle.install.asm.monitorPassword=password
#-------------------------------------------------------------------------------
oracle.install.asm.monitorPassword=oracle_4U

################################################################################
#                                                                              #
#                             SECTION H - UPGRADE                              #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify nodes for Upgrade.
# For upgrade on Windows, installer overrides the value of this parameter to include
# all the nodes of the cluster. However, the stack is upgraded one node at a time.
# Hence, this parameter may be left blank for Windows.
# Example: oracle.install.crs.upgrade.clusterNodes=node1,node2
#-------------------------------------------------------------------------------
oracle.install.crs.upgrade.clusterNodes=

#-------------------------------------------------------------------------------
# For RAC-ASM only. oracle.install.asm.upgradeASM=true/false
# Value should be 'true' while upgrading Cluster ASM of version 11gR2(11.2.0.1.0) and above
#-------------------------------------------------------------------------------
oracle.install.asm.upgradeASM=false
#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=SKIP_UPDATES

#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
#------------------------------------------------------------------------------
oracle.installer.autoupdates.downloadUpdatesLoc=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges
# to be used for software updates.
#
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25
#------------------------------------------------------------------------------
PROXY_PORT=
#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username
#------------------------------------------------------------------------------
PROXY_USER=
#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password
#------------------------------------------------------------------------------
PROXY_PWD=

#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=
^C


C) 설치

Grid 설치 수행
grid_env
cd <Grid 설치 파일 압축 해제 경로>
./runInstaller -ignorePrereq -silent -force -responseFile ~/grid_install.rsp
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> cd /media/sf_oracle/11.2/grid

[+ASM1:/media/sf_oracle/11.2/grid]> ./runInstaller -ignorePrereq -silent -force -responseFile ~/grid_install.rsp
Oracle Universal Installer 시작 중...

임시 공간 확인 중: 120MB 이상이어야 합니다..   실제 87429MB    성공
스왑 공간 확인 중: 150MB 이상이어야 합니다..   실제 10239MB    성공
다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2020-04-14_08-37-43AM. 기다리십시오.[+ASM1:/media/sf_oracle/11.2/grid]> 다음 위치에서 이 설치 세션의 로그를 찾을 수 있습니다.
 /u01/app/oraInventory/logs/installActions2020-04-14_08-37-43AM.log
Oracle Grid Infrastructure 11g의 설치을(를) 성공했습니다.
자세한 내용은 '/u01/app/oraInventory/logs/silentInstall2020-04-14_08-37-43AM.log'을(를) 확인하십시오.

루트 사용자로 다음 스크립트를 실행합니다.
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/11.2.0/grid/root.sh

다음 노드에서 /u01/app/oraInventory/orainstRoot.sh을(를) 실행하십시오.
[rac1, rac2]
다음 노드에서 /u01/app/11.2.0/grid/root.sh을(를) 실행하십시오.
[rac1, rac2]

설치 사용자로 다음 스크립트를 실행하여 구성을 완료하십시오.
        1. /u01/app/11.2.0/grid/cfgtoollogs/configToolAllCommands RESPONSE_FILE=<response_file>

        참고:
        1. 이 스크립트는 설치 프로그램이 실행된 동일한 호스트에서 실행해야 합니다.
        2. 이 스크립트에는 비밀번호가 필요한 Configuration Assistant에 대한 작은 비밀번호 속성 파일이 필요합니다(설치 설명서 참조).


Successfully Setup Software.


D) 18370031 패치

$GRID_HOME의 OPatch 최신 버전으로 교체
$GRID_HOME/OPatch/opatch version
mv $GRID_HOME/OPatch $GRID_HOME/OPatch.old
unzip <OPatch 파일 다운로드 경로>/p6880880_112000_Linux-x86-64.zip -d $GRID_HOME
chown -R oracle:oinstall $GRID_HOME/OPatch
$GRID_HOME/OPatch/opatch version
[root@rac1 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

[root@rac1 ~]# mv $GRID_HOME/OPatch $GRID_HOME/OPatch.old

[root@rac1 ~]# unzip /media/sf_oracle/11.2/p6880880_112000_Linux-x86-64.zip -d $GRID_HOME
Archive:  /media/sf_oracle/11.2/p6880880_112000_Linux-x86-64.zip
   creating: /u01/app/11.2.0/grid/OPatch/
... << 중략 >> ...
  inflating: /u01/app/11.2.0/grid/OPatch/operr
  
[root@rac1 ~]# chown -R oracle:oinstall $GRID_HOME/OPatch

[root@rac1 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.
[root@rac2 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

[root@rac2 ~]# mv $GRID_HOME/OPatch $GRID_HOME/OPatch.old

[root@rac2 ~]# unzip /media/sf_oracle/11.2/p6880880_112000_Linux-x86-64.zip -d $GRID_HOME
Archive:  /media/sf_oracle/11.2/p6880880_112000_Linux-x86-64.zip
   creating: /u01/app/11.2.0/grid/OPatch/
... << 중략 >> ...
  inflating: /u01/app/11.2.0/grid/OPatch/operr
  
[root@rac2 ~]# chown -R oracle:oinstall $GRID_HOME/OPatch

[root@rac2 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.

리눅스 7에 Grid Infrastructure 11.2.0.4를 구성하려면 18370031 패치를 적용한 후에 root 스크립트를 수행해야 정상적으로 구축할 수 있습니다.

먼저 Grid와 함께 설치된 OPatch를 최신 버전으로 올려줘야 합니다.

18370031 패치 적용
grid_env
$GRID_HOME/OPatch/opatch napply -local <패치 파일 압축 해제 경로>/18370031
$GRID_HOME/OPatch/opatch lspatches
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> $GRID_HOME/OPatch/opatch napply -local /media/sf_oracle/11.2/18370031
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-14_08-46-21오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   18370031

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '18370031'을(를) 적용하는 중

oracle.crs, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 18370031 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-14_08-46-21오전_1.log

OPatch succeeded.

[+ASM1:/home/oracle]> $GRID_HOME/OPatch/opatch lspatches
18370031;Grid Infrastructure Patch Set Update : 11.2.0.4.x (gibugno)

OPatch succeeded.
[racdb2:/home/oracle]> grid_env

[+ASM2:/home/oracle]> $GRID_HOME/OPatch/opatch napply -local /media/sf_oracle/11.2/18370031
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-14_08-47-46오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   18370031

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '18370031'을(를) 적용하는 중

oracle.crs, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 18370031 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-14_08-47-46오전_1.log

OPatch succeeded.

[+ASM2:/home/oracle]> $GRID_HOME/OPatch/opatch lspatches
18370031;Grid Infrastructure Patch Set Update : 11.2.0.4.x (gibugno)

OPatch succeeded.


E) orainstRoot.sh 수행

모든 노드에서 순차적으로 orainstRoot.sh 실행
/u01/app/oraInventory/orainstRoot.sh
[root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh
다음 권한 변경 중/u01/app/oraInventory.
그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다.
월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다.

그룹 이름 변경 중 /u01/app/oraInventory 대상 oinstall.
스크립트 실행이 완료되었습니다.
[root@rac2 ~]# /u01/app/oraInventory/orainstRoot.sh
다음 권한 변경 중/u01/app/oraInventory.
그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다.
월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다.

그룹 이름 변경 중 /u01/app/oraInventory 대상 oinstall.
스크립트 실행이 완료되었습니다.


F) root.sh 수행

모든 노드에서 순차적으로 root.sh 실행
/u01/app/11.2.0/grid/root.sh
[root@rac1 ~]# /u01/app/11.2.0/grid/root.sh
Check /u01/app/11.2.0/grid/install/root_rac1_2020-04-14_08-50-22.log for the output of root script
[root@rac1 ~]# cat /u01/app/11.2.0/grid/install/root_rac1_2020-04-14_08-50-22.log
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
  root wallet
  root wallet cert
  root cert export
  peer wallet
  profile reader wallet
  pa wallet
  peer wallet keys
  pa wallet keys
  peer cert request
  pa cert request
  peer cert
  pa cert
  peer root cert TP
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to oracle-ohasd.service
CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1'
CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1'
CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1'
CRS-2672: Attempting to start 'ora.gipcd' on 'rac1'
CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'rac1'
CRS-2672: Attempting to start 'ora.diskmon' on 'rac1'
CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded
CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded

ASM이 성공적으로 생성되고 시작되었습니다.

디스크 그룹 DATA이(가) 성공적으로 생성되었습니다.

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 3b8bcee73b224f67bfbd573f9b6d644d.
Successfully replaced voting disk group with +DATA.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   3b8bcee73b224f67bfbd573f9b6d644d (/dev/raw/raw6) [DATA]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.DATA.dg' on 'rac1'
CRS-2676: Start of 'ora.DATA.dg' on 'rac1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@rac2 ~]# /u01/app/11.2.0/grid/root.sh
Check /u01/app/11.2.0/grid/install/root_rac2_2020-04-14_08-59-24.log for the output of root script
[root@rac2 ~]# cat /u01/app/11.2.0/grid/install/root_rac2_2020-04-14_08-59-24.log
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
Adding Clusterware entries to oracle-ohasd.service
CRS-4402: CSS 데몬이 배타 모드에서 시작되었지만 활성 CSS 데몬이 노드 rac1, 번호 1에서 발견되어 종료 중입니다.
An active cluster was found during exclusive startup, restarting to join the cluster
Configure Oracle Grid Infrastructure for a Cluster ... succeeded


G) configToolAllCommands 수행

$GRID_HOME/cfgtoollogs/cfgrsp.properties 파일 생성
oracle.assistants.asm|S_ASMPASSWORD=oracle_4U
oracle.assistants.asm|S_ASMMONITORPASSWORD=oracle_4U
[+ASM1:/home/oracle]> cat $GRID_HOME/cfgtoollogs/cfgrsp.properties
oracle.assistants.asm|S_ASMPASSWORD=oracle_4U
oracle.assistants.asm|S_ASMMONITORPASSWORD=oracle_4U
^C


configToolAllCommands 실행
cd $GRID_HOME/cfgtoollogs
chmod 600 cfgrsp.properties
./configToolAllCommands RESPONSE_FILE=./cfgrsp.properties
[+ASM1:/home/oracle]> cd $GRID_HOME/cfgtoollogs

[+ASM1:/u01/app/11g/grid/cfgtoollogs]> chmod 600 cfgrsp.properties

[+ASM1:/u01/app/11.2.0/grid/cfgtoollogs]> ./configToolAllCommands RESPONSE_FILE=./cfgrsp.properties
Setting the invPtrLoc to /u01/app/11.2.0/grid/oraInst.loc

perform - 작업 시작 중인 모드: configure

2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn invoke
정보: Executing ASMCA
2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn invoke
정보: Command /u01/app/11.2.0/grid/bin/asmca -silent -postConfigureASM -oui_internal
2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: ... GenericInternalPlugIn.handleProcess() entered.
2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: ... GenericInternalPlugIn: getting configAssistantParmas.
2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: ... GenericInternalPlugIn: checking secretArguments.
2020. 4. 14 오전 9:08:55 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: ... GenericInternalPlugIn: starting read loop.
2020. 4. 14 오전 9:09:02 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Read: SYS_PASSWORD_PROMPT
2020. 4. 14 오전 9:09:02 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Processing: SYS_PASSWORD_PROMPT for argument tag -sysAsmPassword
2020. 4. 14 오전 9:09:02 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Read: ASMSNMP_PASSWORD_PROMPT
2020. 4. 14 오전 9:09:02 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Processing: ASMSNMP_PASSWORD_PROMPT for argument tag -asmMonitorPassword
2020. 4. 14 오전 9:09:02 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: End of argument passing to stdin
2020. 4. 14 오전 9:09:03 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Read:
2020. 4. 14 오전 9:09:03 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Read: PostConfiguration이 성공적으로 완료되었습니다.
2020. 4. 14 오전 9:09:03 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess
정보: Read:

perform - 작업이 완료된 모드: configure

로그 파일을 확인할 수 있습니다./u01/app/11.2.0/grid/cfgtoollogs/oui/configActions2020-04-14_09-07-49-AM.log


Grid 설치 및 클러스터 구축 결과 확인
crsctl stat res -t
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.scan1.vip
      1        ONLINE  ONLINE       rac2
ora.scan2.vip
      1        ONLINE  ONLINE       rac1
ora.scan3.vip
      1        ONLINE  ONLINE       rac1


 

3. Raw Device 적용

OCR 디스크 Raw Device로 변경
ocrconfig -add /dev/raw/raw1
ocrconfig -add /dev/raw/raw2
ocrconfig -delete +DATA
ocrcheck
[root@rac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2664
         Available space (kbytes) :     259456
         ID                       :  934357259
         Device/File Name         :      +DATA
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check succeeded

[root@rac1 ~]# ocrconfig -add /dev/raw/raw1

[root@rac1 ~]# ocrconfig -add /dev/raw/raw2

[root@rac1 ~]# ocrconfig -delete +DATA

[root@rac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2664
         Available space (kbytes) :     259456
         ID                       :  934357259
         Device/File Name         : /dev/raw/raw1
                                    Device/File integrity check succeeded
         Device/File Name         : /dev/raw/raw2
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check succeeded


Vote 디스크 Raw Device로 변경
crsctl replace votedisk /dev/raw/raw3
crsctl add css votedisk /dev/raw/raw4
crsctl add css votedisk /dev/raw/raw5
crsctl query css votedisk
[root@rac1 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   3b8bcee73b224f67bfbd573f9b6d644d (/dev/raw/raw6) [DATA]
Located 1 voting disk(s).

[root@rac1 ~]# crsctl replace votedisk /dev/raw/raw3
Now formatting voting disk: /dev/raw/raw3.
CRS-4256: Updating the profile
Successful addition of voting disk a4c3ccb126b64f4dbf3d89ae84d163a2.
Successful deletion of voting disk 3b8bcee73b224f67bfbd573f9b6d644d.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced

[root@rac1 ~]# crsctl add css votedisk /dev/raw/raw4
Now formatting voting disk: /dev/raw/raw4.
CRS-4603: Successful addition of voting disk /dev/raw/raw4.

[root@rac1 ~]# crsctl add css votedisk /dev/raw/raw5
Now formatting voting disk: /dev/raw/raw5.
CRS-4603: Successful addition of voting disk /dev/raw/raw5.

[root@rac1 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   a4c3ccb126b64f4dbf3d89ae84d163a2 (/dev/raw/raw3) []
 2. ONLINE   31693ea2d7774f83bfd26b71d8173078 (/dev/raw/raw4) []
 3. ONLINE   7527b0194b634f7abfbc3c3501a8a6f4 (/dev/raw/raw5) []
Located 3 voting disk(s).


ASM 디스크 그룹 삭제 및 서비스 제거
srvctl stop diskgroup -g data
srvctl stop asm
srvctl remove diskgroup -g data
srvctl disable asm
srvctl remove asm
[root@rac1 ~]# srvctl stop diskgroup -g data

[root@rac1 ~]# srvctl stop asm

[root@rac1 ~]# srvctl remove diskgroup -g data

[root@rac1 ~]# srvctl disable asm

[root@rac1 ~]# srvctl remove asm


ASM 에서 회수한 영역 초기화
dd if=/dev/zero of=/dev/raw/raw6 bs=1024k count=1024
[root@rac1 ~]# dd if=/dev/zero of=/dev/raw/raw6 bs=1024k count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.98851 s, 269 MB/s


ASM 서비스 종료 확인
crsctl stat res -t
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.scan1.vip
      1        ONLINE  ONLINE       rac2
ora.scan2.vip
      1        ONLINE  ONLINE       rac1
ora.scan3.vip
      1        ONLINE  ONLINE       rac1


VII. 11g Database 설치

1. Database 소프트웨어 설치

2. Database 소프트웨어 설치

A) Response 파일 생성

db_install.rsp 파일 생성 (주요 파라미터 요약)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=rac1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,ko
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.CLUSTER_NODES=rac1,rac2
oracle.install.db.isRACOneInstall=false
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
[racdb1:/home/oracle]> cat > ~oracle/db_install.rsp
####################################################################
## Copyright(c) Oracle Corporation 1998,2013. All rights reserved.##
##                                                                ##
## Specify values for the variables listed below to customize     ##
## your installation.                                             ##
##                                                                ##
## Each variable is associated with a comment. The comment        ##
## can help to populate the variables with the appropriate        ##
## values.                                                        ##
##                                                                ##
## IMPORTANT NOTE: This file contains plain text passwords and    ##
## should be secured to have read permission only by oracle user  ##
## or db administrator who owns this installation.                ##
##                                                                ##
####################################################################

#------------------------------------------------------------------------------
# Do not change the following system generated value.
#------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

#------------------------------------------------------------------------------
# Specify the installation option.
# It can be one of the following:
#   - INSTALL_DB_SWONLY
#   - INSTALL_DB_AND_CONFIG
#   - UPGRADE_DB
#-------------------------------------------------------------------------------
oracle.install.option=INSTALL_DB_SWONLY

#-------------------------------------------------------------------------------
# Specify the hostname of the system as set during the install. It can be used
# to force the installation to use an alternative hostname rather than using the
# first hostname found on the system. (e.g., for systems with multiple hostnames
# and network interfaces)
#-------------------------------------------------------------------------------
ORACLE_HOSTNAME=rac1

#-------------------------------------------------------------------------------
# Specify the Unix group to be set for the inventory directory.
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=oinstall

#-------------------------------------------------------------------------------
# Specify the location which holds the inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory

#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.
#
# en   : English                  ja   : Japanese
# fr   : French                   ko   : Korean
# ar   : Arabic                   es   : Latin American Spanish
# bn   : Bengali                  lv   : Latvian
# pt_BR: Brazilian Portuguese     lt   : Lithuanian
# bg   : Bulgarian                ms   : Malay
# fr_CA: Canadian French          es_MX: Mexican Spanish
# ca   : Catalan                  no   : Norwegian
# hr   : Croatian                 pl   : Polish
# cs   : Czech                    pt   : Portuguese
# da   : Danish                   ro   : Romanian
# nl   : Dutch                    ru   : Russian
# ar_EG: Egyptian                 zh_CN: Simplified Chinese
# en_GB: English (Great Britain)  sk   : Slovak
# et   : Estonian                 sl   : Slovenian
# fi   : Finnish                  es_ES: Spanish
# de   : German                   sv   : Swedish
# el   : Greek                    th   : Thai
# iw   : Hebrew                   zh_TW: Traditional Chinese
# hu   : Hungarian                tr   : Turkish
# is   : Icelandic                uk   : Ukrainian
# in   : Indonesian               vi   : Vietnamese
# it   : Italian
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
#------------------------------------------------------------------------------
SELECTED_LANGUAGES=en,ko

#------------------------------------------------------------------------------
# Specify the complete path of the Oracle Home.
#------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

#------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#------------------------------------------------------------------------------
ORACLE_BASE=/u01/app/oracle

#------------------------------------------------------------------------------
# Specify the installation edition of the component.
#
# The value should contain only one of these choices.
#   - EE     : Enterprise Edition
#   - SE     : Standard Edition
#   - SEONE  : Standard Edition One
#   - PE     : Personal Edition (WINDOWS ONLY)
#------------------------------------------------------------------------------
oracle.install.db.InstallEdition=EE

#------------------------------------------------------------------------------
# This variable is used to enable or disable custom install and is considered
# only if InstallEdition is EE.
#
# true  : Components mentioned as part of 'optionalComponents' property
#         are considered for install.
# false : Value for 'optionalComponents' is not considered.
#------------------------------------------------------------------------------
oracle.install.db.EEOptionsSelection=false

#------------------------------------------------------------------------------
# This variable is considered only if 'EEOptionsSelection' is set to true.
#
# Description: List of Enterprise Edition Options you would like to enable.
#
#              The following choices are available. You may specify any
#              combination of these choices.  The components you choose should
#              be specified in the form "internal-component-name:version"
#              Below is a list of components you may specify to enable.
#
#              oracle.oraolap:11.2.0.4.0 - Oracle OLAP
#              oracle.rdbms.dm:11.2.0.4.0 - Oracle Data Mining
#              oracle.rdbms.dv:11.2.0.4.0 - Oracle Database Vault
#              oracle.rdbms.lbac:11.2.0.4.0 - Oracle Label Security
#              oracle.rdbms.partitioning:11.2.0.4.0 - Oracle Partitioning
#              oracle.rdbms.rat:11.2.0.4.0 - Oracle Real Application Testing
#------------------------------------------------------------------------------
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0

###############################################################################
#                                                                             #
# PRIVILEGED OPERATING SYSTEM GROUPS                                          #
# ------------------------------------------                                  #
# Provide values for the OS groups to which OSDBA and OSOPER privileges       #
# needs to be granted. If the install is being performed as a member of the   #
# group "dba", then that will be used unless specified otherwise below.       #
#                                                                             #
# The value to be specified for OSDBA and OSOPER group is only for UNIX based #
# Operating System.                                                           #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.DBA_GROUP=dba

#------------------------------------------------------------------------------
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The value to be specified for OSOPER group is optional.
#------------------------------------------------------------------------------
oracle.install.db.OPER_GROUP=oper

#------------------------------------------------------------------------------
# Specify the cluster node names selected during the installation.
# Example : oracle.install.db.CLUSTER_NODES=node1,node2
#------------------------------------------------------------------------------
oracle.install.db.CLUSTER_NODES=rac1,rac2

#------------------------------------------------------------------------------
# This variable is used to enable or disable RAC One Node install.
#
#   - true  : Value of RAC One Node service name is used.
#   - false : Value of RAC One Node service name is not used.
#
# If left blank, it will be assumed to be false
#------------------------------------------------------------------------------
oracle.install.db.isRACOneInstall=false

#------------------------------------------------------------------------------
# Specify the name for RAC One Node Service.
#------------------------------------------------------------------------------
oracle.install.db.racOneServiceName=

#------------------------------------------------------------------------------
# Specify the type of database to create.
# It can be one of the following:
#   - GENERAL_PURPOSE/TRANSACTION_PROCESSING
#   - DATA_WAREHOUSE
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.type=

#------------------------------------------------------------------------------
# Specify the Starter Database Global Database Name.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.globalDBName=

#------------------------------------------------------------------------------
# Specify the Starter Database SID.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.SID=

#------------------------------------------------------------------------------
# Specify the Starter Database character set.
#
# It can be one of the following:
# AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,
# EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,
# BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,
# AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,
# IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
# KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,
# ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.characterSet=

#------------------------------------------------------------------------------
# This variable should be set to true if Automatic Memory Management
# in Database is desired.
# If Automatic Memory Management is not desired, and memory allocation
# is to be done manually, then set it to false.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryOption=

#------------------------------------------------------------------------------
# Specify the total memory allocation for the database. Value(in MB) should be
# at least 256 MB, and should not exceed the total physical memory available
# on the system.
# Example: oracle.install.db.config.starterdb.memoryLimit=512
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryLimit=

#------------------------------------------------------------------------------
# This variable controls whether to load Example Schemas onto
# the starter database or not.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.installExampleSchemas=

#------------------------------------------------------------------------------
# This variable includes enabling audit settings, configuring password profiles
# and revoking some grants to public. These settings are provided by default.
# These settings may also be disabled.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.enableSecuritySettings=

###############################################################################
#                                                                             #
# Passwords can be supplied for the following four schemas in the             #
# starter database:                                                           #
#   SYS                                                                       #
#   SYSTEM                                                                    #
#   SYSMAN (used by Enterprise Manager)                                       #
#   DBSNMP (used by Enterprise Manager)                                       #
#                                                                             #
# Same password can be used for all accounts (not recommended)                #
# or different passwords for each account can be provided (recommended)       #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# This variable holds the password that is to be used for all schemas in the
# starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.ALL=

#-------------------------------------------------------------------------------
# Specify the SYS password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYS=

#-------------------------------------------------------------------------------
# Specify the SYSTEM password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYSTEM=

#-------------------------------------------------------------------------------
# Specify the SYSMAN password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYSMAN=

#-------------------------------------------------------------------------------
# Specify the DBSNMP password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.DBSNMP=

#-------------------------------------------------------------------------------
# Specify the management option to be selected for the starter database.
# It can be one of the following:
#   - GRID_CONTROL
#   - DB_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.control=

#-------------------------------------------------------------------------------
# Specify the Management Service to use if Grid Control is selected to manage
# the database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=

###############################################################################
#                                                                             #
# SPECIFY BACKUP AND RECOVERY OPTIONS                                         #
# ------------------------------------                                        #
# Out-of-box backup and recovery options for the database can be mentioned    #
# using the entries below.                                                    #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# This variable is to be set to false if automated backup is not required. Else
# this can be set to true.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.enable=

#------------------------------------------------------------------------------
# Regardless of the type of storage that is chosen for backup and recovery, if
# automated backups are enabled, a job will be scheduled to run daily to backup
# the database. This job will run as the operating system user that is
# specified in this variable.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.osuid=

#-------------------------------------------------------------------------------
# Regardless of the type of storage that is chosen for backup and recovery, if
# automated backups are enabled, a job will be scheduled to run daily to backup
# the database. This job will run as the operating system user specified by the
# above entry. The following entry stores the password for the above operating
# system user.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.ospwd=

#-------------------------------------------------------------------------------
# Specify the type of storage to use for the database.
# It can be one of the following:
#   - FILE_SYSTEM_STORAGE
#   - ASM_STORAGE
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.storageType=

#-------------------------------------------------------------------------------
# Specify the database file location which is a directory for datafiles, control
# files, redo logs.
#
# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=

#-------------------------------------------------------------------------------
# Specify the backup and recovery location.
#
# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

#-------------------------------------------------------------------------------
# Specify the existing ASM disk groups to be used for storage.
#
# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.diskGroup=

#-------------------------------------------------------------------------------
# Specify the password for ASMSNMP user of the ASM instance.
#
# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.ASMSNMPPassword=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username.
#
#  Example   : MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password.
#
# Example    : MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify whether to enable the user to set the password for
# My Oracle Support credentials. The value can be either true or false.
# If left blank it will be assumed to be false.
#
# Example    : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true
#------------------------------------------------------------------------------
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

#------------------------------------------------------------------------------
# Specify whether user doesn't want to configure Security Updates.
# The value for this variable should be true if you don't want to configure
# Security Updates, false otherwise.
#
# The value can be either true or false. If left blank it will be assumed
# to be false.
#`
# Example    : DECLINE_SECURITY_UPDATES=false
#------------------------------------------------------------------------------
DECLINE_SECURITY_UPDATES=true

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25
#------------------------------------------------------------------------------
PROXY_PORT=

#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password
#------------------------------------------------------------------------------
PROXY_PWD=

#------------------------------------------------------------------------------
# Specify the proxy realm. This value is used if auto-updates option is selected.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=

#------------------------------------------------------------------------------
# Specify the Oracle Support Hub URL.
#
# Example    : COLLECTOR_SUPPORTHUB_URL=https://orasupporthub.company.com:8080/
#------------------------------------------------------------------------------
COLLECTOR_SUPPORTHUB_URL=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=
#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
#------------------------------------------------------------------------------
oracle.installer.autoupdates.downloadUpdatesLoc=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
^C


B) 설치 전 검증

사전 요구사항 검증
cd <Database 설치 파일 압축 해제 경로>/database
./runInstaller -silent -executePrereqs -responseFile ~/db_install.rsp
[racdb1:/home/oracle]> cd /media/sf_oracle/11.2/database

[racdb1:/media/sf_oracle/11.2/database]> ./runInstaller -silent -executePrereqs -responseFile ~/db_install.rsp
Oracle Universal Installer 시작 중...

임시 공간 확인 중: 120MB 이상이어야 합니다..   실제 82685MB    성공
스왑 공간 확인 중: 150MB 이상이어야 합니다..   실제 10239MB    성공
다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2020-04-14_09-32-44AM. 기다리십시오.[racdb1:/media/sf_oracle/11.2/database]> [WARNING] [INS-13014] 대상 환경이 일부 선택적 요구 사항을 충족하지 않습니다.
   원인: 일부 선택적 필요 조건이 충족되지 않았습니다. 자세한 내용은 로그를 참조하십시오. /u01/app/oraInventory/logs/installActions2020-04-14_09-32-44AM.log
   작업: /u01/app/oraInventory/logs/installActions2020-04-14_09-32-44AM.log 로그에서 실패한 필요 조건 검사 목록을 확인하십시오. 로그 파일 또는 설치 설명서에서 필요 조건을 충족하는 적합한 구성을 찾아 수동으로 오류를 수정하십시오.
[racdb1:/home/oracle]> cat /u01/app/oraInventory/logs/installActions2020-04-14_09-32-44AM.log
Using paramFile: /media/sf_oracle/11.2/database/install/oraparam.ini


Checking Temp space: must be greater than 120 MB.   Actual 82685 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 10239 MB    Passed

The commandline for unzip:
/media/sf_oracle/11.2/database/install/unzip -qqqo ../stage/Components/oracle.jdk/1.5.0.51.10/1/DataFiles/\*.jar -d /tmp/OraInstall2020-04-14_09-32-44AM
oraparam.ini에서 사용할 수 있는 umask 값 '022'을(를) 사용합니다.
... << 중략 >> ...
INFO: *********************************************
INFO: 패키지: pdksh-5.2.14: 시스템에서 "pdksh-5.2.14" 패키지를 사용할 수 있는지 여부를 테스트하는 필요 조건입니다.
INFO: Severity:IGNORABLE
INFO: OverallStatus:VERIFICATION_FAILED
INFO: -----------------End of failed Tasks List----------------
WARNING: [WARNING] [INS-13014] 대상 환경이 일부 선택적 요구 사항을 충족하지 않습니다.
   원인: 일부 선택적 필요 조건이 충족되지 않았습니다. 자세한 내용은 로그를 참조하십시오. /u01/app/oraInventory/logs/installActions2020-04-14_09-32-44AM.log
   작업: /u01/app/oraInventory/logs/installActions2020-04-14_09-32-44AM.log 로그에서 실패한 필요 조건 검사 목록을 확인하십시오. 로그 파일 또는 설치 설명서에서 필요 조건을 충족하는 적합한 구성을 찾아 수동으로 오류를 수정하십시오.
INFO: Advice is CONTINUE
INFO: Adding ExitStatus SUCCESS_WITH_WARNINGS to the exit status set
INFO: Finding the most appropriate exit status for the current application
INFO: Exit Status is 6
INFO: List of warnings encountered in this Application:
INFO: PREREQS_FAILED_WITH_WARNING
INFO: Shutdown Oracle Database 11g 릴리스 2 설치 프로그램

사전 검증 과정에서 리눅스 7에 포함되어 있지 않은 pdksh 패키지 관련 내용은 무시합니다.

하지만, 다른 실패한 사항은 확인하고 반드시 해결하는게 좋습니다.

C) 설치

Database 설치
cd <Database 설치 파일 압축 해제 경로>/database
./runInstaller -silent -ignorePrereq -ignoreSysPreReqs -responseFile ~/db_install.rsp
[racdb1:/home/oracle]> cd /media/sf_oracle/11.2/database

[racdb1:/media/sf_oracle/11.2/database]> ./runInstaller -silent -ignorePrereq -ignoreSysPreReqs -responseFile ~/db_install.rsp
Oracle Universal Installer 시작 중...

임시 공간 확인 중: 120MB 이상이어야 합니다..   실제 82673MB    성공
스왑 공간 확인 중: 150MB 이상이어야 합니다..   실제 10239MB    성공
다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2020-04-14_09-44-07AM. 기다리십시오.[racdb1:/media/sf_oracle/11.2/database]> 다음 위치에서 이 설치 세션의 로그를 찾을 수 있습니다.
 /u01/app/oraInventory/logs/installActions2020-04-14_09-44-07AM.log
Oracle Database 11g의 설치을(를) 성공했습니다.
자세한 내용은 '/u01/app/oraInventory/logs/silentInstall2020-04-14_09-44-07AM.log'을(를) 확인하십시오.

루트 사용자로 다음 스크립트를 실행합니다.
        1. /u01/app/oracle/product/11.2.0/db_1/root.sh

다음 노드에서 /u01/app/oracle/product/11.2.0/db_1/root.sh을(를) 실행하십시오.
[rac1, rac2]

Successfully Setup Software.


[racdb1:/home/oracle]> cat /u01/app/oraInventory/logs/silentInstall2020-04-14_09-44-07AM.log
silentInstall2020-04-14_09-44-07AM.log
sNativeVolName:/u01/app/oracle/product/11.2.0/db_1/
m_asNodeArray:rac1,rac2
m_sLocalNode:rac1
sNativeVolName:/tmp/
m_asNodeArray:rac1,rac2
m_sLocalNode:rac1
make 파일 ''/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk''의 ''agent nmhs'' 대상을 호출하는 중 오류가 발생했습니다. 자세한 내용은 ''/u01/app/oraInventory/logs/installActions2020-04-14_09-44-07AM.log''을(를) 참조하십시오
sNativeVolName:/u01/app/oracle/
m_asNodeArray:rac1,rac2
m_sLocalNode:rac1
sNativeVolName:/u01/app/oraInventory/
m_asNodeArray:rac1,rac2
m_sLocalNode:rac1
Oracle Database 11g의 설치을(를) 성공했습니다.
[racdb1:/home/oracle]> vi /u01/app/oraInventory/logs/installActions2020-04-14_09-44-07AM.log
... << 생략 >> ...
정보: 생성된 프로세스에서 출력 마침.
정보: ----------------------------------
정보: 작업에서 발생한 예외 사항: make
예외 사항 이름: MakefileException
예외 사항 문자열: make 파일 ''/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk''의 ''agent nmhs'' 대상을 호출하는 중 오류가 발생했습니다. 자세한 내용은 ''/u01/app/oraInventory/logs/installActions2020-04-14_09-44-07AM.log''을(를) >참조하십시오
예외 사항 심각도: 1
정보: Retry Handler not registered, using Super class functionality
make 파일 ''/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk''의 ''agent nmhs'' 대상을 호출하는 중 오류가 발생했습니다. 자세한 내용은 ''/u01/app/oraInventory/logs/installActions2020-04-14_09-44-07AM.log''을(를) 참조하십시오
정보: 호출 중 작업 unixActions10.2.0.3.0  make
        registerOnly = false
        installMakePath = /usr/bin/make
        installMakeFileName = /u01/app/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk
        installTarget = all_no_orcl
        undoMakeFileName =
        installArguments = ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
        logFile = /u01/app/oracle/product/11.2.0/db_1/install/make.log
        undoTarget =
        progMsg = RDBMS 실행 파일 링크 중

정보: RDBMS 실행 파일 링크 중
정보: RDBMS 실행 파일 링크 중
정보: 이 make 작업의 출력은 ''/u01/app/oracle/product/11.2.0/db_1/install/make.log''에서도 사용할 수 있습니다.
... << 생략 >> ...

설치는 성공하였으나 ins_emagent.mk 오류가 발생한 것을 확인할 수 있습니다.

이는 리눅스 7에서 발생하는 오류이며, 해결이 가능한 문제입니다.

D) ins_emagent.mk 수정 및 make 재수행

vi $ORACLE_HOME/sysman/lib/ins_emagent.mk 로 모든 노드에서 수정
        $(MK_EMAGENT_NMECTL) -lnnz11
[racdb1:/u01/app/oracle/product/11.2.0/db_1/sysman/lib]> cat ins_emagent.mk | grep MK_EMAGENT_NMECTL
        $(MK_EMAGENT_NMECTL) -lnnz11


모든 노드에서 make 명령 수동 실행
cd $ORACLE_HOME/sysman/lib
make -f ins_emagent.mk agent
[racdb1:/home/oracle]> cd $ORACLE_HOME/sysman/lib

[racdb1:/u01/app/oracle/product/11.2.0/db_1/sysman/lib]> make -f ins_emagent.mk agent
ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'
make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk relink_sharedobj SHAREDOBJ=libnmemso
make[1]: Entering directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'
... << 중략 >> ...
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
rm -f /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
mv emtgtctl2 /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
/bin/chmod 6751 /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
Enterprise Manager native components relinked
IMPORTANT NOTE: To complete this Install/upgrade, please login as root and
                execute the root.sh script.
[racdb2:/home/oracle]> cd $ORACLE_HOME/sysman/lib

[racdb2:/u01/app/oracle/product/11.2.0/db_1/sysman/lib]> make -f ins_emagent.mk agent
ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'
make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk relink_sharedobj SHAREDOBJ=libnmemso
make[1]: Entering directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'
... << 중략 >> ...
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
rm -f /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
mv emtgtctl2 /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
/bin/chmod 6751 /u01/app/oracle/product/11.2.0/db_1/bin/emtgtctl2
Enterprise Manager native components relinked
IMPORTANT NOTE: To complete this Install/upgrade, please login as root and
                execute the root.sh script.

파일이 저장된 경로로 이동한 후 make 명령을 수동으로 수행합니다.

Database가 설치된 모든 노드에서 작업을 수행해야 합니다.

E) root.sh 수행

모든 노드에서 root.sh 스크립트 실행
/u01/app/oracle/product/11.2.0/db_1/root.sh
[root@rac1 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
Check /u01/app/oracle/product/11.2.0/db_1/install/root_rac1_2020-04-14_10-02-36.log for the output of root script
[root@rac1 ~]# cat /u01/app/oracle/product/11.2.0/db_1/install/root_rac1_2020-04-14_10-02-36.log
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished product-specific root actions.
[root@rac2 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
Check /u01/app/oracle/product/11.2.0/db_1/install/root_rac2_2020-04-14_10-02-39.log for the output of root script
[root@rac2 ~]# cat /u01/app/oracle/product/11.2.0/db_1/install/root_rac2_2020-04-14_10-02-39.log
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished product-specific root actions.


 

3. Database 생성

4. Database 생성

A) 작업 스크립트 준비

oracle 유저로 생성
mkdir -p $ORACLE_BASE/admin/[DB_NAME]/scripts
cd $ORACLE_BASE/admin/[DB_NAME]/scripts
[oracle@racdb1 ~]$ mkdir -p $ORACLE_BASE/admin/racdb/scripts
 
[oracle@racdb1 ~]$ cd $ORACLE_BASE/admin/racdb/scripts

스크립트 생성 디렉토리를 $ORACLE_BASE 경로 아래에 생성합니다.

작업할 스크립트를 모두 이곳에 저장합니다.

oracle 유저로 vi racDB.sh 생성
#!/bin/sh

OLD_UMASK=`umask`
umask 0027
mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/adump
mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/dpdump
mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/hdump
mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/pfile
mkdir -p [ORACLE_BASE]/cfgtoollogs/dbca/[DB_NAME]
ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/adump"
ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/dpdump"
ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/hdump"
ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/pfile"
ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/cfgtoollogs/dbca/[DB_NAME]"
umask ${OLD_UMASK}
ORACLE_SID=[ORACLE_SID1]; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
echo You should Add this entry in the /etc/oratab: [ORACLE_SID]:[DB_HOME]:N
[DB_HOME]/bin/sqlplus /nolog @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateRACDB.sql
#!/bin/sh
 
OLD_UMASK=`umask`
umask 0027
mkdir -p /u01/app/oracle/admin/racdb/adump
mkdir -p /u01/app/oracle/admin/racdb/dpdump
mkdir -p /u01/app/oracle/admin/racdb/hdump
mkdir -p /u01/app/oracle/admin/racdb/pfile
mkdir -p /u01/app/oracle/cfgtoollogs/dbca/racdb
ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/adump"
ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/dpdump"
ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/hdump"
ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/pfile"
ssh oracle@rac2 "mkdir -p /u01/app/oracle/cfgtoollogs/dbca/racdb":
umask ${OLD_UMASK}
ORACLE_SID=racdb1; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
echo You should Add this entry in the /etc/oratab: racdb:/u01/app/oracle/product/11.2.0/db_1:N
/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog @/u01/app/oracle/admin/racdb/scripts/CreateRACDB.sql

데이터베이스 생성을 위해 필요한 디렉토리를 만들고 전체 작업을 수행할 메인 스크립트를 생성합니다.

괄호 [] 안에 표시된 변수 부분은 실제 설치할 환경에 해당되는 내용으로 수정하여 저장하도록 합니다.

[ORACLE_BASE] : 오라클 소프트웨어 설치 베이스 경로

[DB_NAME] : 데이터베이스 명

[HOST_NAME2] : 2번 노드의 서버 명

[ORACLE_SID1] : 1번 인스턴스 명

[ORACLE_SID] : 각 노드의 인스턴스 명

[DB_HOME] : 데이터베이스 소프트웨어 설치 경로

oracle 유저로 vi CreateRACDB.sql 생성
set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host [DB_HOME]/bin/orapwd file=[DB_HOME]/dbs/orapw[ORACLE_SID1] force=y
host ssh oracle@[HOST_NAME2] "[DB_HOME]/bin/orapwd file=[DB_HOME]/dbs/orapw[ORACLE_SID2] force=y"
host [GRID_HOME]/bin/setasmgidwrap o=[DB_HOME]/bin/oracle

host [DB_HOME]/bin/srvctl add database -d [DB_NAME] -o [DB_HOME] -p /dev/raw/raw20 -n [DB_NAME]
host [DB_HOME]/bin/srvctl add instance -d [DB_NAME] -i [ORACLE_SID1] -n [HOST_NAME1]
host [DB_HOME]/bin/srvctl add instance -d [DB_NAME] -i [ORACLE_SID2] -n [HOST_NAME2]
host [DB_HOME]/bin/srvctl disable database -d [DB_NAME]
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDB.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBFiles.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBCatalog.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateJVM.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateClustDBViews.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOracleText.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateXDB.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateORDSchema.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateMultiMedia.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOLAP.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateSpatial.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateEMRepos.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateAPEX.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOWB.sql
host echo "SPFILE='/dev/raw/raw20'" > [DB_HOME]/dbs/init[ORACLE_SID1].ora
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/lockAccount.sql
@[ORACLE_BASE]/admin/[DB_NAME]/scripts/postDBCreation.sql
set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host /u01/app/oracle/product/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwracdb1 force=y
host ssh oracle@rac2 "/u01/app/oracle/product/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwracdb2 force=y"
host /u01/app/11.2.0/grid/bin/setasmgidwrap o=/u01/app/oracle/product/11.2.0/db_1/bin/oracle
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add database -d racdb -o /u01/app/oracle/product/11.2.0/db_1 -p /dev/raw/raw20 -n racdb
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add instance -d racdb -i racdb1 -n rac1
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add instance -d racdb -i racdb2 -n rac2
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl disable database -d racdb
@/u01/app/oracle/admin/racdb/scripts/CreateDB.sql
@/u01/app/oracle/admin/racdb/scripts/CreateDBFiles.sql
@/u01/app/oracle/admin/racdb/scripts/CreateDBCatalog.sql
@/u01/app/oracle/admin/racdb/scripts/CreateJVM.sql
@/u01/app/oracle/admin/racdb/scripts/CreateClustDBViews.sql
@/u01/app/oracle/admin/racdb/scripts/CreateOracleText.sql
@/u01/app/oracle/admin/racdb/scripts/CreateXDB.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateORDSchema.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateMultiMedia.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateOLAP.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateSpatial.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateEMRepos.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateAPEX.sql
--@/u01/app/oracle/admin/racdb/scripts/CreateOWB.sql
host echo "SPFILE='/dev/raw/raw20'" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb1.ora
@/u01/app/oracle/admin/racdb/scripts/lockAccount.sql
@/u01/app/oracle/admin/racdb/scripts/postDBCreation.sql

서비스에 등록하고 각각의 SQL 스크립트를 수행할 스크립트를 생성합니다.

괄호 [] 안에 표시된 변수 부분은 실제 설치할 환경에 해당되는 내용으로 수정하여 저장하도록 합니다.

[DB_HOME]

[ORACLE_SID1]

[GRID_HOME]

[DB_NAME]

[ORACLE_SID1]

[HOST_NAME1]

[ORACLE_SID2]

[HOST_NAME2]

[ORACLE_BASE]

oracle 유저로 vi CreateDB.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDB.log append
startup nomount pfile="[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora";
CREATE DATABASE "[DB_NAME]"
MAXINSTANCES 32
MAXLOGHISTORY 1
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
DATAFILE '/dev/raw/raw6' SIZE 699M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/dev/raw/raw7' SIZE 699M AUTOEXTEND OFF
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 699M AUTOEXTEND OFF
CHARACTER SET KO16MSWIN949
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M,
GROUP 2 ('/dev/raw/raw15') SIZE 199M,
GROUP 3 ('/dev/raw/raw16') SIZE 199M
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateDB.log append
startup nomount pfile="/u01/app/oracle/admin/racdb/scripts/init.ora";
CREATE DATABASE "racdb"
MAXINSTANCES 32
MAXLOGHISTORY 1
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
DATAFILE '/dev/raw/raw6' SIZE 699M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/dev/raw/raw7' SIZE 699M AUTOEXTEND OFF
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 699M AUTOEXTEND OFF
CHARACTER SET KO16MSWIN949
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M,
GROUP 2 ('/dev/raw/raw15') SIZE 199M,
GROUP 3 ('/dev/raw/raw16') SIZE 199M
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off


oracle 유저로 vi CreateDBFiles.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBFiles.log append
CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/raw/raw11' SIZE 699M AUTOEXTEND OFF;
CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/dev/raw/raw8' SIZE 699M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;
ALTER DATABASE DEFAULT TABLESPACE "USERS";
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateDBFiles.log append
CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/raw/raw11' SIZE 699M AUTOEXTEND OFF;
CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/dev/raw/raw8' SIZE 699M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;
ALTER DATABASE DEFAULT TABLESPACE "USERS";
spool off


oracle 유저로 vi CreateDBCatalog.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBCatalog.log append
@[DB_HOME]/rdbms/admin/catalog.sql;
@[DB_HOME]/rdbms/admin/catblock.sql;
@[DB_HOME]/rdbms/admin/catproc.sql;
@[DB_HOME]/rdbms/admin/catoctk.sql;
@[DB_HOME]/rdbms/admin/owminst.plb;
connect "SYSTEM"/"&&systemPassword"
set echo on
@[DB_HOME]/sqlplus/admin/pupbld.sql;
@[DB_HOME]/sqlplus/admin/help/hlpbld.sql helpus.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateDBCatalog.log append
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catblock.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catoctk.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/owminst.plb;
connect "SYSTEM"/"&&systemPassword"
set echo on
@/u01/app/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql;
@/u01/app/oracle/product/11.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql;
spool off


oracle 유저로 vi CreateJVM.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateJVM.log append
@[DB_HOME]/javavm/install/initjvm.sql;
@[DB_HOME]/xdk/admin/initxml.sql;
@[DB_HOME]/xdk/admin/xmlja.sql;
@[DB_HOME]/rdbms/admin/catjava.sql;
@[DB_HOME]/rdbms/admin/catxdbj.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateJVM.log append
@/u01/app/oracle/product/11.2.0/db_1/javavm/install/initjvm.sql;
@/u01/app/oracle/product/11.2.0/db_1/xdk/admin/initxml.sql;
@/u01/app/oracle/product/11.2.0/db_1/xdk/admin/xmlja.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catjava.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catxdbj.sql;
spool off


oracle 유저로 vi CreateClustDBViews.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateClustDBViews.log append
@[DB_HOME]/rdbms/admin/catclust.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateClustDBViews.log append
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catclust.sql;
spool off


oracle 유저로 vi CreateOracleText.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOracleText.log append
@[DB_HOME]/ctx/admin/catctx [PASSWORD] SYSAUX TEMP NOLOCK;
connect "CTXSYS"/"[PASSWORD]"
@[DB_HOME]/ctx/admin/defaults/dr0defin.sql "KOREAN";
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateOracleText.log append
@/u01/app/oracle/product/11.2.0/db_1/ctx/admin/catctx change_on_install SYSAUX TEMP NOLOCK;
connect "CTXSYS"/"change_on_install"
@/u01/app/oracle/product/11.2.0/db_1/ctx/admin/defaults/dr0defin.sql "KOREAN";
spool off


oracle 유저로 vi CreateXDB.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateXDB.log append
@[DB_HOME]/rdbms/admin/catqm.sql [PASSWORD] SYSAUX TEMP YES;
connect "SYS"/"&&sysPassword" as SYSDBA
@[DB_HOME]/rdbms/admin/catxdbj.sql;
@[DB_HOME]/rdbms/admin/catrul.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateXDB.log append
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP YES;
connect "SYS"/"&&sysPassword" as SYSDBA
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catxdbj.sql;
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catrul.sql;
spool off


oracle 유저로 vi CreateORDSchema.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateORDSchema.log append
@[DB_HOME]/ord/admin/ordinst.sql SYSAUX SYSAUX;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateORDSchema.log append
@/u01/app/oracle/product/11.2.0/db_1/ord/admin/ordinst.sql SYSAUX SYSAUX;
spool off


oracle 유저로 vi CreateMultiMedia.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateMultiMedia.log append
@[DB_HOME]/ord/im/admin/iminst.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateMultiMedia.log append
@/u01/app/oracle/product/11.2.0/db_1/ord/im/admin/iminst.sql;
spool off


oracle 유저로 vi CreateOLAP.sql 생성
SET VERIFY OFF
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOLAP.log append
connect "SYS"/"&&sysPassword" as SYSDBA
@[DB_HOME]/olap/admin/olap.sql SYSAUX TEMP;
spool off
SET VERIFY OFF
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateOLAP.log append
connect "SYS"/"&&sysPassword" as SYSDBA
@/u01/app/oracle/product/11.2.0/db_1/olap/admin/olap.sql SYSAUX TEMP;
spool off


oracle 유저로 vi CreateSpatial.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateSpatial.log append
@[DB_HOME]/md/admin/mdinst.sql;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateSpatial.log append
@/u01/app/oracle/product/11.2.0/db_1/md/admin/mdinst.sql;
spool off


oracle 유저로 vi CreateEMRepos.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo off
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateEMRepos.log append
@[DB_HOME]/sysman/admin/emdrep/sql/emreposcre [DB_HOME] SYSMAN &&sysPassword TEMP ON;
WHENEVER SQLERROR CONTINUE;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo off
spool /u01/app/oracle/admin/racdb/scripts/CreateEMRepos.log append
@/u01/app/oracle/product/11.2.0/db_1/sysman/admin/emdrep/sql/emreposcre /u01/app/oracle/product/11.2.0/db_1 SYSMAN &&sysPassword TEMP ON;
WHENEVER SQLERROR CONTINUE;
spool off


oracle 유저로 vi CreateAPEX.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateAPEX.log append
@[DB_HOME]/apex/catapx.sql [PASSWORD] SYSAUX SYSAUX TEMP /i/ NONE;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateAPEX.log append
@/u01/app/oracle/product/11.2.0/db_1/apex/catapx.sql change_on_install SYSAUX SYSAUX TEMP /i/ NONE;
spool off


oracle 유저로 vi CreateOWB.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOWB.log append
@[DB_HOME]/owb/UnifiedRepos/cat_owb.sql SYSAUX TEMP;
spool off
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/CreateOWB.log append
@/u01/app/oracle/product/11.2.0/db_1/owb/UnifiedRepos/cat_owb.sql SYSAUX TEMP;
spool off


oracle 유저로 vi lockAccount.sql 생성
SET VERIFY OFF
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/lockAccount.log append
BEGIN
 FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN ('SYS','SYSTEM') )
 LOOP
  dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);
  execute immediate 'alter user ' ||
         sys.dbms_assert.enquote_name(
         sys.dbms_assert.schema_name(
         item.USERNAME),false) || ' password expire account lock' ;
 END LOOP;
END;
/
spool off
SET VERIFY OFF
set echo on
spool /u01/app/oracle/admin/racdb/scripts/lockAccount.log append
BEGIN
 FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN ('SYS','SYSTEM') )
 LOOP
  dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);
  execute immediate 'alter user ' ||
         sys.dbms_assert.enquote_name(
         sys.dbms_assert.schema_name(
         item.USERNAME),false) || ' password expire account lock' ;
 END LOOP;
END;
/
spool off


oracle 유저로 vi postDBCreation.sql 생성
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/postDBCreation.log append
execute DBMS_AUTO_TASK_ADMIN.disable();
@[DB_HOME]/rdbms/admin/catbundle.sql psu apply;
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
execute utl_recomp.recomp_serial();
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
select group# from v$log where group# =3;
select group# from v$log where group# =4;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4 ('/dev/raw/raw17') SIZE 199M,
 GROUP 5 ('/dev/raw/raw18') SIZE 199M,
 GROUP 6 ('/dev/raw/raw19') SIZE 199M;
ALTER DATABASE ENABLE PUBLIC THREAD 2;
host echo cluster_database=true >>[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora;
host echo remote_listener=[SCAN_NAME]:[LISTENER_PORT]>>[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora;
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
create spfile='/dev/raw/raw20' FROM pfile='[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora';
shutdown immediate;
host [DB_HOME]/bin/srvctl enable database -d [DB_NAME];
host [DB_HOME]/bin/srvctl start database -d [DB_NAME];
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
@[DB_HOME]/rdbms/admin/utlrp.sql;
spool off
exit;
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/racdb/scripts/postDBCreation.log append
execute DBMS_AUTO_TASK_ADMIN.disable();
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catbundle.sql psu apply;
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
execute utl_recomp.recomp_serial();
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
select group# from v$log where group# =3;
select group# from v$log where group# =4;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4 ('/dev/raw/raw17') SIZE 199M,
 GROUP 5 ('/dev/raw/raw18') SIZE 199M,
 GROUP 6 ('/dev/raw/raw19') SIZE 199M;
ALTER DATABASE ENABLE PUBLIC THREAD 2;
host echo cluster_database=true >>/u01/app/oracle/admin/racdb/scripts/init.ora;
host echo remote_listener=rac-scan:1521>>/u01/app/oracle/admin/racdb/scripts/init.ora;
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
create spfile='/dev/raw/raw20' FROM pfile='/u01/app/oracle/admin/racdb/scripts/init.ora';
shutdown immediate;
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl enable database -d racdb;
host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl start database -d racdb;
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlrp.sql;
spool off
exit;


oracle 유저로 vi init.ora 생성
db_block_size=8192
#cluster_database=true
#remote_listener=[SCAN_NAME]:[LISTENER_PORT]
open_cursors=300
db_domain=""
db_name="[DB_NAME]"
control_files=('/dev/raw/raw12','/dev/raw/raw13')
compatible=11.2.0.0.0
diagnostic_dest=[ORACLE_BASE]
memory_target=834666496
processes=150
audit_file_dest="[ORACLE_BASE]/admin/[DB_NAME]/adump"
audit_trail=db
remote_login_passwordfile=exclusive
 
[ORACLE_SID1].instance_number=1
[ORACLE_SID2].instance_number=2
[ORACLE_SID1].thread=1
[ORACLE_SID2].thread=2
[ORACLE_SID1].undo_tablespace=UNDOTBS1
[ORACLE_SID2].undo_tablespace=UNDOTBS2

db_recovery_file_dest_size=3G
db_recovery_file_dest='/FRA'
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
 
###########################################
# Cluster Database
###########################################
#cluster_database=true
#remote_listener=rac-scan:1521
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name="racdb"
 
###########################################
# File Configuration
###########################################
control_files=('/dev/raw/raw12','/dev/raw/raw13')

###########################################
# Miscellaneous
###########################################
compatible=11.2.0.0.0
diagnostic_dest=/u01/app/oracle
sga_target=3g
pga_aggregate_target=1g
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Security and Auditing
###########################################
audit_file_dest="/u01/app/oracle/admin/racdb/adump"
audit_trail=db
remote_login_passwordfile=exclusive
 
racdb1.instance_number=1
racdb2.instance_number=2
racdb1.thread=1
racdb2.thread=2
racdb1.undo_tablespace=UNDOTBS1
racdb2.undo_tablespace=UNDOTBS2


oracle 유저로 수행
chmod 774 racDB.sh
ls -ltra | grep racDB.sh
[racdb1:/u01/app/oracle/admin/racdb/scripts]> ls -ltra | grep racDB.sh
-rwxr-x---. 1 oracle oinstall  891  4월 14 10:39 racDB.sh

[racdb1:/u01/app/oracle/admin/racdb/scripts]> chmod 774 racDB.sh

[racdb1:/u01/app/oracle/admin/racdb/scripts]> ls -ltra | grep racDB.sh
-rwxrwxr--. 1 oracle oinstall  891  4월 14 10:39 racDB.sh


root 유저로 1번 노드에서 수행
chmod 770 [ORACLE_BASE]/cfgtoollogs
[root@rac1 oracle]# chmod 770 /u01/app/oracle/cfgtoollogs


B) 데이터베이스 생성

oracle 유저에서 수행
cd $ORACLE_BASE/admin/[DB_NAME]/scripts
sh racDB.sh
[oracle@racdb1 ~]$ cd $ORACLE_BASE/admin/racdb/scripts

[racdb1:/u01/app/oracle/admin/racdb/scripts]> sh racDB.sh 
You should Add this entry in the /etc/oratab: racdb:/u01/app/oracle/product/11.2.0/db_1:N

SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 14 15:26:19 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter new password for SYS: 
Enter new password for SYSTEM: 

Enter password for SYS: 


Enter password for SYS: oracle

Unable to find error file.






Connected to an idle instance.
SQL> spool /u01/app/oracle/admin/racdb/scripts/CreateDB.log append
SQL> startup nomount pfile="/u01/app/oracle/admin/racdb/scripts/init.ora";
ORACLE instance started.

Total System Global Area 3206836224 bytes
Fixed Size    2257520 bytes
Variable Size  654314896 bytes
Database Buffers 2533359616 bytes
Redo Buffers   16904192 bytes
SQL> CREATE DATABASE "racdb"
  2  MAXINSTANCES 32
  3  MAXLOGHISTORY 1
  4  MAXLOGFILES 192
  5  MAXLOGMEMBERS 3
  6  MAXDATAFILES 1024
  7  DATAFILE '/dev/raw/raw6' SIZE 1000M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL
  8  SYSAUX DATAFILE '/dev/raw/raw7' SIZE 1000M AUTOEXTEND OFF
  9  SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF
 10  SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 1000M AUTOEXTEND OFF
 11  CHARACTER SET KO16MSWIN949
 12  NATIONAL CHARACTER SET AL16UTF16
 13  LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M,
 14  GROUP 2 ('/dev/raw/raw15') SIZE 199M,
 15  GROUP 3 ('/dev/raw/raw16') SIZE 199M
 16  USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";

Database created.
 
.... << 생략 >> ....
 
SQL>
SQL> Rem =====================================================================
SQL> Rem Run component validation procedure
SQL> Rem =====================================================================
SQL>
SQL> EXECUTE dbms_registry_sys.validate_components;

PL/SQL procedure successfully completed.

SQL> SET serveroutput off
SQL>
SQL>
SQL> Rem ===========================================================================
SQL> Rem END utlrp.sql
SQL> Rem ===========================================================================
SQL> spool off
not spooling currently
SQL> exit;
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options


root 유저로 모든 노드의 vi /etc/oratab 에 추가
[ORACLE_SID]:[DB_HOME]:N
racdb1:/u01/app/oracle/product/11.2.0/db_1:N
racdb2:/u01/app/oracle/product/11.2.0/db_1:N


C) Archive 모드 전환

운영 모드 현황 조사
archive log list;
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/11.2.0/db_1/dbs/arch
Oldest online log sequence     17
Current log sequence           19


아카이브 경로 파라미터 조사
select NAME, DISPLAY_VALUE 
from V$PARAMETER 
where NAME like 'db_recovery_file_dest%';
SQL> col NAME form a30
SQL> col DISPLAY_VALUE form a15

SQL> select NAME, DISPLAY_VALUE from V$PARAMETER where NAME like 'db_recovery_file_dest%';

NAME                           DISPLAY_VALUE
------------------------------ ---------------
db_recovery_file_dest
db_recovery_file_dest_size     0


Archive 경로 관련 파라미터 변경
alter system set db_recovery_file_dest_size=4G sid='*';
alter system set db_recovery_file_dest='/FRA' sid='*';
SQL> alter system set db_recovery_file_dest_size=4G sid='*';

System altered.

SQL> alter system set db_recovery_file_dest='/FRA' sid='*';

System altered.


데이터베이스 중지 및 재기동
host srvctl stop database -d racdb -o immediate
conn / as sysdba
startup mount
SQL> host srvctl stop database -d racdb -o immediate

SQL> host crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac2
ora.cvu
      1        ONLINE  ONLINE       rac2
ora.oc4j
      1        ONLINE  ONLINE       rac2
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        OFFLINE OFFLINE                               Instance Shutdown
      2        OFFLINE OFFLINE                               Instance Shutdown
ora.scan1.vip
      1        ONLINE  ONLINE       rac1
ora.scan2.vip
      1        ONLINE  ONLINE       rac2
ora.scan3.vip
      1        ONLINE  ONLINE       rac2


SQL> conn / as sysdba
Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 3206836224 bytes
Fixed Size                  2257520 bytes
Variable Size             721423760 bytes
Database Buffers         2466250752 bytes
Redo Buffers               16904192 bytes
Database mounted.


Archive 모드 전환 및 Database Open
alter database archivelog;
archive log list;
shutdown abort
host srvctl start database -d racdb
SQL> alter database archivelog;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     17
Next log sequence to archive   19
Current log sequence           19

SQL> shutdown abort
ORACLE instance shut down.

SQL> host srvctl start database -d racdb

SQL> host crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac2
ora.cvu
      1        ONLINE  ONLINE       rac2
ora.oc4j
      1        ONLINE  ONLINE       rac2
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
      2        ONLINE  ONLINE       rac2                     Open
ora.scan1.vip
      1        ONLINE  ONLINE       rac1
ora.scan2.vip
      1        ONLINE  ONLINE       rac2
ora.scan3.vip
      1        ONLINE  ONLINE       rac2

SQL> conn / as sysdba
Connected.

SQL> col INSTANCE_NAME form a30
SQL> col STATUS form a10
SQL> select INSTANCE_NAME, STATUS from GV$INSTANCE;

INSTANCE_NAME                  STATUS
------------------------------ ----------
racdb1                         OPEN
racdb2                         OPEN


VIII. 업그레이드 사전 준비

1. 11g PSU 패치 적용

2. 11g PSU 패치

A) OPatch 업데이트

$DB_HOME의 OPatch 업데이트
$DB_HOME/OPatch/opatch version
mv $DB_HOME/OPatch $DB_HOME/OPatch.bak
cp -r $GRID_HOME/OPatch $DB_HOME
chown -R oracle:oinstall $DB_HOME/OPatch
$DB_HOME/OPatch/opatch version
[root@rac1 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.

[root@rac1 ~]# $DB_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

[root@rac1 ~]# mv $DB_HOME/OPatch $DB_HOME/OPatch.old

[root@rac1 ~]# cp -r $GRID_HOME/OPatch $DB_HOME

[root@rac1 ~]# chown -R oracle:oinstall $DB_HOME/OPatch

[root@rac1 ~]# $DB_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.
[root@rac2 ~]# $GRID_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.

[root@rac2 ~]# $DB_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

[root@rac2 ~]# mv $DB_HOME/OPatch $DB_HOME/OPatch.old

[root@rac2 ~]# cp -r $GRID_HOME/OPatch $DB_HOME

[root@rac2 ~]# chown -R oracle:oinstall $DB_HOME/OPatch

[root@rac2 ~]# $DB_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.23

OPatch succeeded.


B) 사전 조사

패치 적용 여부 확인
grid_env
opatch lspatches
db_env
opatch lspatches
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> opatch lspatches
18370031;Grid Infrastructure Patch Set Update : 11.2.0.4.x (gibugno)

OPatch succeeded.

[+ASM1:/home/oracle]> db_env

[racdb1:/home/oracle]> opatch lspatches
이 Oracle 홈에 설치된 Interim 패치가 없습니다 "/u01/app/oracle/product/11.2.0/db_1".

OPatch succeeded.
[racdb2:/home/oracle]> grid_env

[+ASM2:/home/oracle]> opatch lspatches
18370031;Grid Infrastructure Patch Set Update : 11.2.0.4.x (gibugno)

OPatch succeeded.

[+ASM2:/home/oracle]> db_env

[racdb2:/home/oracle]> opatch lspatches
이 Oracle 홈에 설치된 Interim 패치가 없습니다 "/u01/app/oracle/product/11.2.0/db_1".

OPatch succeeded.


Grid 패치 충돌 여부 조사
grid_env
opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>
opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<ACFS PSU 번호>
opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<DB PSU 번호>
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_08-56-54오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[+ASM1:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/29509309
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_08-57-00오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[+ASM1:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_08-57-05오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.
[racdb2:/home/oracle]> grid_env

[+ASM2:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-19-16오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[+ASM2:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/29509309
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-19-20오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[+ASM2:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $GRID_HOME -ph /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-19-24오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.


DB 패치 충돌 여부 조사
db_env
opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>
opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<DB PSU 번호>
[+ASM1:/home/oracle]> db_env

[racdb1:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_08-57-31오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[racdb1:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_08-57-36오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.
[+ASM2:/home/oracle]> db_env

[racdb2:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-19-59오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[racdb2:/home/oracle]> opatch prereq CheckConflictAgainstOHWithDetail -oh $DB_HOME -ph /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-20-04오전_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.


C) 1번 노드 패치

1번 노드 패치를 위해 CRS 홈 unlock
$GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -unlock
[root@rac1 ~]# $GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -unlock
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac1'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac1'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac1'
CRS-2673: Attempting to stop 'ora.racdb.db' on 'rac1'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac1'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'rac1'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.rac1.vip' on 'rac1'
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'rac1'
CRS-2677: Stop of 'ora.racdb.db' on 'rac1' succeeded
CRS-2677: Stop of 'ora.rac1.vip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.rac1.vip' on 'rac2'
CRS-2677: Stop of 'ora.scan1.vip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.scan1.vip' on 'rac2'
CRS-2676: Start of 'ora.rac1.vip' on 'rac2' succeeded
CRS-2676: Start of 'ora.scan1.vip' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'rac2'
CRS-2676: Start of 'ora.LISTENER_SCAN1.lsnr' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'rac1'
CRS-2677: Stop of 'ora.ons' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'rac1'
CRS-2677: Stop of 'ora.net1.network' on 'rac1' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac1' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.crf' on 'rac1'
CRS-2673: Attempting to stop 'ora.ctssd' on 'rac1'
CRS-2673: Attempting to stop 'ora.evmd' on 'rac1'
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'rac1'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac1'
CRS-2677: Stop of 'ora.mdnsd' on 'rac1' succeeded
CRS-2677: Stop of 'ora.evmd' on 'rac1' succeeded
CRS-2677: Stop of 'ora.crf' on 'rac1' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'rac1'
CRS-2677: Stop of 'ora.cssd' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'rac1'
CRS-2677: Stop of 'ora.gipcd' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac1'
CRS-2677: Stop of 'ora.gpnpd' on 'rac1' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac1' has completed
CRS-4133: Oracle High Availability Services has been stopped.
Successfully unlock /u01/app/11.2.0/grid


1번 노드 Grid 패치 적용
grid_env
$GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>
$GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<ACFS PSU 번호>
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<DB PSU 번호>
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_08-58-56오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29938455

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '29938455'을(를) 적용하는 중

oracle.crs, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29938455 successfully applied.
Sub-set patch [18370031] has become inactive due to the application of a super-set patch [29938455].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_08-58-56오전_1.log

OPatch succeeded.

[+ASM1:/home/oracle]> $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/29509309
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-00-14오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29509309

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '29509309'을(를) 적용하는 중

oracle.usm, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29509309 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-00-14오전_1.log

OPatch succeeded.

[+ASM1:/home/oracle]> $GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-02-24오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   17478514  18031668  18522509  19121551  19769489  20299013  20760982  21352635  21948347  22502456  23054359  24006111  24732075  25869727  26609445  26392168  26925576  27338049  27734982  28204707  28729262  29141056  29497421  29913194  30298532

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sdo, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo.locator, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18031668' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.crs, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18522509' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19121551' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19769489' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.ovm, 11.2.0.4.0 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.oraolap, 11.2.0.4.0 ] , [ oracle.sysman.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20299013' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.dv, 11.2.0.4.0 ] , [ oracle.rdbms.oci, 11.2.0.4.0 ] , [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sysman.common, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common.core, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20760982' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21352635' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21948347' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.ovm, 11.2.0.4.0 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.tfa, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] , [ oracle.sysman.oms.core, 10.2.0.4.5 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '22502456' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.tfa, 11.2.0.4.0 ] , [ oracle.rdbms.olap, 11.2.0.4.0 ] , [ oracle.oraolap, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.oraolap.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '23054359' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.dv, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24006111' to OH '/u01/app/11.2.0/grid'

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24732075' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.plugin.db.main.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.server, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '25869727' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26609445' to OH '/u01/app/11.2.0/grid'

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26392168' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.listener, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26925576' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27338049' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.assistants.server, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27734982' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28204707' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] , [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.
Applying changes to emctl script on the home: /u01/app/11.2.0/grid ...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.security.osdt, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.owm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28729262' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.
INFO: Script isn't applicable to this port!

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29141056' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29497421' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29913194' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '30298532' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.tg4tera, 11.2.0.4.0 ] , [ oracle.rdbms.tg4sybs, 11.2.0.4.0 ] , [ oracle.rdbms.tg4ifmx, 11.2.0.4.0 ] , [ oracle.rdbms.tg4db2, 11.2.0.4.0 ] , [ oracle.rdbms.tg4msql, 11.2.0.4.0 ] , [ oracle.rdbms.hsodbc, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...
Composite patch 30298532 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-02-24오전_1.log

OPatch succeeded.


1번 노드 DB 패치 적용
db_env
<PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>/custom/server/<OCW PSU 번호>/custom/scripts/prepatch.sh -dbhome $DB_HOME
$DB_HOME/OPatch/opatch napply -oh $DB_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>/custom/server/<OCW PSU 번호>
$DB_HOME/OPatch/opatch apply -oh $DB_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<DB PSU 번호>
<PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>/custom/server/<OCW PSU 번호>/custom/scripts/postpatch.sh -dbhome $DB_HOME
[+ASM1:/home/oracle]> db_env

[racdb1:/home/oracle]> /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $DB_HOME
/media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/prepatch.sh completed successfully.

[racdb1:/home/oracle]> $DB_HOME/OPatch/opatch napply -oh $DB_HOME -local /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-06-15오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29938455

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/oracle/product/11.2.0/db_1')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/oracle/product/11.2.0/db_1'에 Interim 패치 '29938455'을(를) 적용하는 중

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29938455 successfully applied.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-06-15오전_1.log

OPatch succeeded.

[racdb1:/home/oracle]> $DB_HOME/OPatch/opatch apply -oh $DB_HOME -local /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-06-41오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   17478514  18031668  18522509  19121551  19769489  20299013  20760982  21352635  21948347  22502456  23054359  24006111  24732075  25869727  26609445  26392168  26925576  27338049  27734982  28204707  28729262  29141056  29497421  29913194  30298532

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/oracle/product/11.2.0/db_1')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo.locator, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18031668' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.crs, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18522509' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19121551' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19769489' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ovm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20299013' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.dv, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.oci, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common.core, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20760982' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21352635' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21948347' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.tfa, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.ovm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.oms.core, 10.2.0.4.5 구성요소를 패치하는 중...
Applying sub-patch '22502456' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.tfa, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.olap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '23054359' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.dv, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24006111' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24732075' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.plugin.db.main.agent, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.server, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '25869727' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26609445' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26392168' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.listener, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26925576' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27338049' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.assistants.server, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27734982' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28204707' to OH '/u01/app/oracle/product/11.2.0/db_1'
Applying changes to emctl script on the home: /u01/app/oracle/product/11.2.0/db_1 ...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.security.osdt, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.owm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28729262' to OH '/u01/app/oracle/product/11.2.0/db_1'
INFO: Script isn't applicable to this port!

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29141056' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29497421' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29913194' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '30298532' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.tg4tera, 11.2.0.4.0 ] , [ oracle.rdbms.tg4sybs, 11.2.0.4.0 ] , [ oracle.rdbms.tg4ifmx, 11.2.0.4.0 ] , [ oracle.rdbms.tg4db2, 11.2.0.4.0 ] , [ oracle.rdbms.tg4msql, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.hsodbc, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so .so
+ libname=libnmeoci
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so _LIBNAME=libnmeoci _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmeociLIBS)' '_LIBNAME_EXTRALIBS=$(libnmeociEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so .so
+ libname=libnmefw
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so _LIBNAME=libnmefw _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefwLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefwEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so .so
+ libname=libnmefos
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so _LIBNAME=libnmefos _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefosLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefosEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so .so
+ libname=libnmefsql
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so _LIBNAME=libnmefsql _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefsqlLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefsqlEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so .so
+ libname=libnmefud
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so _LIBNAME=libnmefud _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefudLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefudEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so .so
+ libname=libnmefdms
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so _LIBNAME=libnmefdms _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefdmsLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefdmsEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so .so
+ libname=libnmefojmx
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so _LIBNAME=libnmefojmx _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefojmxLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefojmxEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so .so
+ libname=libnmefut
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so _LIBNAME=libnmefut _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefutLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefutEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so .so
+ libname=libnmefvr
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so _LIBNAME=libnmefvr _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefvrLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefvrEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so .so
+ libname=libnmefpfa
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so _LIBNAME=libnmefpfa _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefpfaLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefpfaEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so .so
+ libname=libnmevq
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so _LIBNAME=libnmevq _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevqLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevqEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so .so
+ libname=libnmevsp
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so _LIBNAME=libnmevsp _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevspLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevspEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so .so
+ libname=libnmevc
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so _LIBNAME=libnmevc _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevcLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevcEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so .so
+ libname=libnmadbg
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so _LIBNAME=libnmadbg _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmadbgLIBS)' '_LIBNAME_EXTRALIBS=$(libnmadbgEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so .so
+ libname=libnmadm
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so _LIBNAME=libnmadm _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmadmLIBS)' '_LIBNAME_EXTRALIBS=$(libnmadmEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so .so
+ libname=libnmalk
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so _LIBNAME=libnmalk _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmalkLIBS)' '_LIBNAME_EXTRALIBS=$(libnmalkEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so .so
+ libname=libnmastk
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so _LIBNAME=libnmastk _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmastkLIBS)' '_LIBNAME_EXTRALIBS=$(libnmastkEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so .so
+ libname=libnmasf
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so _LIBNAME=libnmasf _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmasfLIBS)' '_LIBNAME_EXTRALIBS=$(libnmasfEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so .so
+ libname=libnmarl
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so _LIBNAME=libnmarl _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmarlLIBS)' '_LIBNAME_EXTRALIBS=$(libnmarlEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so .so
+ libname=libnmefsp
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so _LIBNAME=libnmefsp _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefspLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefspEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so .so
+ libname=libnmefsqlt
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so _LIBNAME=libnmefsqlt _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefsqltLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefsqltEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so .so
+ libname=libnmefport
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so _LIBNAME=libnmefport _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefportLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefportEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so .so
+ libname=libnmcfhc
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so _LIBNAME=libnmcfhc _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmcfhcLIBS)' '_LIBNAME_EXTRALIBS=$(libnmcfhcEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so .so
+ libname=libnmcfsga
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so _LIBNAME=libnmcfsga _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmcfsgaLIBS)' '_LIBNAME_EXTRALIBS=$(libnmcfsgaEXTRALIBS)'
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.


Composite patch 30298532 successfully applied.
OPatch Session이 경고와 함께 완료되었습니다.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-06-41오전_1.log

OPatch completed with warnings.

[racdb1:/home/oracle]> /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $DB_HOME
Reading /u01/app/oracle/product/11.2.0/db_1/install/params.ora..
Reading /u01/app/oracle/product/11.2.0/db_1/install/params.ora..
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/diskmon.bin
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/lsnodes
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/osdbagrp
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/rawutl
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/srvm/admin/ractrans
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/srvm/admin/getcrshome
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/gnsd
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/crsdiag.pl
Postpatch completed successfully

DB PSU를 적용하는 과정에서 lazyload, nolazyload 경고가 발생하는 부분이 있으나, 오라클 문서 2071922.1 에 있는 버그로 시스템에 위협이 되는 경고가 아니므로 무시하고 진행해도 됩니다.

1번 노드 root 스크립트 실행
$GRID_HOME/rdbms/install/rootadd_rdbms.sh
$GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -patch
[root@rac1 ~]# $GRID_HOME/rdbms/install/rootadd_rdbms.sh

[root@rac1 ~]# $GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -patch
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.


1번 노드 패치 결과 확인
grid_env
opatch lspatches
db_env
opatch lspatches
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> opatch lspatches
30298532;Database Patch Set Update : 11.2.0.4.200114 (30298532)
29509309;ACFS Patch Set Update : 11.2.0.4.190716 (29509309)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)

OPatch succeeded.

[+ASM1:/home/oracle]> db_env

[racdb1:/home/oracle]> opatch lspatches
30298532;Database Patch Set Update : 11.2.0.4.200114 (30298532)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)

OPatch succeeded.


D) 2번 노드 패치

2번 노드 패치를 위해 CRS 홈 unlock
$GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -unlock
[root@rac2 ~]# $GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -unlock
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac2'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac2'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac2'
CRS-2673: Attempting to stop 'ora.cvu' on 'rac2'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'rac2'
CRS-2673: Attempting to stop 'ora.racdb.db' on 'rac2'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'rac2'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac2'
CRS-2673: Attempting to stop 'ora.oc4j' on 'rac2'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.rac2.vip' on 'rac2'
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'rac2'
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'rac2'
CRS-2677: Stop of 'ora.cvu' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.cvu' on 'rac1'
CRS-2676: Start of 'ora.cvu' on 'rac1' succeeded
CRS-2677: Stop of 'ora.rac2.vip' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.rac2.vip' on 'rac1'
CRS-2677: Stop of 'ora.racdb.db' on 'rac2' succeeded
CRS-2677: Stop of 'ora.scan3.vip' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.scan3.vip' on 'rac1'
CRS-2677: Stop of 'ora.scan2.vip' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.scan2.vip' on 'rac1'
CRS-2676: Start of 'ora.rac2.vip' on 'rac1' succeeded
CRS-2676: Start of 'ora.scan3.vip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN3.lsnr' on 'rac1'
CRS-2676: Start of 'ora.scan2.vip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on 'rac1'
CRS-2676: Start of 'ora.LISTENER_SCAN3.lsnr' on 'rac1' succeeded
CRS-2677: Stop of 'ora.oc4j' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.oc4j' on 'rac1'
CRS-2676: Start of 'ora.LISTENER_SCAN2.lsnr' on 'rac1' succeeded
CRS-2676: Start of 'ora.oc4j' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'rac2'
CRS-2677: Stop of 'ora.ons' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'rac2'
CRS-2677: Stop of 'ora.net1.network' on 'rac2' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac2' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.crf' on 'rac2'
CRS-2673: Attempting to stop 'ora.ctssd' on 'rac2'
CRS-2673: Attempting to stop 'ora.evmd' on 'rac2'
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'rac2'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac2'
CRS-2677: Stop of 'ora.crf' on 'rac2' succeeded
CRS-2677: Stop of 'ora.evmd' on 'rac2' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'rac2' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'rac2' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'rac2'
CRS-2677: Stop of 'ora.cssd' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'rac2'
CRS-2677: Stop of 'ora.gipcd' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac2'
CRS-2677: Stop of 'ora.gpnpd' on 'rac2' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac2' has completed
CRS-4133: Oracle High Availability Services has been stopped.
Successfully unlock /u01/app/11.2.0/grid

1번 노드를 모두 패치한 후에 2번 노드의 작업을 진행해야 합니다.

2번 노드 Grid 패치 적용
grid_env
$GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<OCW PSU 번호>
$GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<ACFS PSU 번호>
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local <PSU 압축 해제 디렉토리>/<Grid PSU 번호>/<DB PSU 번호>
[racdb2:/home/oracle]> grid_env

[+ASM2:/home/oracle]> $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-21-41오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29938455

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '29938455'을(를) 적용하는 중

oracle.crs, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29938455 successfully applied.
Sub-set patch [18370031] has become inactive due to the application of a super-set patch [29938455].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-21-41오전_1.log

OPatch succeeded.

[+ASM2:/home/oracle]> $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/29509309
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-22-52오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29509309

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/11.2.0/grid'에 Interim 패치 '29509309'을(를) 적용하는 중

oracle.usm, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29509309 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-22-52오전_1.log

OPatch succeeded.

[+ASM2:/home/oracle]> $GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/11.2.0/grid
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/11.2.0/grid/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-25-00오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   17478514  18031668  18522509  19121551  19769489  20299013  20760982  21352635  21948347  22502456  23054359  24006111  24732075  25869727  26609445  26392168  26925576  27338049  27734982  28204707  28729262  29141056  29497421  29913194  30298532

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/11.2.0/grid')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sdo, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo.locator, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18031668' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.crs, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18522509' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19121551' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19769489' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.ovm, 11.2.0.4.0 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.oraolap, 11.2.0.4.0 ] , [ oracle.sysman.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20299013' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.dv, 11.2.0.4.0 ] , [ oracle.rdbms.oci, 11.2.0.4.0 ] , [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sysman.common, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common.core, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20760982' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.console.db, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21352635' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21948347' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.ovm, 11.2.0.4.0 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.tfa, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] , [ oracle.sysman.oms.core, 10.2.0.4.5 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '22502456' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.tfa, 11.2.0.4.0 ] , [ oracle.rdbms.olap, 11.2.0.4.0 ] , [ oracle.oraolap, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.oraolap.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '23054359' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.dv, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24006111' to OH '/u01/app/11.2.0/grid'

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24732075' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.plugin.db.main.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.server, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '25869727' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26609445' to OH '/u01/app/11.2.0/grid'

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26392168' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.listener, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26925576' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27338049' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.assistants.server, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27734982' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28204707' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] , [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.
Applying changes to emctl script on the home: /u01/app/11.2.0/grid ...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.security.osdt, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.owm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28729262' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.
INFO: Script isn't applicable to this port!

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29141056' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29497421' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.ctx, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29913194' to OH '/u01/app/11.2.0/grid'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '30298532' to OH '/u01/app/11.2.0/grid'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.tg4tera, 11.2.0.4.0 ] , [ oracle.rdbms.tg4sybs, 11.2.0.4.0 ] , [ oracle.rdbms.tg4ifmx, 11.2.0.4.0 ] , [ oracle.rdbms.tg4db2, 11.2.0.4.0 ] , [ oracle.rdbms.tg4msql, 11.2.0.4.0 ] , [ oracle.rdbms.hsodbc, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...
Composite patch 30298532 successfully applied.
Log file location: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2020-04-16_09-25-00오전_1.log

OPatch succeeded.


2번 노드 DB 패치 적용
db_env
<PSU 압축 해제 디렉토리>/30501155/<OCW PSU 번호>/custom/server/<OCW PSU 번호>/custom/scripts/prepatch.sh -dbhome $DB_HOME
$DB_HOME/OPatch/opatch napply -oh $DB_HOME -local <PSU 압축 해제 디렉토리>/30501155/<OCW PSU 번호>/custom/server/<OCW PSU 번호>
$DB_HOME/OPatch/opatch apply -oh $DB_HOME -local <PSU 압축 해제 디렉토리>/30501155/<DB PSU 번호>
<PSU 압축 해제 디렉토리>/30501155/<OCW PSU 번호>/custom/server/<OCW PSU 번호>/custom/scripts/postpatch.sh -dbhome $DB_HOME
[+ASM2:/home/oracle]> db_env

[racdb2:/home/oracle]> /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $DB_HOME
/media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/prepatch.sh completed successfully.

[racdb2:/home/oracle]> $DB_HOME/OPatch/opatch napply -oh $DB_HOME -local /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-29-21오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29938455

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/oracle/product/11.2.0/db_1')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
OH '/u01/app/oracle/product/11.2.0/db_1'에 Interim 패치 '29938455'을(를) 적용하는 중

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Patch 29938455 successfully applied.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-29-21오전_1.log

OPatch succeeded.

[racdb2:/home/oracle]> $DB_HOME/OPatch/opatch apply -oh $DB_HOME -local /media/sf_oracle/11.2/30501155/30298532
Oracle Interim 패치 설치 프로그램 버전 11.2.0.3.23
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle 홈: /u01/app/oracle/product/11.2.0/db_1
중앙 인벤토리: /u01/app/oraInventory
   출처: /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 버전: 11.2.0.3.23
OUI 버전: 11.2.0.4.0
로그 파일 위치: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-29-48오전_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   17478514  18031668  18522509  19121551  19769489  20299013  20760982  21352635  21948347  22502456  23054359  24006111  24732075  25869727  26609445  26392168  26925576  27338049  27734982  28204707  28729262  29141056  29497421  29913194  30298532

계속하겠습니까? [y|n]
y
User Responded with: Y
All checks passed.

로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오.
(Oracle 홈 = '/u01/app/oracle/product/11.2.0/db_1')


로컬 시스템이 패치할 준비가 되었습니까? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sdo.locator, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18031668' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.crs, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '18522509' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19121551' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '19769489' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.sysman.agent, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ovm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20299013' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.dv, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.oci, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.common.core, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.deconfig, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '20760982' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21352635' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '21948347' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.tfa, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.ovm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.oms.core, 10.2.0.4.5 구성요소를 패치하는 중...
Applying sub-patch '22502456' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.tfa, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.olap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oraolap, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '23054359' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms.dv, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24006111' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '24732075' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.precomp.common, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.plugin.db.main.agent, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.jai, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ordim.server, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '25869727' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26609445' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26392168' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.oid.client, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.client, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.xdk, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.listener, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.nlsrtl.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.parser.java, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.xdk.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '26925576' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27338049' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.assistants.server, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '27734982' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28204707' to OH '/u01/app/oracle/product/11.2.0/db_1'
Applying changes to emctl script on the home: /u01/app/oracle/product/11.2.0/db_1 ...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sysman.agent, 10.2.0.4.5 구성요소를 패치하는 중...

oracle.sysman.console.db, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.security.osdt, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.owm, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.sqlplus.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '28729262' to OH '/u01/app/oracle/product/11.2.0/db_1'
INFO: Script isn't applicable to this port!

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29141056' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29497421' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rman, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.oracore.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ctx, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '29913194' to OH '/u01/app/oracle/product/11.2.0/db_1'

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.network.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.util, 11.2.0.4.0 구성요소를 패치하는 중...
Applying sub-patch '30298532' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Oracle 홈에 선택적 구성요소 [ oracle.rdbms.tg4tera, 11.2.0.4.0 ] , [ oracle.rdbms.tg4sybs, 11.2.0.4.0 ] , [ oracle.rdbms.tg4ifmx, 11.2.0.4.0 ] , [ oracle.rdbms.tg4db2, 11.2.0.4.0 ] , [ oracle.rdbms.tg4msql, 11.2.0.4.0 ] 이(가) 없거나 상위 버전이 발견되었습니다.

oracle.rdbms.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.dbscripts, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.rdbms.hsodbc, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf, 11.2.0.4.0 구성요소를 패치하는 중...

oracle.ldap.rsf.ic, 11.2.0.4.0 구성요소를 패치하는 중...

OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.



OPatch가 make 명령의 stderr에서 단어 "warning"을(를) 찾았습니다.
이 stderr을 참조하십시오. 이 make 명령을 재실행할 수 있습니다.
Stderr output:
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so .so
+ libname=libnmeoci
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmeoci.so _LIBNAME=libnmeoci _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmeociLIBS)' '_LIBNAME_EXTRALIBS=$(libnmeociEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so .so
+ libname=libnmefw
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefw.so _LIBNAME=libnmefw _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefwLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefwEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so .so
+ libname=libnmefos
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefos.so _LIBNAME=libnmefos _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefosLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefosEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so .so
+ libname=libnmefsql
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsql.so _LIBNAME=libnmefsql _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefsqlLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefsqlEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so .so
+ libname=libnmefud
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefud.so _LIBNAME=libnmefud _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefudLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefudEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so .so
+ libname=libnmefdms
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefdms.so _LIBNAME=libnmefdms _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefdmsLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefdmsEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so .so
+ libname=libnmefojmx
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefojmx.so _LIBNAME=libnmefojmx _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefojmxLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefojmxEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so .so
+ libname=libnmefut
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefut.so _LIBNAME=libnmefut _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefutLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefutEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so .so
+ libname=libnmefvr
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefvr.so _LIBNAME=libnmefvr _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefvrLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefvrEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so .so
+ libname=libnmefpfa
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefpfa.so _LIBNAME=libnmefpfa _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefpfaLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefpfaEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so .so
+ libname=libnmevq
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevq.so _LIBNAME=libnmevq _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevqLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevqEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so .so
+ libname=libnmevsp
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevsp.so _LIBNAME=libnmevsp _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevspLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevspEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so .so
+ libname=libnmevc
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmevc.so _LIBNAME=libnmevc _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmevcLIBS)' '_LIBNAME_EXTRALIBS=$(libnmevcEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so .so
+ libname=libnmadbg
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadbg.so _LIBNAME=libnmadbg _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmadbgLIBS)' '_LIBNAME_EXTRALIBS=$(libnmadbgEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so .so
+ libname=libnmadm
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmadm.so _LIBNAME=libnmadm _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmadmLIBS)' '_LIBNAME_EXTRALIBS=$(libnmadmEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so .so
+ libname=libnmalk
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmalk.so _LIBNAME=libnmalk _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmalkLIBS)' '_LIBNAME_EXTRALIBS=$(libnmalkEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so .so
+ libname=libnmastk
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmastk.so _LIBNAME=libnmastk _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmastkLIBS)' '_LIBNAME_EXTRALIBS=$(libnmastkEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so .so
+ libname=libnmasf
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmasf.so _LIBNAME=libnmasf _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmasfLIBS)' '_LIBNAME_EXTRALIBS=$(libnmasfEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so .so
+ libname=libnmarl
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmarl.so _LIBNAME=libnmarl _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmarlLIBS)' '_LIBNAME_EXTRALIBS=$(libnmarlEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so .so
+ libname=libnmefsp
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsp.so _LIBNAME=libnmefsp _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefspLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefspEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so .so
+ libname=libnmefsqlt
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefsqlt.so _LIBNAME=libnmefsqlt _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefsqltLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefsqltEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so .so
+ libname=libnmefport
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmefport.so _LIBNAME=libnmefport _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmefportLIBS)' '_LIBNAME_EXTRALIBS=$(libnmefportEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so .so
+ libname=libnmcfhc
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfhc.so _LIBNAME=libnmcfhc _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmcfhcLIBS)' '_LIBNAME_EXTRALIBS=$(libnmcfhcEXTRALIBS)'
+ PATH=/bin:/usr/bin:/usr/ccs/bin
+ export PATH
+ lib=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so
+ makefile=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
+ so_ext=so
+ target=new_ld_shlib
+ var=
++ basename /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so .so
+ libname=libnmcfsga
++ dirname /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so
+ dir=/u01/app/oracle/product/11.2.0/db_1/sysman/lib
+ '[' var = new_ld_shlib ']'
+ '[' -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.a ']'
+ dir2=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
+ '[' '' '!=' '' ']'
+ make -f /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk new_ld_shlib _FULL_LIBNAME=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/libnmcfsga.so _LIBNAME=libnmcfsga _LIBDIR=/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ '_LIBNAME_LIBS=$(libnmcfsgaLIBS)' '_LIBNAME_EXTRALIBS=$(libnmcfsgaEXTRALIBS)'
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.


Composite patch 30298532 successfully applied.
OPatch Session이 경고와 함께 완료되었습니다.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-04-16_09-29-48오전_1.log

OPatch completed with warnings.

[racdb2:/home/oracle]> /media/sf_oracle/11.2/30501155/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $DB_HOME
Reading /u01/app/oracle/product/11.2.0/db_1/install/params.ora..
Reading /u01/app/oracle/product/11.2.0/db_1/install/params.ora..
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Parsing file /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Verifying file /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/racgwrap
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/srvctl
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/srvconfig
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/cluvfy
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/diskmon.bin
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/lsnodes
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/osdbagrp
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/rawutl
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/srvm/admin/ractrans
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/srvm/admin/getcrshome
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/gnsd
Reapplying file permissions on /u01/app/oracle/product/11.2.0/db_1/bin/crsdiag.pl
Postpatch completed successfully

1번 노드와 마찬가지로 DB PSU 패치시에 나오는 경고는 무시해도 됩니다.

2번 노드 root 스크립트 실행
$GRID_HOME/rdbms/install/rootadd_rdbms.sh
$GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -patch
[root@rac2 ~]# $GRID_HOME/rdbms/install/rootadd_rdbms.sh

[root@rac2 ~]# $GRID_HOME/perl/bin/perl $GRID_HOME/crs/install/rootcrs.pl -patch
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.


2번 노드 패치 결과 확인
grid_env
opatch lspatches
db_env
opatch lspatches
[racdb2:/home/oracle]> grid_env

[+ASM2:/home/oracle]> opatch lspatches
30298532;Database Patch Set Update : 11.2.0.4.200114 (30298532)
29509309;ACFS Patch Set Update : 11.2.0.4.190716 (29509309)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)

OPatch succeeded.

[+ASM2:/home/oracle]> db_env

[racdb2:/home/oracle]> opatch lspatches
30298532;Database Patch Set Update : 11.2.0.4.200114 (30298532)
29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)

OPatch succeeded.


E) Database에 PSU 적용

데이터베이스에 PSU 패치 적용
@?/rdbms/admin/catbundle.sql psu apply
@?/rdbms/admin/utlrp.sql
[racdb1:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 16 09:49:29 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> col ACTION_TIME form a30
SQL> col ACTION form a10
SQL> col VERSION form a10
SQL> col COMMENTS form a20
SQL> select ACTION_TIME, ACTION, VERSION, COMMENTS from REGISTRY$HISTORY;

ACTION_TIME                    ACTION     VERSION    COMMENTS
------------------------------ ---------- ---------- --------------------
20/04/14 16:06:47.563599       APPLY      11.2.0.4   Patchset 11.2.0.2.0

SQL> @?/rdbms/admin/catbundle.sql psu apply

PL/SQL procedure successfully completed.


Function created.


Function created.


PL/SQL procedure successfully completed.







PL/SQL procedure successfully completed.





Generating apply and rollback scripts...
Check the following file for errors:
/u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_RACDB_GENERATE_2020Apr16_09_52_12.log
Apply script: /u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catbundle_PSU_RACDB_APPLY.sql
Rollback script: /u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catbundle_PSU_RACDB_ROLLBACK.sql

PL/SQL procedure successfully completed.

Executing script file...

...  << 생략 >> ...

SQL> ALTER SESSION SET current_schema = SYS;

Session altered.

SQL> PROMPT Updating registry...
Updating registry...
SQL> INSERT INTO registry$history
  2    (action_time, action,
  3     namespace, version, id,
  4     bundle_series, comments)
  5  VALUES
  6    (SYSTIMESTAMP, 'APPLY',
  7     SYS_CONTEXT('REGISTRY$CTX','NAMESPACE'),
  8     '11.2.0.4',
  9     200114,
 10     'PSU',
 11     'PSU 11.2.0.4.200114');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SPOOL off
SQL> SET echo off
Check the following log file for errors:
/u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_RACDB_APPLY_2020Apr16_09_52_16.log
SQL> @?/rdbms/admin/utlrp.sql

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2020-04-16 09:57:31

1 row selected.

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END  2020-04-16 09:57:37

1 row selected.

DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

1 row selected.

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0

1 row selected.


Function created.


PL/SQL procedure successfully completed.


Function dropped.


PL/SQL procedure successfully completed.


데이터베이스 PSU 패치 결과 확인
select ACTION_TIME, ACTION, VERSION, COMMENTS from REGISTRY$HISTORY;
QL> select ACTION_TIME, ACTION, VERSION, COMMENTS from REGISTRY$HISTORY;

ACTION_TIME                    ACTION     VERSION    COMMENTS
------------------------------ ---------- ---------- --------------------
20/04/14 16:06:47.563599       APPLY      11.2.0.4   Patchset 11.2.0.2.0
20/04/16 09:55:09.998487       APPLY      11.2.0.4   PSU 11.2.0.4.200114

2 rows selected.

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
[racdb1:/home/oracle]>


 

3. ASM으로 데이터베이스 이관

4. ASM 구성


A) ASM 인스턴스 및 디스크 그룹 생성

ASM 인스턴스 및 디스크 그룹 생성
grid_env
asmca -silent -configureASM -sysAsmPassword <SYSASM 암호> -asmsnmpPassword <ASMSNMP 암호> -diskString 'ORCL:*' -diskGroupName CRS -diskList 'ORCL:CRS1,ORCL:CRS2,ORCL:CRS3' -redundancy NORMAL
[racdb1:/home/oracle]> grid_env

[+ASM1:/home/oracle]> asmca -silent -configureASM -sysAsmPassword oracle_4U -asmsnmpPassword oracle_4U -diskString 'ORCL:*' -diskGroupName CRS -diskList 'ORCL:CRS1,ORCL:CRS2,ORCL:CRS3' -redundancy NORMAL

ASM이 성공적으로 생성되고 시작되었습니다.

디스크 그룹 CRS이(가) 성공적으로 생성되었습니다.

[+ASM1:/home/oracle]> asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512   4096  1048576      3069     2764             1023             870              0             N  CRS/


DATA 및 FRA 디스크 그룹 추가 생성
asmca -silent -createDiskGroup -diskString 'ORCL:*' -diskGroupName DATA -disk 'ORCL:DATA' -redundancy EXTERNAL
asmca -silent -createDiskGroup -diskString 'ORCL:*' -diskGroupName FRA -disk 'ORCL:FRA' -redundancy EXTERNAL
[+ASM1:/home/oracle]> asmca -silent -createDiskGroup -diskString 'ORCL:*' -diskGroupName DATA -disk 'ORCL:DATA' -redundancy EXTERNAL

디스크 그룹 DATA이(가) 성공적으로 생성되었습니다.

[+ASM1:/home/oracle]> asmca -silent -createDiskGroup -diskString 'ORCL:*' -diskGroupName FRA -disk 'ORCL:FRA' -redundancy EXTERNAL

디스크 그룹 FRA이(가) 성공적으로 생성되었습니다.

[+ASM1:/home/oracle]> asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512   4096  1048576      3069     2764             1023             870              0             N  CRS/
MOUNTED  EXTERN  N         512   4096  1048576     30719    30624                0           30624              0             N  DATA/
MOUNTED  EXTERN  N         512   4096  1048576     20479    20384                0           20384              0             N  FRA/


B) CRS 및 Vote 영역 ASM으로 이관

ASM으로 OCR 영역 이관
ocrconfig -add +CRS
ocrconfig -delete /dev/raw/raw1
ocrconfig -delete /dev/raw/raw2
ocrcheck
[root@rac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3020
         Available space (kbytes) :     259100
         ID                       :  934357259
         Device/File Name         : /dev/raw/raw1
                                    Device/File integrity check succeeded
         Device/File Name         : /dev/raw/raw2
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check succeeded

[root@rac1 ~]# ocrconfig -add +CRS

[root@rac1 ~]# ocrconfig -delete /dev/raw/raw1

[root@rac1 ~]# ocrconfig -delete /dev/raw/raw2

[root@rac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3020
         Available space (kbytes) :     259100
         ID                       :  934357259
         Device/File Name         :       +CRS
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check succeeded


ASM으로 Vote 영역 이관
crsctl replace votedisk +CRS
crsctl query css votedisk
[root@rac1 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   a4c3ccb126b64f4dbf3d89ae84d163a2 (/dev/raw/raw3) []
 2. ONLINE   31693ea2d7774f83bfd26b71d8173078 (/dev/raw/raw4) []
 3. ONLINE   7527b0194b634f7abfbc3c3501a8a6f4 (/dev/raw/raw5) []
Located 3 voting disk(s).

[root@rac1 ~]# crsctl replace votedisk +CRS
CRS-4256: Updating the profile
Successful addition of voting disk d10cbc0b84bb4fa1bf868c98b6cb9463.
Successful addition of voting disk 6d485ec847b34f48bf3cd1462e0ba114.
Successful addition of voting disk e42528b7cab34f88bf51951976a27e4a.
Successful deletion of voting disk a4c3ccb126b64f4dbf3d89ae84d163a2.
Successful deletion of voting disk 31693ea2d7774f83bfd26b71d8173078.
Successful deletion of voting disk 7527b0194b634f7abfbc3c3501a8a6f4.
Successfully replaced voting disk group with +CRS.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced

[root@rac1 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   d10cbc0b84bb4fa1bf868c98b6cb9463 (ORCL:CRS1) [CRS]
 2. ONLINE   6d485ec847b34f48bf3cd1462e0ba114 (ORCL:CRS2) [CRS]
 3. ONLINE   e42528b7cab34f88bf51951976a27e4a (ORCL:CRS3) [CRS]
Located 3 voting disk(s).


C) ASM 호환성 변경

ASM 호환성 변경
asmcmd setattr -G CRS compatible.asm 11.2.0.2.0
asmcmd setattr -G DATA compatible.asm 11.2.0.2.0
asmcmd setattr -G FRA compatible.asm 11.2.0.2.0
asmcmd lsattr -G CRS -lm compatible.asm
asmcmd lsattr -G DATA -lm compatible.asm
asmcmd lsattr -G FRA -lm compatible.asm
[+ASM1:/home/oracle]> asmcmd lsattr -G CRS -lm compatible.asm
Group_Name  Name            Value       RO  Sys
CRS         compatible.asm  11.2.0.0.0  N   Y

[+ASM1:/home/oracle]> asmcmd lsattr -G DATA -lm compatible.asm
Group_Name  Name            Value       RO  Sys
DATA        compatible.asm  11.2.0.0.0  N   Y

[+ASM1:/home/oracle]> asmcmd lsattr -G FRA -lm compatible.asm
Group_Name  Name            Value       RO  Sys
FRA         compatible.asm  11.2.0.0.0  N   Y

[+ASM1:/home/oracle]> asmcmd setattr -G CRS compatible.asm 11.2.0.2.0
[+ASM1:/home/oracle]> asmcmd setattr -G DATA compatible.asm 11.2.0.2.0
[+ASM1:/home/oracle]> asmcmd setattr -G FRA compatible.asm 11.2.0.2.0

[+ASM1:/home/oracle]> asmcmd lsattr -G CRS -lm compatible.asm
Group_Name  Name            Value       RO  Sys
CRS         compatible.asm  11.2.0.2.0  N   Y

[+ASM1:/home/oracle]> asmcmd lsattr -G DATA -lm compatible.asm
Group_Name  Name            Value       RO  Sys
DATA        compatible.asm  11.2.0.2.0  N   Y

[+ASM1:/home/oracle]> asmcmd lsattr -G FRA -lm compatible.asm
Group_Name  Name            Value       RO  Sys
FRA         compatible.asm  11.2.0.2.0  N   Y

11g R2의 ASM을 19c로 업그레이드 하기 위해서는 ASM의 최소 호환성은 11.2.0.2 이상이어야 합니다.

5. ASM으로 Database 이관

A) 사전 현황 조사

데이터 파일 현황 조사
select TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 MB 
from DBA_DATA_FILES;
SQL> col TABLESPACE_NAME form a20
SQL> col FILE_NAME form a20
SQL> col MB form 999,999

SQL> select TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 MB from DBA_DATA_FILES;

TABLESPACE FILE_NAME                  MB
---------- -------------------- --------
SYSTEM     /dev/raw/raw6           1,000
SYSAUX     /dev/raw/raw7           1,000
UNDOTBS1   /dev/raw/raw10          1,000
UNDOTBS2   /dev/raw/raw11          1,000
USERS      /dev/raw/raw8             500


임시 파일 현황 조사
select NAME, BYTES/1024/1024 MB 
from V$TEMPFILE;
SQL> col NAME form a20
SQL> col MB form 999,999

SQL> select NAME, BYTES/1024/1024 MB from V$TEMPFILE;

NAME                       MB
-------------------- --------
/dev/raw/raw9             699


컨트롤 파일 현황 조사
select NAME
from V$CONTROLFILE;
SQL> col NAME form a20

SQL> select NAME from V$CONTROLFILE;

NAME
--------------------
/dev/raw/raw12
/dev/raw/raw13


Redo Log 현황 조사
select GROUP#, MEMBER 
from V$LOGFILE;
SQL> col MEMBER form a20

SQL> select GROUP#, MEMBER from V$LOGFILE;

    GROUP# MEMBER
---------- --------------------
         1 /dev/raw/raw14
         2 /dev/raw/raw15
         3 /dev/raw/raw16
         4 /dev/raw/raw17
         5 /dev/raw/raw18
         6 /dev/raw/raw19

6 rows selected.


B) Archive 모드 확인

운영 모드 현황 조사
archive log list;
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     18
Next log sequence to archive   20
Current log sequence           20


C) Data File 이관 준비

RMAN으로 Database를 ASM 영역으로 복사
backup as copy database format '+DATA';


[racdb1:/home/oracle]> rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Thu Apr 16 11:32:09 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RACDB (DBID=1035336379)

RMAN> backup as copy database format '+DATA';

Starting backup at 20/04/16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=23 instance=racdb1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/dev/raw/raw6
output file name=+DATA/racdb/datafile/system.256.1037878345 tag=TAG20200416T113220 RECID=1 STAMP=1037878349
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/dev/raw/raw7
output file name=+DATA/racdb/datafile/sysaux.257.1037878355 tag=TAG20200416T113220 RECID=2 STAMP=1037878361
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/dev/raw/raw10
output file name=+DATA/racdb/datafile/undotbs1.258.1037878363 tag=TAG20200416T113220 RECID=3 STAMP=1037878368
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/dev/raw/raw11
output file name=+DATA/racdb/datafile/undotbs2.259.1037878371 tag=TAG20200416T113220 RECID=4 STAMP=1037878376
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/dev/raw/raw8
output file name=+DATA/racdb/datafile/users.260.1037878377 tag=TAG20200416T113220 RECID=5 STAMP=1037878380
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=+DATA/racdb/controlfile/backup.261.1037878385 tag=TAG20200416T113220 RECID=6 STAMP=1037878385
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 20/04/16
channel ORA_DISK_1: finished piece 1 at 20/04/16
piece handle=+DATA/racdb/backupset/2020_04_16/nnsnf0_tag20200416t113220_0.262.1037878387 tag=TAG20200416T113220 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 20/04/16

RMAN> exit


Recovery Manager complete.


ASM 사용을 위한 Database 파라미터 변경
alter system set db_recovery_file_dest='+FRA' sid='*';
alter system set db_create_file_dest='+DATA' sid='*';
SQL> alter system set db_recovery_file_dest='+FRA' sid='*';

System altered.

SQL> alter system set db_create_file_dest='+DATA' sid='*';

System altered.


D) 파라미터 파일 ASM으로 이관

파라미터 파일 ASM 영역으로 이관
create pfile='$ORACLE_HOME/dbs/initracdb.ora' from spfile;
create spfile='+DATA/RACDB/spfileracdb.ora' from pfile='$ORACLE_HOME/dbs/initracdb.ora';
SQL> create pfile='$ORACLE_HOME/dbs/initracdb.ora' from spfile;

File created.

SQL> create spfile='+DATA/RACDB/spfileracdb.ora' from pfile='$ORACLE_HOME/dbs/initracdb.ora';

File created.


파라미터 파일 변경 및 1번 노드 파일 수정
srvctl modify database -d racdb -p +DATA/RACDB/spfileracdb.ora
mv $DB_HOME/dbs/initracdb1.ora $DB_HOME/dbs/initracdb1.ora.raw
echo "spfile='+DATA/RACDB/spfileracdb.ora'" > $DB_HOME/dbs/initracdb1.ora
[racdb1:/home/oracle]> srvctl modify database -d racdb -p +DATA/RACDB/spfileracdb.ora

[racdb1:/home/oracle]> mv $DB_HOME/dbs/initracdb1.ora $DB_HOME/dbs/initracdb1.ora.raw

[racdb1:/home/oracle]> echo "spfile='+DATA/RACDB/spfileracdb.ora'" > $DB_HOME/dbs/initracdb1.ora

[racdb1:/home/oracle]> cat $DB_HOME/dbs/initracdb1.ora
spfile='+DATA/RACDB/spfileracdb.ora'


2번 노드 파라미터 파일 수정
mv $DB_HOME/dbs/initracdb2.ora $DB_HOME/dbs/initracdb2.ora.raw
echo "spfile='+DATA/RACDB/spfileracdb.ora'" > $DB_HOME/dbs/initracdb2.ora
[racdb2:/home/oracle]> mv $DB_HOME/dbs/initracdb2.ora $DB_HOME/dbs/initracdb2.ora.raw

[racdb2:/home/oracle]> echo "spfile='+DATA/RACDB/spfileracdb.ora'" > $DB_HOME/dbs/initracdb2.ora

[racdb2:/home/oracle]> cat $DB_HOME/dbs/initracdb2.ora
spfile='+DATA/RACDB/spfileracdb.ora'


모든 노드 중지 후 1번 노드만 기동
srvctl stop database -d racdb -o immediate
srvctl start instance -d racdb -i racdb1 -o mount
[racdb1:/home/oracle]> srvctl stop database -d racdb -o immediate

[racdb1:/home/oracle]> srvctl start instance -d racdb -i racdb1 -o mount

[racdb1:/home/oracle]> crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  INTERMEDIATE rac1                     Mounted (Closed)
      2        OFFLINE OFFLINE                               Instance Shutdown
ora.scan1.vip
      1        ONLINE  ONLINE       rac2
ora.scan2.vip
      1        ONLINE  ONLINE       rac1
ora.scan3.vip
      1        ONLINE  ONLINE       rac1

ASM 영역으로 이관된 파라미터 파일을 적용하기 위해 데이터베이스를 재기동해야 합니다.

우선은 다른 파일들도 이관을 해야 하므로 1번 노드의 데이터베이스만 기동합니다.

E) 컨트롤 파일 ASM으로 이관

콘트롤 파일 위치 변경 및 No Mount 모드로 기동
alter system set control_files='+DATA','+FRA' sid='*' scope=spfile;
startup force nomount;
SQL> alter system set control_files='+DATA','+FRA' sid='*' scope=spfile;

System altered.

SQL> startup force nomount;
ORACLE instance started.

Total System Global Area 3206836224 bytes
Fixed Size                  2257520 bytes
Variable Size             721423760 bytes
Database Buffers         2466250752 bytes
Redo Buffers               16904192 bytes

Raw Device에 있는 컨트롤 파일을 이관하기 위해 컨트롤 파일의 위치 파라미터를 수정하고, 데이터베이스를 No Mount 모드로 전환합니다.

ASM 영역으로 컨트롤 파일 이관 및 적용
restore controlfile from '/dev/raw/raw12';
alter database mount;
[oracle@rac1 ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Thu Apr 16 11:37:55 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RACDB (not mounted)

RMAN> restore controlfile from '/dev/raw/raw12';

Starting restore at 20/04/16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=141 instance=racdb1 device type=DISK

channel ORA_DISK_1: copied control file copy
output file name=+DATA/racdb/controlfile/current.264.1037878683
output file name=+FRA/racdb/controlfile/current.256.1037878683
Finished restore at 20/04/16

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1


F) 데이터 파일 ASM 복제본으로 이관

ASM 영역의 데이터 파일로 이관
switch database to copy;
recover database;
alter database open;
shutdown immediate


RMAN> switch database to copy;

datafile 1 switched to datafile copy "+DATA/racdb/datafile/system.256.1037878345"
datafile 2 switched to datafile copy "+DATA/racdb/datafile/sysaux.257.1037878355"
datafile 3 switched to datafile copy "+DATA/racdb/datafile/undotbs1.258.1037878363"
datafile 4 switched to datafile copy "+DATA/racdb/datafile/undotbs2.259.1037878371"
datafile 5 switched to datafile copy "+DATA/racdb/datafile/users.260.1037878377"

RMAN> recover database;

Starting recover at 20/04/16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=141 instance=racdb1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 20/04/16

RMAN> alter database open;

database opened

RMAN> shutdown immediate

using target database control file instead of recovery catalog
database closed
database dismounted
Oracle instance shut down

RMAN> exit


Recovery Manager complete.


전체 노드 대상으로 데이터베이스 기동
srvctl start database -d racdb
[racdb1:/home/oracle]> srvctl start database -d racdb

[racdb1:/home/oracle]> crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.FRA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
      2        ONLINE  ONLINE       rac2                     Open
ora.scan1.vip
      1        ONLINE  ONLINE       rac2
ora.scan2.vip
      1        ONLINE  ONLINE       rac1
ora.scan3.vip
      1        ONLINE  ONLINE       rac1


임시 파일 ASM 영역으로 재생성
alter database tempfile '/dev/raw/raw9' drop;
alter tablespace TEMP add tempfile size 100m autoextend on maxsize 1G;
SQL> alter database tempfile '/dev/raw/raw9' drop;

Database altered.

SQL> alter tablespace TEMP add tempfile size 100m autoextend on maxsize 1G;

Tablespace altered.

SQL> col NAME form a50
SQL> select NAME from V$TEMPFILE;

NAME
--------------------------------------------------
+DATA/racdb/tempfile/temp.265.1037878839


G) ASM 영역으로 Redo Log 이관

ASM 영역으로 Redo Log 맴버 추가
alter database add logfile member '+DATA' to group 1;
alter database add logfile member '+DATA' to group 2;
alter database add logfile member '+DATA' to group 3;
alter database add logfile member '+DATA' to group 4;
alter database add logfile member '+DATA' to group 5;
alter database add logfile member '+DATA' to group 6;
alter database add logfile member '+FRA' to group 1;
alter database add logfile member '+FRA' to group 2;
alter database add logfile member '+FRA' to group 3;
alter database add logfile member '+FRA' to group 4;
alter database add logfile member '+FRA' to group 5;
alter database add logfile member '+FRA' to group 6;
SQL> alter database add logfile member '+DATA' to group 1;

Database altered.

SQL> alter database add logfile member '+DATA' to group 2;

Database altered.

SQL> alter database add logfile member '+DATA' to group 3;

Database altered.

SQL> alter database add logfile member '+DATA' to group 4;

Database altered.

SQL> alter database add logfile member '+DATA' to group 5;

Database altered.

SQL> alter database add logfile member '+DATA' to group 6;

Database altered.

SQL> alter database add logfile member '+FRA' to group 1;

Database altered.

SQL> alter database add logfile member '+FRA' to group 2;

Database altered.

SQL> alter database add logfile member '+FRA' to group 3;

Database altered.

SQL> alter database add logfile member '+FRA' to group 4;

Database altered.

SQL> alter database add logfile member '+FRA' to group 5;

Database altered.

SQL> alter database add logfile member '+FRA' to group 6;

Database altered.

SQL> set lines 200
SQL> set pages 100
SQL> col MEMBER form a50
SQL> col MEMBER form a50
SQL> col LOG_STATUS form a12
SQL> col FILE_STATUS form a12
SQL> select a.GROUP#, THREAD#, a.STATUS file_status, b.STATUS log_status, MEMBER
  2   from V$LOGFILE a, V$LOG b
  3   where a.GROUP# = b.GROUP#
  4   order by GROUP#, MEMBER;

    GROUP#    THREAD# FILE_STATUS  LOG_STATUS   MEMBER
---------- ---------- ------------ ------------ --------------------------------------------------
         1          1 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_1.266.1037879561
         1          1 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_1.257.1037879581
         1          1              INACTIVE     /dev/raw/raw14
         2          1 INVALID      CURRENT      +DATA/racdb/onlinelog/group_2.267.1037879565
         2          1 INVALID      CURRENT      +FRA/racdb/onlinelog/group_2.258.1037879585
         2          1              CURRENT      /dev/raw/raw15
         3          1 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_3.268.1037879569
         3          1 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_3.259.1037879587
         3          1              INACTIVE     /dev/raw/raw16
         4          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_4.269.1037879571
         4          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_4.260.1037879591
         4          2              INACTIVE     /dev/raw/raw17
         5          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_5.270.1037879575
         5          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_5.261.1037879593
         5          2              INACTIVE     /dev/raw/raw18
         6          2 INVALID      CURRENT      +DATA/racdb/onlinelog/group_6.271.1037879579
         6          2 INVALID      CURRENT      +FRA/racdb/onlinelog/group_6.262.1037879597
         6          2              CURRENT      /dev/raw/raw19

18 rows selected.


1번 노드 Raw Device 영역의 Redo Log 맴버 제거
alter database drop logfile member '/dev/raw/raw14';
alter database drop logfile member '/dev/raw/raw15';
alter database drop logfile member '/dev/raw/raw16';
SQL> alter database drop logfile member '/dev/raw/raw14';
alter database drop logfile member '/dev/raw/raw14'
*
ERROR at line 1:
ORA-00362: member is required to form a valid logfile in group 1
ORA-01517: log member: '/dev/raw/raw14'

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select a.GROUP#, THREAD#, a.STATUS file_status, b.STATUS log_status, MEMBER
  2    from V$LOGFILE a, V$LOG b
  3   where a.GROUP# = b.GROUP#
  4   order by GROUP#, MEMBER;

    GROUP#    THREAD# FILE_STATUS  LOG_STATUS   MEMBER
---------- ---------- ------------ ------------ --------------------------------------------------
         1          1              CURRENT      +DATA/racdb/onlinelog/group_1.266.1037879561
         1          1              CURRENT      +FRA/racdb/onlinelog/group_1.257.1037879581
         1          1              CURRENT      /dev/raw/raw14
         2          1 INVALID      ACTIVE       +DATA/racdb/onlinelog/group_2.267.1037879565
         2          1 INVALID      ACTIVE       +FRA/racdb/onlinelog/group_2.258.1037879585
         2          1              ACTIVE       /dev/raw/raw15
         3          1              ACTIVE       +DATA/racdb/onlinelog/group_3.268.1037879569
         3          1              ACTIVE       +FRA/racdb/onlinelog/group_3.259.1037879587
         3          1              ACTIVE       /dev/raw/raw16
         4          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_4.269.1037879571
         4          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_4.260.1037879591
         4          2              INACTIVE     /dev/raw/raw17
         5          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_5.270.1037879575
         5          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_5.261.1037879593
         5          2              INACTIVE     /dev/raw/raw18
         6          2 INVALID      CURRENT      +DATA/racdb/onlinelog/group_6.271.1037879579
         6          2 INVALID      CURRENT      +FRA/racdb/onlinelog/group_6.262.1037879597
         6          2              CURRENT      /dev/raw/raw19

18 rows selected.

SQL> alter database drop logfile member '/dev/raw/raw14';
alter database drop logfile member '/dev/raw/raw14'
*
ERROR at line 1:
ORA-01609: log 1 is the current log for thread 1 - cannot drop members
ORA-00312: online log 1 thread 1: '/dev/raw/raw14'
ORA-00312: online log 1 thread 1: '+DATA/racdb/onlinelog/group_1.266.1037879561'
ORA-00312: online log 1 thread 1: '+FRA/racdb/onlinelog/group_1.257.1037879581'

SQL> alter system switch logfile;

System altered.

SQL> alter database drop logfile member '/dev/raw/raw14';

Database altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter database drop logfile member '/dev/raw/raw15';

Database altered.

SQL> alter database drop logfile member '/dev/raw/raw16';

Database altered.

SQL> select a.GROUP#, THREAD#, a.STATUS file_status, b.STATUS log_status, MEMBER
  2    from V$LOGFILE a, V$LOG b
  3   where a.GROUP# = b.GROUP#
  4    order by GROUP#, MEMBER;

    GROUP#    THREAD# FILE_STATUS  LOG_STATUS   MEMBER
---------- ---------- ------------ ------------ --------------------------------------------------
         1          1              CURRENT      +DATA/racdb/onlinelog/group_1.266.1037879561
         1          1              CURRENT      +FRA/racdb/onlinelog/group_1.257.1037879581
         2          1              ACTIVE       +DATA/racdb/onlinelog/group_2.267.1037879565
         2          1              ACTIVE       +FRA/racdb/onlinelog/group_2.258.1037879585
         3          1              ACTIVE       +DATA/racdb/onlinelog/group_3.268.1037879569
         3          1              ACTIVE       +FRA/racdb/onlinelog/group_3.259.1037879587
         4          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_4.269.1037879571
         4          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_4.260.1037879591
         4          2              INACTIVE     /dev/raw/raw17
         5          2 INVALID      INACTIVE     +DATA/racdb/onlinelog/group_5.270.1037879575
         5          2 INVALID      INACTIVE     +FRA/racdb/onlinelog/group_5.261.1037879593
         5          2              INACTIVE     /dev/raw/raw18
         6          2 INVALID      CURRENT      +DATA/racdb/onlinelog/group_6.271.1037879579
         6          2 INVALID      CURRENT      +FRA/racdb/onlinelog/group_6.262.1037879597
         6          2              CURRENT      /dev/raw/raw19

15 rows selected.


2번 노드 Raw Device 영역의 Redo Log 맴버 제거
alter database drop logfile member '/dev/raw/raw17';
alter database drop logfile member '/dev/raw/raw18';
alter database drop logfile member '/dev/raw/raw19';
SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter database drop logfile member '/dev/raw/raw17';

Database altered.

SQL> alter system switch logfile;

System altered.

SQL> alter database drop logfile member '/dev/raw/raw18';

Database altered.

SQL> alter system switch logfile;

System altered.

SQL> alter database drop logfile member '/dev/raw/raw19';

Database altered.

SQL> select a.GROUP#, THREAD#, a.STATUS file_status, b.STATUS log_status, MEMBER
  2    from V$LOGFILE a, V$LOG b
  3   where a.GROUP# = b.GROUP#
  4   order by GROUP#, MEMBER;

    GROUP#    THREAD# FILE_STATUS  LOG_STATUS   MEMBER
---------- ---------- ------------ ------------ --------------------------------------------------
         1          1              CURRENT      +DATA/racdb/onlinelog/group_1.266.1037879561
         1          1              CURRENT      +FRA/racdb/onlinelog/group_1.257.1037879581
         2          1              INACTIVE     +DATA/racdb/onlinelog/group_2.267.1037879565
         2          1              INACTIVE     +FRA/racdb/onlinelog/group_2.258.1037879585
         3          1              INACTIVE     +DATA/racdb/onlinelog/group_3.268.1037879569
         3          1              INACTIVE     +FRA/racdb/onlinelog/group_3.259.1037879587
         4          2              CURRENT      +DATA/racdb/onlinelog/group_4.269.1037879571
         4          2              CURRENT      +FRA/racdb/onlinelog/group_4.260.1037879591
         5          2              INACTIVE     +DATA/racdb/onlinelog/group_5.270.1037879575
         5          2              INACTIVE     +FRA/racdb/onlinelog/group_5.261.1037879593
         6          2              ACTIVE       +DATA/racdb/onlinelog/group_6.271.1037879579
         6          2              ACTIVE       +FRA/racdb/onlinelog/group_6.262.1037879597

12 rows selected.


IX. 19c Grid 설치 및 클러스터 업그레이드


X. 19c Database 설치


XI. 19c Release Update 패치


XII. Database 업그레이드



  • 레이블 없음