오라클 클러스트의 구조 복습

어제 수업

💡 클러스터의 역할
1. standard alone : 오라클 프로세서가 비정상 종료되면 자동으로 올리는 역할
2. RAC : 오라클 프로세서가 비정상 종료되면 자동으로 올리는 역할 + 여러개의 노드를 하나의 서버로 보이게 하는 것

💡 RAC 설치할 때 제일 처음에 grid를 설치하는데 grid를 설치하게 되면 클러스터와 ASM이 같이 설치됩니다.
: 우리 19c rac 설치할 때 ASM에 설치가 된다. 그런데 현업에서는 RAW DEVICE로 쓴다. 잘 안깨져서!

TIP : 오라클 RAC 설치하면 처음에는 무조건 ASM에 구성이 되지만 나중에 다시 RAW DEVICE로 변경해줍니다. 또는 DBCA로 DB 생성 안하고 처음부터 create database로 생성해서 raw device로 구성합니다.


실습 voting disk를 multiplexing 하는 실습
: 평상시에 multiplexing하고 백업을 해야한다.

0. owi_tbs 테이블 스페이스를 drop 한다.

drop tablespace owi_tbs including contents and datafiles;

1. 현재 voting disk 의 상태를 확인한다.

$ crsctl query css votedisk  

2. 양쪽 노드의 application 을 shutdown 한다.
: 리눅스 서버를 내리는게 아니라, 오라클 인스턴스/리스너/ASM 같은 응용프로그램들을 내리는 것

$ srvctl stop nodeapps -n rac1 -f <-- 노드명 
$ srvctl stop nodeapps -n rac2 -f

3. 양쪽 노드의 클러스터를 shutdown 한다.

# crsctl stop crs   <--- 1번 노드
# crsctl stop crs   <--- 2번 노드 

4. raw8 과 raw8 디바이스에 voting disk 를 multiplxing 한다.
: 얘는 그리드 쪽에 안됨. 로우디바이스가 있다면

# raw -qa   <-- raw device 목록이 나오는데, 이 목록중에 사용하지 않은 raw device를 선택 
# crsctl add css votedisk /dev/raw/raw17 -purge

5. 양쪽 노드의 crs 를 start 한다.

$ crsctl start crs   <-- 1번 노드
$ crsctl start crs   <-- 2번 노드 
 
# crsctl add css votedisk /dev/raw/raw17

6. voting disk 의 구성을 확인한다.

1. ONLINE   631c3f93b0494f6fbf6866c36fb4cc76 (/dev/raw/raw3) []
2. ONLINE   4181d8ddd3c84ffebf2b073f8a3419a5 (/dev/raw/raw4) []
3. ONLINE   70bc2626263b4fdfbfc7517ee6ad9a5a (/dev/raw/raw5) []
4. ONLINE   46585c650c834ffebf27f6bf34b8a8ff (/dev/raw/raw17) []

➡️ 하나만 남기고 다 깨져도 유지가 되지만, 모두 깨지면 백업 받은걸로 추가해주는 작업을 해야한다.

7. 모든 application을 올린다! (oracle user에서)
: 클러스터 올리니까 알아서 올라오긴 하지만 혹시나 ..!

$ srvctl start nodeapps -n rac1 
$ srvctl start nodeapps -n rac2 

❗ 우리는 ASM 쪽에 구성되어있어서 안보임! 환경이 안되어서 실습 못했음!!

✏️ ocr file의 역할과 관리방법

💡OCR (oracle configure repository)
오라클 클러스터 정보가 등록되어져 있는 파일이다. 예를들어 1번 노드에 있는 vip가 1번 노드를 다운시켰더니 2번 노드로 failover 된다는 그 정보 !

$ ocrcheck  <-- ocr 파일의 위치가 나온다. +CRS라고 나옴 ASM쪽에 있어서
$ orcconfig -showbackup <-- ocr 파일의 백업본 위치 확인
  • 4시간에 한번씩 : 3개의 백업본 유지
  • 매일 자정에 한번씩 : 2개의 백업본 유지
  • 주말에 한번씩 : 2개의 백업본 유지
    ➡️ 총 7개의 백업본을 생성하고 관리한다!

❓ ocr 파일의 자동 백업 주기는 변경할 수 있는가? : 안됨
❓ ocr 파일의 백업 위치를 변경하는 방법은?

$ orcconfig -backuploc /shared/bak <-- 자동 백업 위치

✔️ ocr file 을 미러링 하는 방법

1. 클러스터 운영중일때

# ocrcheck   -->  ocr file 의 위치를 확인 
# ocrconfig -replace  ocrmirror  /dev/raw/raw14

2. 클러스터가 다운되었을때

