• 검색 결과가 없습니다.

Goodus 기술노트 [25회] Vmware RAC 구축방법

N/A
N/A
Protected

Academic year: 2022

Share "Goodus 기술노트 [25회] Vmware RAC 구축방법"

Copied!
118
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Author 반 채 헌 Creation Date 2007-11-19

Last Updated 2007-11-19 Version 1.0

Copyright(C) 2004 Goodus Inc.

All Rights Reserved

Version 변경일자 변경자(작성자) 주요내용

1 2007-11-19 반채헌 과장 문서 최초 작성

2 3

Goodus 기술노트 [25회]

Vmware RAC 구축방법

(2)

Contents

1. 운영 체제 환경의 개요 ... 3

2. 게스트 운영 체제 환경의 개요 ... 4

3. 가상 디스크 레이아웃의 개요 ... 4

4. RAC 데이터베이스 환경의 개요 ... 4

4.1 첫 번째 가상 머신 구성 ... 5

4.2 첫 번째 가상 머신에 Enterprise Linux 설치하기 ... 9

4.3 오라클 사용자 환경 파일의 생성 ... 21

5. 두 번째 가상 머신의 생성 및 설정 ... 33

5.1네트워크 설정 변경. ... 33

5.2 Oracle Automatic Storage Management (ASM) 설정 ... 42

6. O2CB 드라이버 설정. ... 47

7. Oracle Clusterware 설치 ... 53

7.1 데이터베이스 설정의 확인 ... 101

8.2 테이블스페이스 생성 TEST 과정 ... 107

8.3 플래시 복구 영역의 공간 사용 현황 점검. ... 109

(3)

VMware Server를 이용하여 Oracle Enterprise Linux 기반

Oracle RAC 10 g 설치하기

(저자 : Vincent chan 참고 자료 변경 수정함)

가상 머신 테크놀로지를 이용하여 Oracle Enterprise Linux 운영 체제 테스트용 Oracle Real

Application Cluster 10g Release 2 를 설치하는 방법을 설명.

전혀 비용을 들이지 않고도 VMware Server(VMware의 무료 가상화 소프트웨어)를 이용하 여 일반 가정용 컴퓨터에 Red Hat Advanced Server 기반 Oracle Real Application Clusters (RAC) 10g 환경을 구현함.

VMware Server는 하나의 물리적 머신에서 여러 개의 운영 체제를 동시에 실행할 수 있 게 합니다. 각각의 가상 머신은 별도의 운영체제와 디스크, 프로세서, 메모리 등의 가상 컴포넌트를 갖습니다. 가상화 테크놀로지는 하나의 물리적 서버에서 다른 데이터 또는 소 프트웨어에 영향을 주지 않고 개발/테스트 작업을 수행하기 위한 용도로 활용되고 있습니 다.

VMware 소프트웨어는 특히 개발/테스트 과정의 총소유비용을 절감하고 애플리케이션 개발 기간을 단축할 수 있는 솔루션으로 각광받고 있습니다.

본 가이드에서는 Enterprise Linux와 VMware Server를 기반으로 실행되는 2 노드 구성의 Oracle RAC 10g Release 2 환경을 설치하고 구성하는 방법을 설명하고 있습니다. 이 가이 드는 교육/테스트용으로만 활용할 수 있으며, 오라클 및 다른 어떤 벤더도 이러한 구성에 대한 기술 지원을 제공하지 않고 있음을 참고.

1. 운영 체제 환경의 개요

호스트

네임 OS 프로세서 메모리 디스크 네트워크 카드

samsung- cba1f14

Windows XP Professional Service Pack 2 (32-bit) 노트북 SensR-50

Intel(R) Pentium(R) MProcessor 2.00GHz

2 GB DDR2 SDRAM, 797 MHz

120 GB, Ultra ATA/133, 7200 RPM

Realtek RTL8139 Family PCI Fast Ethernet NIC

(4)

2. 게스트 운영 체제 환경의 개요

호스트 네임 OS 프로세서 메모리

rac1 Oracle Enterprise Linux 4 (5upgrade) (32-bit)

1 700 MB

rac2 Oracle Enterprise Linux 4 (5upgrade) (32-bit)

1 700 MB

3. 가상 디스크 레이아웃의 개요

호스트 가상 디스크

게스트 가상 디스크

가상 디바이스 노드

사이즈

(MB) 설명

d:\vm\rac\localdisk.vmdk /dev/sda1 /dev/sda2 /dev/sda3

SCSI 0:0 20 “/” 마운트포인트 스왑 공간 오라클 바이너리

d:\vm\rac\sharedstorage\ocfs2disk.vmdk /dev/sdb SCSI 1:0 512 OCFS2 디스크

d:\vm\rac\sharedstorage\asmdisk1.vmdk /dev/sdc SCSI 1:1 3072 ASM disk group 1

d:\vm\rac\sharedstorage\asmdisk2.vmdk /dev/sdd SCSI 1:2 3072 ASM disk group 1

d:\vm\rac\sharedstorage\asmdisk3.vmdk /dev/sde SCSI 1:3 2048 ASM 플래시 복구 영역

4. RAC 데이터베이스 환경의 개요

호스트 네임 ASM 인스턴스 네임

RAC 인스턴스 네임

데이터베이스 네임

데이터베이스

파일 스토리지 OCR & Voting Disk

rac1 +ASM1 devdb1 devdb ASM OCFS2

rac2 +ASM2 devdb2 devdb ASM OCFS2

(5)

4.1 첫 번째 가상 머신 구성

C:\>mkdir vm\rac\rac1 C:\>mkdir vm\rac\rac2

C:\>mkdir vm\rac\sharedstorage

데스크탑의 VMware Server 아이콘을 더블 클릭하여 애플리케이션을 실행합니다:

1. Ctrl-N 을 눌러 새로운 가상 머신을 생성합니다.

2. New Virtual Machine Wizard: Next를 클릭합니다.

3. Select the Appropriate Configuration:

a. Virtual machine configuration: Custom을 선택합니다.

4. Select a Guest Operating System:

a. Guest operating system: Linux를 선택합니다.

b. Version: Red Hat Enterprise Linux 4를 선택합니다.

5. Name the Virtual Machine:

a. Virtual machine name: “rac1”을 입력합니다.

b. Location: “d:\vm\rac\rac1.”을 입력합니다.

6. Set Access Rights:

a. Access rights: Make this virtual machine private를 선택합니다.

7. Startup / Shutdown Options:

a. Virtual machine account: User that powers on the virtual machine을 선택합니다.

8. Processor Configuration:

a. Processors: One 을 선택합니다.

9. Memory for the Virtual Machine:

a. Memory: 700MB를 선택합니다.

10. Network Type:

a. Network connection: Use bridged networking을 선택합니다.

11. Select I/O Adapter Types:

a. I/O adapter types: LSI Logic을 선택합니다.

12. Select a Disk:

a. Disk: Create a new virtual disk를 선택합니다.

13. Select a Disk Type:

a. Virtual Disk Type: SCSI (Recommended)를 선택합니다.

14. Specify Disk Capacity:

(6)

a. Disk capacity: “20GB.”를 입력합니다.

b. Allocate all disk space now의 선택을 해제합니다. 공간을 절약할 생각이라면, 굳이 지금 모든 디스크 공간을 할당할 필요가 없습니다.

15. Specify Disk File:

a. Disk file: “localdisk.vmdk.”를 입력합니다.

b. Finish를 클릭합니다.

16 - 24 번 과정을 반복하여 4 개의 가상 SCSI 하드 디스크를 생성합니다 -

ocfs2disk.vmdk (512MB), asmdisk1.vmdk (3GB), asmdisk2.vmdk (3GB), asmdisk3.vmdk (2GB).

16. VMware Server Console: Edit virtual machine settings를 클릭합니다.

17. Virtual Machine Settings: Add를 클릭합니다.

18. Add Hardware Wizard: Next를 클릭합니다.

19. Hardware Type:

a. Hardware types: Hard Disk를 선택합니다.

20. Select a Disk:

a. Disk: Create a new virtual disk을 선택합니다.

21. Select a Disk Type:

a. Virtual Disk Type: SCSI (Recommended)을 선택합니다.

22. Specify Disk Capacity:

a. Disk capacity: “0.5GB.”을 입력합니다.

b. Allocate all disk space now을 선택합니다. 공간을 절약할 생각이라면, 굳이 지금 모든 디스크 공간을 할당할 필요가 없습니다. 하지만 성능 문제를 고려하여, 각각의 가상 공유 디스크에 디스크 공간을 미리 할당해 주는 것이 바람직합니다. 흔한 일은 아니지만 오라클 데이터베이스 생성 과정에서, 또는 데이터베이스에 DML 작업이 과도하게 발생하여 공유 디스크의 사이즈가 급격히 증가하는 경우, 가상 머신의 동작이 잠시 멈추는 상황이 발생할 수도 있습니다.

23. Specify Disk File:

a. Disk file: C:\vm\rac\sharedstorage\ocfs2disk.vmdk 을 입력합니다.

b. Advanced를 클릭합니다.

24. Add Hardware Wizard:

a. Virtual device node: SCSI 0:1을 선택합니다.

b. Mode: 모든 공유 디스크에 대해 Independent, Persistent를 선택합니다.

c. Finish를 클릭합니다.

(7)

마지막으로, 사설 인터커넥트를 위한 가상 네트워크 카드를 추가하고 플로피 드라이브를 제거합니다.

25. VMware Server Console: dit virtual machine settings를 클릭합니다.

26. Virtual Machine Settings: Add를 클릭합니다.

27. Add Hardware Wizard: Next를 클릭합니다.

28. Hardware Type:

a. Hardware types: Ethernet Adapter.

29. Network Type:

a. Host-only: A private network shared with the host b. Finish를 클릭합니다.

30. Virtual Machine Settings:

a. Floppy를 선택하고 Remove를 클릭합니다.

31. Virtual Machine Settings: OK를 클릭합니다.

(8)

가상 머신 설정 파일의 수정: 두 대의 가상 RAC 노드 간에 디스크를 공유하기 위해서는 추 가로 매개변수를 설정해 주어야 합니다. C:\vm\rac\rac1\Red Hat Enterprise Linux 4.vmx 파일을 열고 아래 굵은 글씨체로 표시된 매개변수들을 추가함.

config.version = "8"

virtualHW.version = "6"

scsi0.present = "TRUE"

scsi0.virtualDev = "lsilogic"

memsize = "700"

scsi0:0.present = "TRUE"

scsi0:0.fileName = "localdisk.vmdk"

ide1:0.present = "TRUE"

ide1:0.fileName = "auto detect"

ide1:0.deviceType = "cdrom-raw"

floppy0.autodetect = "TRUE"

ethernet0.present = "TRUE"

ethernet0.wakeOnPcktRcv = "FALSE"

usb.present = "TRUE"

ehci.present = "TRUE"

sound.present = "TRUE"

sound.fileName = "-1"

sound.autodetect = "TRUE"

svga.autodetect = "TRUE"

pciBridge0.present = "TRUE"

mks.keyboardFilter = "allow"

displayName = "rac1"

guestOS = "rhel4"

nvram = "Red Hat Enterprise Linux 4.nvram"

deploymentPlatform = "windows"

virtualHW.productCompatibility = "hosted"

tools.upgrade.policy = "useGlobal"

disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

scsi1.sharedBus = "virtual"

(9)

scsi0:1.present = "TRUE"

scsi0:1.fileName = "C:\vm\rac\sharedstorage\ocfs2disk.vmdk"

scsi0:1.mode = "independent-persistent"

scsi0:1.deviceType = "disk"

scsi0:2.present = "TRUE"

scsi0:2.fileName = "C:\vm\rac\sharedstorage\asmdisk1.vmdk"

scsi0:2.mode = "independent-persistent"

scsi0:2.deviceType = "disk"

scsi0:3.present = "TRUE"

scsi0:3.fileName = "C:\vm\rac\sharedstorage\asmdisk2.vmdk"

scsi0:3.mode = "independent-persistent"

scsi0:3.deviceType = "disk"

scsi0:4.present = "TRUE"

scsi0:4.fileName = "C:\vm\rac\sharedstorage\asmdisk3.vmdk"

scsi0:4.mode = "independent-persistent"

scsi0:4.deviceType = "disk"

floppy0.present = "FALSE"

ethernet1.present = "TRUE"

ethernet1.connectionType = "hostonly"

ethernet1.wakeOnPcktRcv = "FALSE"

4.2 첫 번째 가상 머신에 Enterprise Linux 설치하기

오라클 웹사이트에서 다운로드하고 파일 압축을 풉니다:

• Enterprise-R4-U5-i386-disc1.iso

• Enterprise-R4-U5-i386-disc2.iso

• Enterprise-R4-U5-i386-disc3.iso

• Enterprise-R4-U5-i386-disc4.iso

(10)

1. VMware Server 콘솔에서 오른쪽 패널의 CD-ROM 디바이스를 더블 클릭하고

disk 1 을 위한 ISO 이미지(Enterprise-R4-U5-i386-disc1.iso)를 선택합니다.

2. VMware Server console

o Start this virtual machine을 클릭합니다.

3. Enter를 눌러 그래픽 모드에서 설치하도록 선택합니다.

4. 미디어 테스트를 생략하고 설치를 시작합니다.

5. Welcome to enterprise Linux: Next를 클릭합니다.

6. Language Selection: <사용할 언어를 선택합니다.>

7. Keyboard Configuration: <사용할 키보드를 선택합니다>

8. Installation Type: Custom.

9. Disk Partitioning Setup: Manually partition with Disk Druid.

o Warning: Yes를 클릭하여 모든 디바이스(sda, sdb, sdc, sdd, sde)를 초기화합니다.

10. Disk Setup: /dev/sda 를 더블 클릭하여 sda 드라이브에 마운트 포인트(/, /u01)와 스왑 공간을 위한 디스크 공간을 할당합니다. OCFS2, ASM 을 위한 드라이브 설정은 뒷부분에서 수행하게 됩니다.

o Add Partition:

§ Mount Point: /

§ File System Type: ext3

§ Start Cylinder: 1

§ End Cylinder: 910

§ File System Type: Swap

§ Start Cylinder: 911

§ End Cylinder: 1170

§ Mount Point: /u01

§ File System Type: ext3

§ Start Cylinder: 1171

§ End Cylinder: 2610

(11)

11. Boot Loader Configuration: 디폴트 /dev/sda1 만을 선택하고 나머지는 선택되지 않은 상태로 둡니다.

12. Network Configuration:

a. Network Devices

§ eth0 을 선택합니다.

1. Configure Using DHCP의 선택을 해제합니다.

2. Activate on boot을 선택합니다.

3. IP Address: “192.168.10.171.”을 입력합니다.

4. Netmask: “255.255.255.0.”을 입력합니다.

§ eth1 을 선택합니다.

1. Configure Using DHCP의 선택을 해제합니다.

2. Activate on boot을 선택합니다.

(12)

3. IP Address: “10.10.10.71.”을 입력합니다.

4. Netmask: “255.255.255.0.”을 입력합니다.

b. Hostname

§ manually를 선택하고 “rac1.mycorpdomain.com.”을 입력합니다.

c. Miscellaneous Settings

§ Gateway: “192.168.10.1.”을 입력합니다.

§ Primary DNS: <옵션>

§ Secondary DNS: <옵션>

13. Firewall Configuration:

a. No Firewall을 선택합니다. 방화벽이 활성화된 경우, ocfs2 파일 시스템을 마운트하는 과정에서 “mount.ocfs2: Transport endpoint is not connected while mounting” 에러가 발생할 수 있습니다.

b. Enable SELinux?: Active.

14. Warning – No Firewall: Proceed를 클릭합니다.

15. Additional Language Support: <사용할 언어를 선택합니다>.

16. Time Zone Selection: <표준 시간대를 선택합니다>

17. Set Root Password: <root 패스워드를 입력합니다>

18. Package Group Selection:

a. X Window System을 선택합니다.

b. GNOME Desktop Environment를 선택합니다.

c. Editors를 선택합니다.

§ Details를 클릭하고 사용할 텍스트 편집기를 선택합니다.

d. Graphical Internet을 선택합니다.

e. Text-based Internet을 선택합니다.

f. Office/Productivity를 선택합니다.

g. Sound and Video를 선택합니다.

h. Graphics를 선택합니다.

i. Server Configuration Tools를 선택합니다.

j. FTP Server를 선택합니다.

k. Legacy Network Server를 선택합니다.

§ Details를 클릭합니다.

1. rsh-server를 선택합니다.

2. Sstrong>telnet-server 를 선택합니다.

l. Development Tools를 선택합니다.

m. Legacy Software Development를 선택합니다.

n. Administration Tools를 선택합니다.

(13)

o. System Tools를 선택합니다.

§ Details를 클릭합니다. 디폴트로 선택된 패키지와 별도로 아래 패키지를 선택합니다.

1. ocfs-2-2.6.9-42.0.0.0.1EL(UP 커널을 위한 드라이버)을 선택하거나, 또는 ocfs-2-2.6.9-42.0.0.0.1ELsmp(SMP 커널을 위한 드라이버)를 선택합니다.

2. ocfs2-tools를 선택합니다.

3. ocfs2console을 선택합니다.

4. oracle oracleasm-2.6.9-42.0.0.0.1EL(UP 커널을 위한 드라이버)를 선택하거나, 또는 oracleasm-2.6.9-

42.0.0.0.1ELsmp(SMP 커널을 위한 드라이버)를 선택합니다.

5. sysstat을 선택합니다.

p. Printing Support를 선택합니다.

19. About to Install: Next를 클릭합니다.

20. Required Install Media: Continue를 클릭합니다.

21. Change CD-ROM: VMware Server 콘솔에서 Ctrl-D 를 눌러 Virtual Machine Settings 를 실행합니다. CD-ROM 디바이스를 클릭하고 disk 2 를 위한 ISO 이미지(Enterprise-R4-U5-i386-disc2.iso)를 선택하고, 다시 disk3 을 위한 ISO 이미지(Enterprise-R4-U5-i386-disc3.iso)를 선택합니다.

22. 설치 작업이 종료된 후,

a. VMware Server 콘솔에서 Ctrl-D 를 눌러 Virtual Machine Settings 를 실행합니다. CD-ROM 디바이스를 클릭하고 Use physical drive 를 클릭합니다.

b. Reboot를 클릭합니다.

23. Welcome: Next를 클릭합니다.

24. License Agreement: Yes, I agree to the License Agreement를 선택합니다.

25. Date and Time: 날짜와 시간을 설정합니다.

26. Display: <원하는 해상도를 선택합니다>

27. System User: 항목을 빈 칸으로 남겨두고 Next를 클릭합니다.

28. Additional CDs: Next를 클릭합니다.

29. Finish Setup: Next를 클릭합니다.

(14)

이것으로 VMware Server 에 Enterprise Linux 를 설치하는 작업을 완료하였습니다.

하지만 위에서 설치 해야 할 PKG 가 다 설치 되지 않았을 겁니다.

Enterprise Linux 소프트웨어 패키지의 설치. 오라클 소프트웨어 설치를 위해 추가해 주어야 하는 패키지가 아래와 같습니다.

Enterprise Linux 의 64 비트 버전을 설치한 경우에는, 인스톨러가 이 패키지를 이미 설치한 상태이어야 합니다.

libaio-0.3.105-2.i386.rpm

openmotif21-2.1.30-11.RHEL4.6.i386.rpm

(15)

---

[root@rac1 proc]# rpm -qa |grep libaio*

libaio-0.3.105-2

[root@rac1 proc]# rpm -qa|grep openmotif21*

openmotif21-2.1.30-11.RHEL4.6

[root@rac1 proc]# cd

[root@rac1 ~]# ls

Desktop anaconda-ks.cfg install.log install.log.syslog

[root@rac1 ~]# cd /u01

[root@rac1 u01]# ls

lost+found pkg

[root@rac1 u01]# cd pkg

[root@rac1 pkg]# ls

ocfs2-tools-1.2.2-1.i386.rpm oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm

ocfs2console-1.2.2-1.i386.rpm oracleasm-support-2.0.3-1.i386.rpm

oracleasm-2.6.9-55.EL-2.0.3-1.i686.rpm oracleasmlib-2.0.2-1.i386.rpm

[root@rac1 pkg]# ls -ltr

1528

-rw-r--r-- 1 root root 1036426 2?? 5 15:26 ocfs2-tools-1.2.2-1.i386.rpm

-rw-r--r-- 1 root root 177275 2?? 5 15:26 ocfs2console-1.2.2-1.i386.rpm

(16)

-rw-r--r-- 1 root root 22662 7??26 15:58 oracleasm-support-2.0.3-1.i386.rpm

-rw-r--r-- 1 root root 12948 7??26 15:58 oracleasmlib-2.0.2-1.i386.rpm

-rw-r--r-- 1 root root 127517 7??31 10:25 oracleasm-2.6.9-55.EL-2.0.3- 1.i686.rpm

-rw-r--r-- 1 root root 129361 7??31 10:32 oracleasm-2.6.9-55.ELsmp-2.0.3- 1.i686.rpm

-rw-r--r-- 1 root root 2926535 Aug 3 10:47 ocfs2-2.6.9-55.EL-1.2.5-2.i686.rpm

다음 명령으로 pkg 설치 한다.

[root@rac1 pkg]# rpm -ivh ocfs2-tools-1.2.2-1.i386.rpm

###########################################

[100%]

1:ocfs2-tools

########################################### [100%]

[root@rac1 pkg]# LANG=C

[root@rac1 pkg]# rpm -ivh ocfs2console-1.2.2-1.i386.rpm

Preparing...

########################################### [100%]

1:ocfs2console

########################################### [100%]

[root@rac1 pkg]# rpm -ivh oracleasm-support-2.0.3-1.i386.rpm

Preparing...

########################################### [100%]

1:oracleasm-support

########################################### [100%]

(17)

[root@rac1 pkg]# rpm -ivh oracleasm-2.6.9-55.EL-2.0.3-1.i686.rpm

Preparing...

########################################### [100%]

1:oracleasm-2.6.9-55.EL

########################################### [100%]

[root@rac1 pkg]# rpm -ivh oracleasmlib-2.0.2-1.i386.rpm

Preparing...

########################################### [100%]

1:oracleasmlib

########################################### [100%]

[root@rac1 pkg]# rpm -ivh ocfs2-2.6.9-55.EL-1.2.5-2.i686.rpm

Preparing...

########################################### [100%]

1:ocfs2-2.6.9-55.EL

########################################### [100%]

--- 모든 pkg 설치 완료 함 ---

[root@rac1 pkg]#

필요한 rpm 설치 완료.

위의 내용을 전부 install 해야 함.(아래와 같이 모두 완료 되야 한다)

---

전부 확인 한다.

(18)

VMware Tools설치. VMware Tools 는 호스트 머신과 게스트 머신 간의 시간을 동기화하기 위해 사용됩니다.

VMware 콘솔에서 root 사용자로 로그인합니다.

1. VM을 클릭한 후 Install VMware Tools를 선택합니다.

2. rac1 – Virtual Machine: Install을 클릭합니다.

3. 데스크탑의 VMware Tools 아이콘을 더블 클릭하여 애플리케이션을 실행합니다.

4.

cdrom: VMwareTools-6.0.0-45-731.i386.rpm을 더블 클릭합니다

.

5. Completed System Preparation: Continue를 클릭합니다.

6. 터미널을 열고 vmware-config-tools.pl을 실행합니다.

o 원하는 디스플레이 사이즈를 입력합니다

게스트 OS 와 호스트 OS 의 시간 동기화. Oracle Clusterware 와 Oracle Database

소프트웨어를 설치하는 과정에서 오라클 인스톨러는 먼저 로컬 노드에 소프트웨어를 설치한 후 원격 노드에 소프트웨어를 카피하는 작업을 수행합니다. 양쪽 RAC 노드의 날짜와 시간이 동기화되지 않은 경우 아래와 같은 에러가 발생할 수도 있습니다.

(19)

"/bin/tar: ./inventory/Components21/oracle.ordim.server/10.2.0.1.0: time stamp 2007-07-04 13:24:04 is 25 s in the future"

따라서 Oracle RAC 설치를 수행하기 전에, 가상 머신과 호스트 머신의 시간을 동기화해 주어야 합니다. root 사용자로 로그인하여 아래 작업을 실행하여 시간을 동기화합니다.

1. “vmware-toolbox”를 실행하여 VMware Tools Properties 윈도우를 엽니다. Options 탭에서 Time synchronization between the virtual machine and the host operating system을 선택합니다. tools.syncTime = "TRUE" 매개변수가 가상 머신 설정 파일(C:\vm\rac\rac1\Red Hat Enterprise Linux 4.vmx)에 추가된 것을 확인할 수 있을 것입니다.

2. 2. "/boot/grub/grub.conf" 파일을 편집하여 kernel /boot/ 라인에 clock=pit nosmp noapic nolapic 옵션을 추가합니다. 이제 양쪽 커널에 옵션을 추가하는 작업을 완료했습니다. 변경 작업은 현재 사용 중인 커널에 대해서만 수행해 주면 됩니다

[root@rac1 grub]# vi grub.conf

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You do not have a /boot partition. This means that

# all kernel and initrd paths are relative to /, eg.

# root (hd0,0)

# kernel /boot/vmlinuz-version ro root=/dev/sda1

# initrd /boot/initrd-version.img

#boot=/dev/sda default=0 timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu

title Red Hat Enterprise Linux ES (2.6.9-55.EL) root (hd0,0)

kernel /boot/vmlinuz-2.6.9-55.EL ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic

initrd /boot/initrd-2.6.9-55.EL.img

(20)

Rac1 리부팅 한다.

[root@rac1 ~]# reboot

[root@rac1 ~]# df -kP

Filesystem 1024-blocks Used Available Capacity Mounted on /dev/sda1 7194780 3305940 3523364 49% / none 353344 0 353344 0% /dev/shm /dev/sda3 11385160 65160 10741660 1% /u01 [root@rac1 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 * 1 910 7309543+ 83 Linux /dev/sda2 911 1170 2088450 82 Linux swap /dev/sda3 1171 2610 11566800 83 Linux

Disk /dev/sdb: 536 MB, 536870912 bytes 64 heads, 32 sectors/track, 512 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System

Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Disk /dev/sdd: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

(21)

Device Boot Start End Blocks Id System

Disk /dev/sde: 2147 MB, 2147483648 bytes 255 heads, 63 sectors/track, 261 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

오라클 사용자의 생성 root 사용자로 로그인하여 아래와 같이 실행

[root@rac1 ~]# groupadd oinstall [root@rac1 ~]# groupadd dba

[root@rac1 ~]# mkdir -p /export/home/oracle /ocfs

[root@rac1 ~]# useradd -d /export/home/oracle -g oinstall -G dba -s /bin/ksh oracle [root@rac1 ~]# chown oracle:dba /export/home/oracle /u01

[root@rac1 ~]# passwd oracle Changing password for user oracle.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word Retype new UNIX password:

passwd: all authentication tokens updated successfully.

4.3 오라클 사용자 환경 파일의 생성

[root@rac1 ~]# vi /export/home/oracle/.profile

export PS1="`/bin/hostname -s`-> "

export EDITOR=vi

export ORACLE_SID=devdb1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1

(22)

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:/usr/bin:/usr/sbin:/

usr/local/bin:/usr/X11R6/bin umask 022

파일시스템 디렉토리 구조의 생성. oracle 사용자로 로그인하여 아래와 같이 실행

[root@rac1 ~]# su - oracle rac1-> pwd

/export/home/oracle

rac1-> mkdir -p $ORACLE_BASE/admin rac1-> mkdir -p $ORACLE_HOME rac1-> mkdir -p $ORA_CRS_HOME rac1-> mkdir -p /u01/oradata/devdb

oracle 사용자의 Shell Limit 설정. 텍스트 편집기를 사용하여 아래 라인을

/etc/security/limits.conf, /etc/pam.d/login, /etc/profile에 추가합니다.

보다 상세한 정보는 제품 문서에서 확인하실 수 있습니다.

/etc/security/limits.conf

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536

/etc/pam.d/login

session required /lib/security/pam_limits.so

/etc/profile

if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then

(23)

ulimit -p 16384 ulimit -n 65536 else

ulimit -u 16384 -n 65536 fi

fi

Enterprise Linux 소프트웨어 패키지의 설치. 오라클 소프트웨어 설치를 위해 추가해 주어 야 하는 패키지가 아래와 같습니다.

Enterprise Linux의 64 비트 버전을 설치한 경우에는, 인스톨러가 이 패키지를 이미 설치한 상태이어야 합니다.

아닌 경우 아래처럼 설치 한다

커널 매개변수 설정. 텍스트 편집기를 사용하여 /etc/sysctl.conf에 아래 라인을 추가합니다.

변경 사항을 즉시 적용하기 위해 "/sbin/sysctl -p"를 실행합니다.

[root@rac1 ~]# vi /etc/sysctl.conf

# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.

# Useful for debugging multi-threaded applications.

kernel.core_uses_pid = 1

kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096

kernel.sem = 250 32000 100 128 fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 1048576

(24)

net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144

root@rac1 pkg]# vi /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost

192.168.10.171 rac1.mycorpdomain.com rac1 #eth0 public 192.168.10.71 rac1-vip.mycorpdomain.com rac1-vip #서비스 ip 10.10.10.71 rac1-priv.mycorpdomain.com rac1-priv #eth1 private

192.168.10.172 rac2.mycorpdomain.com rac2 #eth0 public 192.168.10.72 rac2-vip.mycorpdomain.com rac2-vip #서비스 ip 10.10.10.72 rac2-priv.mycorpdomain.com rac2-priv #eth1 private

Vi /etc/host 대한 설명 참조

127.0.0.1 localhost

192.168.10.171 rac1.mycorpdomain.com rac1 ---> eth0

192.168.10.71 rac1-vip.mycorpdomain.com rac1-vip --à eth0:1 10.10.10.71 rac1-priv.mycorpdomain.com rac1-priv ---> eth1 --

->PRIVATE 사설 IP ( 서비스(telnet) 접속 안된다.

device(eth1) 지만 내부적으로 ping 가능함(외부 안됨)

192.168.10.172 rac2.mycorpdomain.com rac2 ---> eth0 192.168.10.72 rac2-vip.mycorpdomain.com rac2-vip --à eth0:1 10.10.10.72 rac2-priv.mycorpdomain.com rac2-priv -> eth1(inter-

(25)

connect --->PRIVATE 사설 IP ( 서비스(telnet) 접속 않 된다.)

device(eth1) 하지만 내부적으로 ping 가능함(외부 안됨) PRIVATE 사설 IP 는 ? rac1의(eth1) 10.10.10.71 와 rac2 10.10.10.72(eth1) 는 rac1 ~ rac2 사이의 내부적 으로는 ping 이 가능 하지만 외부에서는 ping 이 안 될 것이다.

다음은 네크워크 관계에서 ping 이 가는지 확인 한다.

[root@rac1 ~]# ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:0C:29:BA:66:40

inet addr:192.168.10.171 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feba:6640/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2036 errors:0 dropped:0 overruns:0 frame:0

TX packets:1859 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

RX bytes:181137 (176.8 KiB) TX bytes:161413 (157.6 KiB) Interrupt:10 Base address:0x2024

eth0:1 Link encap:Ethernet HWaddr 00:0C:29:BA:66:40

inet addr:192.168.10.71 Bcast:192.168.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:10 Base address:0x2024

eth1 Link encap:Ethernet HWaddr 00:0C:29:BA:66:4A

inet addr:10.10.10.71 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feba:664a/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10873 errors:0 dropped:0 overruns:0 frame:0 TX packets:13417 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

RX bytes:5497444 (5.2 MiB) TX bytes:10060292 (9.5 MiB) Interrupt:9 Base address:0x20a4

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

(26)

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:11849 errors:0 dropped:0 overruns:0 frame:0 TX packets:11849 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

RX bytes:5140424 (4.9 MiB) TX bytes:5140424 (4.9 MiB)

sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

[root@rac1 ~]# ping 192.168.10.171

PING 192.168.10.171 (192.168.10.171) 56(84) bytes of data.

64 bytes from 192.168.10.171: icmp_seq=0 ttl=64 time=0.928 ms 64 bytes from 192.168.10.171: icmp_seq=1 ttl=64 time=0.817 ms

--- 192.168.10.171 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.817/0.872/0.928/0.062 ms, pipe 2 [root@rac1 ~]# ping 192.168.10.172

PING 192.168.10.172 (192.168.10.172) 56(84) bytes of data.

64 bytes from 192.168.10.172: icmp_seq=0 ttl=64 time=40.7 ms 64 bytes from 192.168.10.172: icmp_seq=1 ttl=64 time=1.82 ms 64 bytes from 192.168.10.172: icmp_seq=2 ttl=64 time=6.05 ms 64 bytes from 192.168.10.172: icmp_seq=3 ttl=64 time=46.0 ms

--- 192.168.10.172 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3006ms rtt min/avg/max/mdev = 1.827/23.654/46.003/19.859 ms, pipe 2 [root@rac1 ~]# ping 192.168.10.71

PING 192.168.10.71 (192.168.10.71) 56(84) bytes of data.

64 bytes from 192.168.10.71: icmp_seq=0 ttl=64 time=1.07 ms 64 bytes from 192.168.10.71: icmp_seq=1 ttl=64 time=1.00 ms

(27)

64 bytes from 192.168.10.71: icmp_seq=2 ttl=64 time=0.453 ms

--- 192.168.10.71 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.453/0.845/1.079/0.278 ms, pipe 2 [root@rac1 ~]# ping 192.168.10.72

PING 192.168.10.72 (192.168.10.72) 56(84) bytes of data.

64 bytes from 192.168.10.72: icmp_seq=0 ttl=64 time=2.50 ms 64 bytes from 192.168.10.72: icmp_seq=1 ttl=64 time=2.59 ms 64 bytes from 192.168.10.72: icmp_seq=2 ttl=64 time=43.9 ms

--- 192.168.10.72 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 2.506/16.341/43.927/19.506 ms, pipe 2 [root@rac1 ~]# ping 10.10.10.71

PING 10.10.10.71 (10.10.10.71) 56(84) bytes of data.

64 bytes from 10.10.10.71: icmp_seq=0 ttl=64 time=0.991 ms 64 bytes from 10.10.10.71: icmp_seq=1 ttl=64 time=0.927 ms 64 bytes from 10.10.10.71: icmp_seq=2 ttl=64 time=0.484 ms

--- 10.10.10.71 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.484/0.800/0.991/0.227 ms, pipe 2 [root@rac1 ~]# ping 10.10.10.72

PING 10.10.10.72 (10.10.10.72) 56(84) bytes of data.

64 bytes from 10.10.10.72: icmp_seq=0 ttl=64 time=7.98 ms 64 bytes from 10.10.10.72: icmp_seq=1 ttl=64 time=44.9 ms 64 bytes from 10.10.10.72: icmp_seq=2 ttl=64 time=18.7 ms 64 bytes from 10.10.10.72: icmp_seq=3 ttl=64 time=10.2 ms

--- 10.10.10.72 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3145ms rtt min/avg/max/mdev = 7.985/20.471/44.917/14.672 ms, pipe 2 정상적으로 동작 함

위의 설정은 vmware 이므로 설정된 것임 원래는 rac1-vip 과 rac2-vip (실 서버 사용

(28)

할 때는 서비스 IP 접속 가능 하도록 eth0:1 로 물리적으로 device 추가 해서 사용 한다.

hangcheck-timer 커널 모듈의 설정. hangcheck timer 커널 모듈은 시스템의 상태를 모니 터링하고 장애가 발생한 RAC 노드를 재시작합니다.

노드의 장애 상황을 파악하기 위해 사용되는 두 가지 매개변수로 hangcheck_tick(시스템 모니터링 빈도 정의)과

hangcheck_margin(RAC 노드의 리셋을 수행하기 위한 최대 지연 허용 시간)이 있습니다.

/etc/modprobe.conf 파일에 아래 라인을 추가하여 hangcheck 커널 모듈 매개변수를 설정 해 줍니다.

[root@rac1 pkg]# vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

모듈을 즉시 로드하기 위해 "modprobe -v hangcheck-timer" 명령을 실행합니다

[root@rac1 pkg]# modprobe -v hangcheck-timer

insmod/lib/modules/2.6.9-5.EL/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=30 hangcheck_margin=180

실행됨.

# ASM을 위한 디스크 파티션 생성.

OCFS2, Oracle ASM을 위한 디스크 파티션 생성. OCFS2(/dev/sdb)와 Oracle ASM(/dev/sdc, /dev/sdd, /dev/sde)을 위한 로우 디스크를 생성합니다

rac1에서 root 사용자로 로그인하여 아래와 같이 실행.

[root@rac1 pkg]# fdisk /dev/sdb

(29)

Command (m for help): n Command action

e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-512, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-512, default 512):

Using default value 512

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 pkg]# fdisk /dev/sdc

Command (m for help): n Command action

e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-391, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-391, default 391):

Using default value 391

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 pkg]# fdisk /dev/sdd

(30)

Command (m for help): n Command action

e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-391, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-391, default 391):

Using default value 391

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 pkg]# fdisk /dev/sde

Command (m for help): n Command action

e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-261, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):

Using default value 261

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 pkg]# fdisk -l

(31)

Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 * 1 910 7309543+ 83 Linux /dev/sda2 911 1170 2088450 82 Linux swap /dev/sda3 1171 2610 11566800 83 Linux

Disk /dev/sdb: 536 MB, 536870912 bytes 64 heads, 32 sectors/track, 512 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System /dev/sdb1 1 512 524272 83 Linux

Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sdc1 1 391 3140676 83 Linux

Disk /dev/sdd: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sdd1 1 391 3140676 83 Linux

Disk /dev/sde: 2147 MB, 2147483648 bytes 255 heads, 63 sectors/track, 261 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sde1 1 261 2096451 83 Linux

(32)

[root@rac1 ~]# vi /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/sdc1 /dev/raw/raw2 /dev/sdd1 /dev/raw/raw3 /dev/sde1

~

[root@rac1 ~]# /sbin/service rawdevices restart Assigning devices:

/dev/raw/raw1 --> /dev/sdc1 /dev/raw/raw1: bound to major 8, minor 33 /dev/raw/raw2 --> /dev/sdd1 /dev/raw/raw2: bound to major 8, minor 49 /dev/raw/raw3 --> /dev/sde1 /dev/raw/raw3: bound to major 8, minor 65 done

[root@rac1 ~]# chown oracle:dba /dev/raw/raw[1-3]

[root@rac1 ~]# chmod 660 /dev/raw/raw[1-3]

[root@rac1 ~]# ls -ltr /dev/raw/raw[1-3]

crw-rw---- 1 oracle dba 162, 1 Jul 31 12:28 /dev/raw/raw1 crw-rw---- 1 oracle dba 162, 2 Jul 31 12:28 /dev/raw/raw2 crw-rw---- 1 oracle dba 162, 3 Jul 31 12:28 /dev/raw/raw3 [root@rac1 ~]# ln -sf /dev/raw/raw1 /u01/oradata/devdb/asmdisk1 [root@rac1 ~]# ln -sf /dev/raw/raw2 /u01/oradata/devdb/asmdisk2 [root@rac1 ~]# ln -sf /dev/raw/raw3 /u01/oradata/devdb/asmdisk3

/etc/udev/permissions.d/50-udev.permissions 수정 Raw-device는 부팅 시점에 re-mapping 됩니다.

디폴트 설정에서 로우 디바이스의 owner-ship은 부팅 시점에 root 사용자에게 귀속됩니다.

하지만 oracle 사용자에게 owner-ship이 귀속되지 않는 경우, ASM이 공유 파티션에 접근 할 때 문제가 발생할 수 있습니다.

/etc/udev/permissions.d/50-udev.permissions 파일의 “raw/*:root:disk:0660” 라인을 주 석 처리하고

새로운 라인 “raw/*:oracle:dba:0660”을 추가합니다.

(33)

[root@rac1 ~]# vi /etc/udev/permissions.d/50-udev.permissions

~~

# raw devices ram*:root:disk:0660

#raw/*:root:disk:0660 raw/*:oracle:dba:0660

~~

oracleasmlib 패키지 설치. OTN에서 ASM 라이브러리를 다운로드하고 root 사용자로 ASM RPM을 설치합니다

Cluster 을 설치 하기 위해서 아래의 내용이 없다면 설치 해준다.

[root@rac1 pkg]# rpm -qa | grep oracleasm oracleasm-support-2.0.3-1

oracleasmlib-2.0.2-1

oracleasm-2.6.9-22.EL-2.0.3-1 [root@rac1 pkg]#

rac1 기본 setting 완료 함

5. 두 번째 가상 머신의 생성 및 설정

두 번째 가상 머신을 생성하기 위해, 첫 번째 가상 머신을 셧다운하고,

C:\vm\rac\rac1 의 모든 파일을 C:\vm\rac\rac2로 복사한 다음 몇 가지 설정을 변경해 줍니다.

5.1 네트워크 설정 변경.

1. rac1 에서 root 사용자로 로그인한 후, # shutdown -h now 실행.

2. 호스트 시스템에서 rac1 폴더의 모든 파일을 rac2 로 복사합니다.

C:\>copy C:\vm\rac\rac1 C:\vm\rac\rac2

(34)

3. VMware Server 콘솔에서 Ctrl-O 를 눌러 두 번째 가상 머신, C:\rac\rac2\Red Hat Enterprise Linux 4.vmx 를 엽니다.

4. VMware Server console:

o o 가상 머신의 이름을 rac1 에서 rac2 로 변경합니다. rac1 탭을 마우스 오른쪽 버튼으로 클릭하고 Settings를 선택합니다.

§ Options탭을 선택합니다.

1. Virtual machine name: Virtual machine name: rac2 입력.

Start this virtual machine를 클릭하여 (rac1 이 셧다운된 상태에서) rac2 를 시작함.

o rac2 – Virtaul Machine: Create a new identifier를 클릭함.

(35)

root 사용자로 로그인한 상태에서 system-config-network를 실행하여 네트워크 설정을 변경함.

(36)

5. IP Address: 각각의 이더넷 디바이스를 더블 클릭하고 아래 표를 참고하여 변경 작업을 수행합니다.

디바이스 IP 주소 서브넷 마스크 디폴트 게이트웨이 주소

eth0 192.168.10.172 255.255.255.0 192.168.10.1

eth1 10.10.10.72 255.255.255.0 <공란으로 비워 둠>

6. MAC Address: Hardware Device탭으로 이동하여 각 이더넷 디바이스의 새로운 MAC 어드레스를 조회합니다.

7. Hostname and DNS: 아래 표를 참고하여 DNS 탭의 항목을 변경하고 Ctrl-S 를 눌러 저장합니다.

Hostname Primary DNS Secondary DNS DNS search path

rac2.mycorpdomain.com DNS IP 주소를 입력하거나 공란으로 비워 둡니다.

DNS IP 주소를 입력하거나 공란으로 비워 둡니다.

디폴트 설정을 승인하거나 공란으로 비워 둡니다.

8. 마지막으로, 각 이더넷 디바이스를 활성화합니다.

/etc/hosts 파일 수정. /etc/hosts 파일에 아래 항목을 추가합니다.

127.0.0.1 localhost

VIPCA 는 Oracle Clusterware 소프트웨어 설치 과정에서 루프백 주소를 사용하려 시도함.

[root@rac2 ~]# vi /export/home/oracle/.profile ORACLE_SID 값을 devdb2로 변경

LANG=C

export PS1="`/bin/hostname -s`-> "

export EDITOR=vi

export ORACLE_SID=devdb2 -à 변경함

export ORACLE_BASE=/u01/app/oracle

(37)

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export

PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/

usr/X11R6/bin

umask 022

SSH를 이용한 user equivalence의 설정. Cluster Ready Services(CRS) 및 RAC 설치 과 정에서, Oracle Universal Installer(OUI)는 oracle 사용자로 (패스워드를 별도로 입력하지 않고) 모든 RAC 노드에 소프트웨어를 복사할 수 있어야 합니다. Oracle 10g에서는 rsh 대 신 ssh를 이용하여 이 작업을 수행할 수 있습니다

oracle user 에서 작업 한다.

먼저 rac1에서 아래와 같이 작업합니다

Last login: Thu Jul 26 20:01:08 2007 [root@rac1 ~]# su - oracle

rac1-> mkdir ~/.ssh rac1-> chmod 700 ~/.ssh rac1-> ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/export/home/oracle/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /export/home/oracle/.ssh/id_rsa.

Your public key has been saved in /export/home/oracle/.ssh/id_rsa.pub.

The key fingerprint is:

53:5f:37:26:91:d8:6d:43:8c:ba:da:39:03:ba:2a:ca oracle@rac1.mycorpdomain.com rac1-> ssh-keygen -t dsa

(38)

Generating public/private dsa key pair.

Enter file in which to save the key (/export/home/oracle/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /export/home/oracle/.ssh/id_dsa.

Your public key has been saved in /export/home/oracle/.ssh/id_dsa.pub.

The key fingerprint is:

93:73:15:37:cf:06:b1:e6:ff:00:e5:4a:70:af:a2:d7 oracle@rac1.mycorpdomain.com

다음으로 rac2에서 아래와 같이 작업합니다

Last login: Thu Jul 26 20:13:53 2007 [root@rac2 ~]# su - oracle

rac2-> mkdir ~/.ssh rac2-> chmod 700 ~/.ssh rac2-> ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/export/home/oracle/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /export/home/oracle/.ssh/id_rsa.

Your public key has been saved in /export/home/oracle/.ssh/id_rsa.pub.

The key fingerprint is:

fa:a4:7f:a6:8e:eb:53:51:3d:fa:29:31:8d:42:42:a1 oracle@rac2.mycorpdomain.com rac2-> ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/export/home/oracle/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /export/home/oracle/.ssh/id_dsa.

Your public key has been saved in /export/home/oracle/.ssh/id_dsa.pub.

The key fingerprint is:

71:2f:2d:e3:1c:4d:cc:4c:00:cd:25:95:28:f8:c9:48 oracle@rac2.mycorpdomain.com

(39)

rac1에서 아래와 같이 작업합니다

rac1-> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys rac1-> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

rac1-> ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys The authenticity of host 'rac2 (192.168.10.172)' can't be established.

RSA key fingerprint is be:e5:a9:27:2d:5b:e5:48:be:10:f4:16:b6:a4:1a:3d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac2,192.168.10.172' (RSA) to the list of known hosts.

oracle@rac2's password: oracle 엔터

rac1-> ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys oracle@rac2's password: oracle 엔터

rac1-> scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys oracle@rac2's password: oracle 엔터

authorized_keys 100% 1712 1.7KB/s 00:00

rac1->

사전 test 해 봅니다.

각 노드의 연결을 테스트합니다. 아래 명령을 두 번째 실행했을 때 패스워드를 묻는 프롬 프트가 뜨지 않음을 확인

실전>

rac1-> ssh rac1 date

The authenticity of host 'rac1 (192.168.10.171)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac1,192.168.10.171' (RSA) to the list of known hosts.

Thu Aug 2 19:23:36 KST 2007

rac1-> ssh rac2 date

(40)

Thu Aug 2 19:24:13 KST 2007

rac1-> ssh rac1-priv date

The authenticity of host 'rac1-priv (10.10.10.71)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac1-priv,10.10.10.71' (RSA) to the list of known hosts.

Thu Aug 2 19:25:05 KST 2007

rac1-> ssh rac2-priv date

The authenticity of host 'rac2-priv (10.10.10.72)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac2-priv,10.10.10.72' (RSA) to the list of known hosts.

Thu Aug 2 19:24:31 KST 2007

rac1-> ssh rac1.mycorpdomain.com date

The authenticity of host 'rac1.mycorpdomain.com (192.168.10.171)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac1.mycorpdomain.com' (RSA) to the list of known hosts.

Thu Aug 2 19:25:26 KST 2007

rac1-> ssh rac2.mycorpdomain.com date

The authenticity of host 'rac2.mycorpdomain.com (192.168.10.172)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac2.mycorpdomain.com' (RSA) to the list of known hosts.

Thu Aug 2 19:24:48 KST 2007

(41)

rac1-> ssh rac1-priv.mycorpdomain.com date

The authenticity of host 'rac1-priv.mycorpdomain.com (10.10.10.71)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac1-priv.mycorpdomain.com' (RSA) to the list of known hosts.

Thu Aug 2 19:25:42 KST 2007

rac1-> ssh rac2-priv.mycorpdomain.com date

The authenticity of host 'rac2-priv.mycorpdomain.com (10.10.10.72)' can't be established.

RSA key fingerprint is 50:f8:cb:b0:12:12:a2:7b:cb:54:4f:d4:d0:89:15:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'rac2-priv.mycorpdomain.com' (RSA) to the list of known hosts.

Thu Aug 2 19:25:01 KST 2007

rac1->

rac1-> 패스워드 묻는 문구 안나옴을 확인 합니다(정상 확인)

다시 실행(test) 해 본다.

rac1-> ssh rac1 date

Mon Aug 6 14:55:24 KST 2007 rac1-> ssh rac2 date

Mon Aug 6 14:55:19 KST 2007 rac1-> ssh rac1-priv date Mon Aug 6 14:55:35 KST 2007 rac1-> ssh rac2-priv date Mon Aug 6 14:55:30 KST 2007

rac1-> ssh rac1.mycorpdomain.com date Mon Aug 6 14:55:47 KST 2007

rac1-> ssh rac2.mycorpdomain.com date

(42)

Mon Aug 6 14:55:41 KST 2007

rac1-> ssh rac1-priv.mycorpdomain.com date Mon Aug 6 14:55:59 KST 2007

rac1-> ssh rac2-priv.mycorpdomain.com date Mon Aug 6 14:55:52 KST 2007

양쪽 load 에 설정 (rac1, rac2)

5.2 Oracle Automatic Storage Management (ASM) 설정

Oracle ASM은 오라클 데이터베이스와 긴밀하게 통합되어 있으며 오라클의 데이터베이스 관리 툴과 연동합니다.

Oracle ASM은 데이터베이스 스토리지 관리 업무를 단순화하고 로우 디스크 I/O 성능을 개선하는 효과를 제공합니다.

ASMLib 설정. root 사용자로 로그인하여 양쪽 노드 에서 ASMLib을 설정해 줍니다.

[root@rac1 ~]# /etc/init.d/oracleasm configure 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 []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Fix permissions of Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: [ OK ] Loading module "oracleasm": [ OK ]

Mounting ASMlib driver filesystem: [ OK ] Scanning system for ASM disks: [ OK ]

(43)

rac1 설정 성공함

ASM 디스크의 생성. root 사용자로 두 노드 중 하나에서만 ASM 디스크를 생성합니다.( rac1 만 생성)

[root@rac1 ~]#

[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1 Marking disk "/dev/sdc1" as an ASM disk: [ OK ]

[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1 Marking disk "/dev/sdd1" as an ASM disk: [ OK ]

[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1 Marking disk "/dev/sde1" as an ASM disk: [ OK ]

[root@rac1 ~]# /etc/init.d/oracleasm scandisks Scanning system for ASM disks: [ OK ] [root@rac1 ~]# /etc/init.d/oracleasm listdisks VOL1

VOL2 VOL3

성공 함.

[root@rac1 ~]#

Rac2에서도 oracleasm 설정 함.

[root@rac2 ~]# /etc/init.d/oracleasm configure 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

(44)

Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Fix permissions of Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: [ OK ] Loading module "oracleasm": [ OK ]

Mounting ASMlib driver filesystem: [ OK ] Scanning system for ASM disks: [ OK ] rac2 도성공함.

Oracle Cluster File System(OCFS2) 설정

OCFS2는 오라클이 개발한 범용 클러스터 파일 시스템으로 Enterprise Linux 커널과 통합 되어 있습니다.

OCFS2는 전체 노드가 클러스터 파일 시스템에 동시 접근하는 것을 가능하게 하며, 로우 디바이스 관리의 필요성을 제거합니다.

본 가이드에서는 OCFS2 파일 시스템에 OCR과 Voting Disk를 위치시키는 방법을 사용합니 다.

OCFS2에 대한 자세한 정보는 OCFS2 사용자 가이드에서 확인하실 수 있습니다.

Enterprise Linux 설치 과정에서 이미 OCFS2 RPM이 설치되었을 것입니다.

*양쪽 노드에 RPM이 선택되었는지 확인합니다.

[root@rac1 ~]# rpm -qa|grep ocfs

ocfs2-tools-1.2.2-1

ocfs2-2.6.9-55.EL-1.2.5-2 ocfs2console-1.2.2-1

[root@rac2 ~]# rpm -qa|grep ocfs

ocfs2-tools-1.2.2-1

ocfs2-2.6.9-55.EL-1.2.5-2 ocfs2console-1.2.2-1

OCFS2 설정 파일의 생성. root 사용자로 로그인하여 아래와 같이 실행

(45)

[root@rac2 ~]# ocfs2console

OCFS2 Console: Cluster, Configure Nodes를 선택합니다.

“The cluster stack has been started”: Close를 클릭합니다.

Node Configuration: Add를 클릭합니다.

Add Node: 아래 노드를 추가한 후 Apply를 클릭합니다.

Name: rac1

IP Address: 192.168.10.171 IP Port: 7777

Name: rac2

IP Address: 192.168.10.172 IP Port: 7777

5. 생성된 설정 파일의 내용을 확인함

(46)

[root@rac1 ~]# more /etc/ocfs2/cluster.conf node:

ip_port = 7777

ip_address = 192.168.10.171 number = 0

name = rac1 cluster = ocfs2

node:

ip_port = 7777

ip_address = 192.168.10.172 number = 1

name = rac2 cluster = ocfs2

cluster:

node_count = 2 name = ocfs2

rac1 의 내용 그대로 copy 한다.

[root@rac2 etc]# more /etc/ocfs2/cluster.conf node:

ip_port = 7777

ip_address = 192.168.10.171 number = 0

name = rac1 cluster = ocfs2

node:

ip_port = 7777

ip_address = 192.168.10.172 number = 1

(47)

name = rac2 cluster = ocfs2

cluster:

node_count = 2 name = ocfs2

[root@rac2 etc]#

6. O2CB 드라이버 설정.

O2CB는 노드와 클러스터 파일 시스템 간의 커뮤니케이션을 관리하는 일련의 클러스터링 서비스로 구성됩니다.

각 서비스에 대한 설명이 아래와 같습니다

NM: Node Manager / cluster.conf에 설정된 모든 노드의 상태를 추적.

HB: Heartbeat 서비스 / 노드가 클러스터에 가입/탈퇴하는 경우 업/다운 통보를 전달 TCP: 노드 간의 커뮤니케이션을 처리

DLM: Distributed Lock Manager / 락, 락의 소유자 및 상태 정보를 추적 CONFIGFS: 사용자 공간(/config)에 마운트되는 구성 파일 시스템 DLMFS: 커널 스페이스 DLM을 위한 사용자 공간 인터페이스

*양쪽 노드에 아래 작업을 수행하여 부팅 시 O2CB가 실행되도록 설정해 줍니다.

heartbeat dead threshold를 묻는 프롬프트에서 7 이상의 값을 입력하여 낮은 성능의 IDE 디스크 드라이브로 인해

node crash 가 발생하는 것을 방지해 주어야 합니다.

heartbeat dead threshold는 fence time을 계산하기 위한 변수로 활용됩니다.

Fence time (seconds) = (heartbeat dead threshold -1) * 2

본 가이드의 구성에서는 120 초의 fence time이면 충분합니다.

heartbeat dead threshold 값은 *양쪽 node에 동일하게 설정되어야 합니다.

(48)

root 사용자로 로그인하여 아래와 같이 실행

[root@rac1 ~]# /etc/init.d/o2cb unload Stopping O2CB cluster ocfs2: OK Unmounting ocfs2_dlmfs filesystem: OK Unloading module "ocfs2_dlmfs": OK Unmounting configfs filesystem: OK Unloading module "configfs": OK

[root@rac1 ~]# /etc/init.d/o2cb 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 to start on boot (Enter "none" to clear) [ocfs2]:

Specify heartbeat dead threshold (>=7) [7]: 61 Writing O2CB configuration: OK

Loading module "configfs": OK

Mounting configfs filesystem at /config: OK Loading module "ocfs2_nodemanager": OK Loading module "ocfs2_dlm": OK

Loading module "ocfs2_dlmfs": OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK Starting O2CB cluster ocfs2: OK

[root@rac1 ~]#

(49)

rac1 설정 성공 함

--- [root@rac2 ~]# /etc/init.d/o2cb unload 아무것도 안 나옴

[root@rac2 ~]# /etc/init.d/o2cb 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 to start on boot (Enter "none" to clear) [ocfs2]:

Specify heartbeat dead threshold (>=7) [7]: 61 Writing O2CB configuration: OK

Loading module "configfs": OK Creating directory '/config': OK

Mounting configfs filesystem at /config: OK Loading module "ocfs2_nodemanager": OK Loading module "ocfs2_dlm": OK

Loading module "ocfs2_dlmfs": OK Creating directory '/dlm': OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK Starting O2CB cluster ocfs2: OK

[root@rac2 ~]#

rac2 설정 성공

참고: 파일 시스템의 포맷. 파일 시스템의 포맷, 마운팅을 수행하기 전에, OC2B가 양쪽 node에서 온라인 상태인지 확인합니다.

O2CB heartbeat는 파일 시스템이 mount 되기 전까지 활성화되지 않습니다.

(50)

[root@rac1 ~]# /etc/init.d/o2cb status

Module "configfs": Loaded Filesystem "configfs": Mounted Module "ocfs2_nodemanager": Loaded Module "ocfs2_dlm": Loaded

Module "ocfs2_dlmfs": Loaded Filesystem "ocfs2_dlmfs": Mounted

Checking O2CB cluster ocfs2: Online --> 온라인 상태 확인 Checking O2CB heartbeat: Not active

[root@rac1 ~]#

[root@rac2 ~]# /etc/init.d/o2cb status

Module "configfs": Loaded Filesystem "configfs": Mounted Module "ocfs2_nodemanager": Loaded Module "ocfs2_dlm": Loaded

Module "ocfs2_dlmfs": Loaded Filesystem "ocfs2_dlmfs": Mounted

Checking O2CB cluster ocfs2: Online --> 온라인 상태 확인 Checking O2CB heartbeat: Not active

[root@rac2 ~]#

파일 시스템 포맷 작업은 두 node 중 하나에서만 수행합니다.

root 사용자로 rac1에 로그인하여 아래와 같이 실행합니다.

[root@rac2 ~]# ocfs2console

OCFS2 Console: Tasks, Format을 선택합니다.

Format:

Available devices: /dev/sdb1 Volume label: oracle

(51)

Cluster size: Auto Number of node slots: 4 Block size: Auto

OCFS2 Console: CTRL-Q를 눌러 종료합니다.

파일 시스템의 마운트. 파일 시스템을 마운트하기 위해, *양쪽 node에서 아래와 같이 명령을 실행합니다.

[root@rac1 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs

[root@rac2 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs

부팅 시에 파일 시스템이 mount 되도록, 양쪽 노드의 /etc/fstab에 아래 라인을 추가해 줍니다.

[root@rac1 ~]# vi /etc/fstab

# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 LABEL=/u01 /u01 ext3 defaults 1 2 LABEL=SWAP-sda2 swap swap defaults 0 0

# Beginning of the block added by the VMware software

.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0

# End of the block added by the VMware software

/dev/hdc /media/cdrecorder auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0

/dev/fd0 /media/floppy auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0

/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0 -->> 추가 해줌

(52)

[root@rac2 ~]# vi /etc/fstab

# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 LABEL=/u01 /u01 ext3 defaults 1 2 LABEL=SWAP-sda2 swap swap defaults 0 0

# Beginning of the block added by the VMware software

.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0

# End of the block added by the VMware software

/dev/hdc /media/cdrecorder auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0

/dev/fd0 /media/floppy auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0

/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0 ---> 추가 해줌

Oracle Clusterware 디렉토리 생성. OCFS2 파일 시스템에 OCR, Voting Disk가 위치할 디렉토리를 생성.

rac1에서 아래와 같이 작업

[root@rac1 ~]# mkdir /ocfs/clusterware [root@rac1 ~]# chown -R oracle:dba /ocfs

이것으로 OCFS2의 셋업 과정을 완료하였습니다.

*양쪽 node의 공유 클러스터 파일 시스템에서 파일 읽기/쓰기를 수행할 수 있는지 확인 함.

(53)

7. Oracle Clusterware 설치

다운로드를 완료한 후, rac1에 oracle 사용자로 로그인하여 아래와 같이 실행

Xhost 및 xclock 이 실행 되도록 함.

(54)

클러스터 설치 한다.

(55)
(56)

(57)
(58)
(59)

Oracle Clusterware 설치 위의 그림 참고 함

참조

관련 문서

(4) After a certain period of tightening time with tightening torque, Z-axis and rotating axis return in positioning control mode to the retracted

For this study—our third on global workforce trends, follow- ing studies in 2014 and 2018—Boston Consulting Group and The Network surveyed some 209,000 people in 190 countries

VMware Cloud SDDC and Hybrid

Note : 여기서 한 가지 짚고 넘어갈 점은 Flashback table, Flashback Database, Flashback Drop, Flashback Version Query, Flashback Transaction Query는 아래의 표와 같이

Use Tanzu Application Catalog and deploy open source with confidence:. Align Developers and IT around velocity,

Kubernetes 클러스터 노드가 실패하면 PKS 가 노드를 다시 빌드하고 클러스터를 재구성하며 Kubernetes Control Plane 은 작업 노드에서 포드를 다시 예약. 포트가

**In matches where Round 3 requires a drill to be done on the Right side for half the round and Left side for the other half of the round, there will be a 10 second

A virtual displacement of a generalized coordinate in physical space ~ A combination of virtual displacements subjected to the constraints of... Generally, the