오라클은 클러스터 기술에 관한 오래 역사를 가지고 있다.
캐시 퓨전이라는 새로운 "diskless" ping 아키텍쳐는 블록을 소유한 인스턴스의 메모리 캐시로부터 요청한 인스턴스의 메모리 캐시로 디스크를 거치지 않고 직접적으로 블록의
복사본을 전송해준다. 이 기능은 크게 인스턴스 간의 통신을 향상시져준다. 캐시 퓨전은 동일한 데이터에 대한 업데이트나 동일한 데이터에 대해서 쿼리가 동시에 실행하는 경우
유용하다 또한 데이터와 유저가 특정한 노드에서만 모든 작업이 일어나지 않는 고립되지 않는 데이터베이스에 유리할 수 있다. 캐시 퓨전에서는 인스턴스를 유저나 데이터로
파티션을 하는데 집중할 필요가 없어진다.
11G의 기본 아키텍쳐이다. 기본적인 2개 노드 클러스터를 보여주고 있다. 이 클러스터는 ASM 인스턴스, RDBMS 인스턴스와 두 개의 리스너로 실행되고 있다.
위에 그림 11g 클러스터의 각 노드들은 Membership과 기능에 대해서 동일하다. 각 노드는 동일한 클러스터 소프트웨어가 동작하고 리소스는 어떤 노드상에서도 동작할 수 있고 모든 노드는 스토리지에 직접 액세스할 수 있다.
12c의 그리드 인프라스트럭쳐에서는 허브와 리브라는 두 가지 타입의 노드로 구성된 Flex Cluster라는 새로운 타입의 기술이 소개되고 있다.
사용자가 Flex Cluster를 구축할지 여부를 결정할 때 다음 사항들을 고려해야 한다.
다음 예에서는 노드의 현재의 모드를 확인하고 허브 노드로부터 리프 노드를 변경한다. 변경이 완료되면 클러스터 소프트웨어를 재시작하고 변경 내용을 확인한다.
[root@node11] crsctl get node role config
Node 'node11' configured role is 'hub'
[root@node11] crsctl set node role lead
CRS-4408: Node 'node11' configured role successfully changed; restart Oracle High Availability Services for new role to take effect.
[root@node11] crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'node11'
[root@node11] crsctl start crs -wait
CRS-4123: Starting Oracle High Availability Services-managed resources
...
...
[root@node11] crsctl get node role config
Node 'node11' configured role is 'leaf'
[root@node11] crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[root@node11] ps -ef | grep pmon
root 10865 6284 0 12:14 pts/0 00:00:00 grep pmon
12c ASM 인스턴스와 RDBMS 인스턴스가 동일한 서버에 상주하지 않아도 되는 선택적인 Flex ASM 기술이 도입.
2가지 장점
$ ps -ef | grep pmon
oracle 9999 1 0 Apr29 ? 00:00:01 ora_pmon_a056_1
grid 1234 1 0 00:01 ? 00:00:01 asm_pmon_+ASM1
grid 3434 2431 0 00:02 pts/0 00:00:01 grep pmon
$ srvctl stop asm -n node10 -f
$ ps -ef | grep pmon
oracle 9999 1 0 Apr29 ? 00:00:01 ora_pmon_a056_1
grid 3434 2431 0 00:02 pts/0 00:00:01 grep pmon
$ sqlplus / as sysdba
SQL> selet open_mode from v$database;
OPEN_MODE
----------------------------
READ WRITE
구동되는 ASM 인스턴스가 없는 서버에서 실행되는 RDBMS 인스턴스와 클러스터를 보여준다. 개별적으로 동작한다.
RDBMS는 원격 ASM 인스턴스와 통신하고 RDBMS와 ASM 두 인스턴스는 둘 다 공유 스토리지에 액세스 해야 한다.
설치 중 OUI에서 ASM 클라이언트가 원격 ASM 인스턴스와 통신하는데 사용되는 네트워크 구성을 물어볼 것이다. 원격 ASM의 연결을 이용하기 위해서는 리스너가 ASM 네트워크상에서 실행하기 위해 반드시 필요하다.
$ $ crsctl stat res ora.ASMNET1LSNR_ASM.lsnr -n node10
NAME=ora.ASMNET1LSNR_ASM.lsnr
TYPE=ora.asm_listener.type
TARGET=ONLINE
STATE=ONLINE
Flex ASM을 구동되도록 선택했다면 SCAN 리스너, 로컬 리스너, ASM 리스너를 가진다.
$ asmcmd showclustermode
ASM cluster : Flex mode enabled
$ srvctl status asm -datail
ASM is running on node10,node11
ASM is enabled.
$ srvctl modify asm -count ALL
$ srvctl config asm
ASM home: /u01/app/12.1.0/grid
Password file: +OCR/orapwASM
ASM listener: LISTENER
ASM instance count : ALL
Cluster ASM listener : ASMNET1lSNR_ASM
다음은 각 노드가 ASM 인스턴스를 실행하도록 다시 SRVCTL를 사용한다.
$ srvctl modify asm -count 3
$ srvctl config asm
ASM home: /u01/app/12.1.0/grid
Password file: +OCR/orapwASM
ASM listener: LISTENER
ASM instance count : 3
Cluster ASM listener : ASMNET1lSNR_ASM
사용자 인증은 OS나 패스워드 파일에 위해 이루어진다.
기본 위치는 $ORACLE_HOME/dbs에 있다.
12c 그리드 인프라스터럭쳐에서는 클러스터의 모든 노드가 단일 ASM 패스워드 파일을 공유할 수 있도록 ASM 디스크 그룹에 패스워드 파일을 저장할 수 있다.
$ srvctl config asm
ASM home : /u01/app/12.1.0/grid
Password file: +OCR/orapwASM
ASM listener: LISTENER
ASM instance count : 3
Cluster ASM listener : ASMNET1LSNR_ASM
12c에서는 한 인스턴스 내의 복수 개의 디스크 그룹에서 동시에 Rebalance 작업을 할 수 있다.
ASM은 빠르고 사용하기 쉬운 클러스터 파일 시스템인 반면 ASM에 저장된 데이터를 액세스하거나 표준 파일 시스템 도구를 사용할 수 없는 단점이 있다.
ADVM은 클라이어튼의 I/O 요청을 받아 해당 ASM 디스크 그룹에 요청을 매핑한다. ADVM 또한 ADVM 볼륨에 대해 구성된 ASM 스토리지에 디스크 드라이버 인터페이스를 제공하여 ASM을 확장한다. ACFS는 ASM 과 일반 파일 시스템의 최종 링크를 제공한다. ACFS를 통해 관리자와 DBA는 cp나 df 등의 명령을 사용하여 일반 파일 시스템과 동일하게 ACFS 파일 시스템상에서 상호작업을 할 수 있다.
오라클 DB 11.2.0.4 버전까지는 데이터 펌프 익스포트 파일, 아카이브 로그 파일, RMAN 백업 파일과 같이 데이터 파일이 아니거나 2차(Control File, ocr file 등)이 아닌 파일은 ACFS에서는 지원되지 않았다.
12c에서는 모든 DB 파일(Windows Flatform 제외)에서 ACFS 지원한다.
$ acfsdriverstate supported
ACFS-9200: Supported
Unsupport 가 지원하는 플랫폼인지 확인한다.
다음으로 Kernel 모듈이 Install 되었는지 또는 구동되었는지 확인한다.
$ acfsdriverstate installed
ACFS-9203: true
$ acfsdriverstate loaded
ACFS-9204: false
다음 명령을 통해서 모듈을 기동한다.
$ acfsload start
..............
..............
..............
..............
..............
..............
..............
..............
$ acfsdriverstate loaded
ACFS-9204: true
다음으로 ACFS 파일 시스템으로 마운트하고자 하는 위치의 디렉토리를 생성한다.
$ mkdir /acfs
ASMCMD> volcreate -G data -s 3G vol1
ASMCMD> volinfo -F data vol1
Diskgroup Name : DATA
Volume Name : VOL1
Volime Device : /dev/asm/vol1-249
State: ENABLED
Size (MB) : 3072
Resize Unit : UNPROT
Stripe Columns: 4
Stripe Width (K): 128
Usage:
Mountpath:
$ mkfs -t acfs /dev/asm/vol1-249
mkfs.acfs: version = 12.1.0.1.0
mkfs.acfs: on-disk version = 39.0
mkfs.acfs: volume = /dev/asm/vol1-249
mkfs.acfs: volume size = 32458921
mkfs.acfs: Format complete
$ acfutil registry -a /dev/asm/vol1-249 /acfs/
$ mount -t acfs /dev/asm/vol1-249 /acfs
Network File System(NFS)은 원격 시스템에서 파일에 액세스하는 방법이다.
사용방법은 다음과 같다.
ACFS 스냅샷이란 온라인이나 또는 읽기 전용, 읽기-쓰기 모드인 ACFS 파일 시스템의 Point-in-time 복제본이다.
용도는 다음과 같다.