# crsctl  stop  crs
# ocrconfig  -repair  ocrmirror  /dev/raw/raw14 
# crsctl  start  crs 

11g R2 부터는 ocr 파일을 ASM 에 구성할수있도록 이동하는 명령어를 지원하는데 방법은 ?

1. 클러스터 버전을 확인

[root@rac1 ~]# crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.4.0]    

2. ASM 에 OCR 파일을 추가

[root@rac1 ~]# ocrconfig -add +DATA  <---- DATA  ASM  디스크 그룹명 

3. 잘 추가가 되었는지 확인

[root@rac1 ~]# ocrcheck

✔️ ocr file 을 손상시킨후 기존 mirroring 한 파일로 복구하는 방법

(진행하지 않았음!)

1. ocr 파일의 위치와 상태를 확인한다.

$ ocrcheck

$ more /etc/oracle/ocr.loc 

ocrconfig_loc=+CRS
ocrmirrorconfig_loc=+DATA
local_only=false

2. /dev/raw/raw14 에 미러링한다.

# ocrconfig -replace  /dev/raw/raw1 -replacement /dev/raw/raw14 

3. ocrcheck 명령어로 ocr 파일의 위치를 확인한다. (미러링 되었는지 확인한다.)

4. 기존 ocr 파일을 corrupt 시킨다. raw device 포맷하는 것
✅ ocr file이 raw device에 있는 경우

# dd if=/dev/zero  of=/dev/raw/raw1  bs=1024  count=200

✅ ocr file이 ASM에 있는 경우

[root@rac1 ~]# su - grid
[grid@+ASM1 ~]$ asmcmd
ASMCMD> pwd
+crs/rac/ocrfile
ASMCMD> ls
REGISTRY.255.1150854863
ASMCMD> rm REGISTRY.255.1150854863 --> 사용중이라 삭제 안된다고 함

➡️ 굳이 하자면 오라클 클러스터 내리고 삭제하면 됨
5. 손상되었는지 확인한다.

$ ocrcheck

⭐ 복구하는 명령어는 알고있기

6. 복구작업을 수행한다.

# ocrconfig -replace ocrmirror  +CRS <-- 원본쪽 위치

7. ocrcheck

📖 10장. 클러스터 문제 해결

✏️ 목차
1. 클러스터 로그 정보 확인하는 방법
2. 클러스터를 쉽게 진단할 수 있는 툴인 cluvfy 사용 방법

✏️ 1. 클러스터 로그 정보 확인하는 방법

💡 11g 부터 오라클의 로그들을 모두 한군데 모아놓고 명령어를 통해 빠르게 진단할 수 있게 했습니다. 그 진단 툴이 ADR (Automatic Diagnostic Repository) !!

❓ 접속 하는 방법!

$ adrci
adrci> show problem
adrci> show incident;

❓ database에서 발생하는 모든 로그들을 다 모아놓은 디렉토리가 어디인가?

SYS> show parameter diagnostic_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle

💡 diagnostic_dest에 총 아래의 4가지를 넣고 관리해준다.

  1. 클러스터
  2. ASM
  3. network
  4. database
$ cd /u01/app/oracle
[oracle@racdb1 diag]$ pwd
/u01/app/oracle/diag
[oracle@racdb1 diag]$ ls
asm  clients  crs  diagtool  lsnrctl  netcman  ofm  rdbms  tnslsnr

➡️ 클러스터도 db처럼 alert log file이 있다. 클러스터쪽에 문제가 생기면 이걸 먼저 열어보기!!

오라클에서 클러스터의 문제점을 진단하기 위해 제공하는 툴

1. 클러스터 alert log file

[oracle@racdb1 ~]$ su - grid
[grid@+ASM1 ~]$ cd $GRID_HOME
[grid@+ASM1 rac1]$ pwd
/u01/app/11.2.0/grid/log/rac1 -- 여기에 alert log 있다.
[grid@+ASM1 rac1]$ vi alertrac1.log -- 열어보기 !

2. diacollection.pl 스크립트

[root@rac1 bin]# cd /u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./diagcollection.pl -collect <-- 압축 파일을 만들어준다.
[root@rac1 bin]# ls -l *.tar.gz

3. cluster verify untility ⭐ grid 설치 직전에 확인하기!
: rac 설치할 때 설치하기 전에 미리 이 컴퓨터에 오라클 rac를 설치해도 에러가 안나고 잘 설치 될 수 있는지를 쉽게 확인하고 싶을때 확인! rac 설치 전에 최소한의 사양 체크를 해준다.

[oracle@racdb1 ~]$ cluvfy comp sys -n rac1,rac2 -p crs -verbose


다양한 cluvfy 명령어

profile
Slow and steady wins the race.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN