0320 RAC 이론

현스·2024년 3월 20일

RAC

목록 보기
10/12
post-thumbnail

RAC 이론 수업

▣ 예제 9. rolling patch 와 rolling

patch 란 ?

오라클 새로운 릴리즈 제품이 출시되고 나서 고객들이 사용하다가 발견한 버그(bug) 들을 오라클사에서 fix 프로그램을 만들어서 배포를 합니다. 배포된 프로그램으로 적용하는 것을 패치라고 합니다.

upgrde 란 ?

오라클 버젼을 올리는것입니다.

patch 와 upgrade 를 할때 인스턴스를 내렸다 올려야합니다.
다운 타임이 발생하게 됩니다. 그럼 서비스가 안됩니다.

RAC 를 사용하면 rolling patch 와 rolling upgrade를 할 수 있어서 다운타임이 발생하지 않습니다.

▣ 예제 10. voting disk 와 orc file 이 무엇인지


  1. voting disk : 심장 박동 주기 정보가 들어있는 파일
    split brain 현상을 방지하기 위한 정보가 들어있는 파일
    split brain 현상 : 노드 간의 연결이 끊김 - 문제 발생

  2. ocr file : RAC 에 응용 프로그램들의 클러스터 정보가 들어있는 파일
    RAC 응용 프로그램들 - instance, listener, vip, ASM, service 등

▣ 예제 11. RAC 설치 시 구성할 수 있는 storage 3 가지 ( I -29 )

올라오는 순서 : 클러스터 ---> ASM ---> DB 인스턴스

양쪽 노드간의 네트워크 통신이 가능한 상태가 되어야 클러스터가 제대로 올라옴

예: 1번 노드에서 ping 192.168.56.112 로 2번 노드로 ping 을 날립니다.
2번 노드에서 ping 192.168.

▣ 예제 12. RAC 환경에서 리두 로그 파일 관리 방법


■ 실습
#1. 1번 인스턴스에서 thread 번호를 확인합니다.
#2. 2번 인스턴스에서 thread 번호를 확인합니다.
#3. 1번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.
#4. 1번 인스턴스에서 로그 스위치를 일으킵니다.
#5. 1번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.
#6. 2번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.
#7. 2번 인스턴스에서 로그 스위치를 일으킵니다.
#8. 2번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.

■ 구현
#1. 1번 인스턴스에서 thread 번호를 확인합니다.

#2. 2번 인스턴스에서 thread 번호를 확인합니다.

#3. 1번 인스턴스에서 리두로그 그룹과 상태와 thread 번호 : RAC 환경에서 어느 리두 로그 그룹의 번호인지를 구분해주기 위한 확인합니다.

thread 번호
: RAC 환경에서 어느 인스턴스의 리두 로그 그룹인지를 구분해주기 위한 번호

#4. 1번 인스턴스에서 로그 스위치를 일으킵니다.

#5. 1번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.

current 가 바뀜.

#6. 2번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.

#7. 2번 인스턴스에서 로그 스위치를 일으킵니다.

#8. 2번 인스턴스에서 리두로그 그룹과 상태와 thread 번호를 확인합니다.

▣ 예제 13. RAC 환경에서 리두로그 그룹 추가하기

지금 디스크 ASM 임.

지난 번에 배웠던 리두 로그 그룹 추가 명령어

SQL > alter database add logfile group 5 '/u01/app/oracle/oradata/jhs/redo05.log' size 10m; <- 파일 머시기라 가능했는데

지금은 RAC 환경에 ASM 이라서 명령어가 달라짐

SQL#1 > alter database add logfile thread 1 group 5;

디폴트는 100m

OMF 기능이 켜져있는 상태에서 file 을 추가하면 default 사이즈가 100m 이다.

문제2. 2번 인스턴스용 리두 로그 그룹을 그룹번호 6번으로 해서 추가 하시오

SQL#1 > alter database add logfile thread 2 group 6;

문제3. 1번 인스턴스와 2번 인스턴스에서 각각 로그 스위치를 일으키고 unused 상태가 아니게 하시오

문제 4 5번 리두 로그 그룹을 삭제하시오

SQL#1 > alter database drop logfile group 5;

삭제를 할 때는 상태가 current 나 active 면 안된다.

에러남

문제6. 리두 로그 그룹 6번을 삭제 하시오

▣ 예제 14. RAC 환경에서 언두 테이블 스페이스 관리

변경된 더티버퍼는 디스크에 내려 쓰고

롤백버퍼, cr 버퍼는 언두테이블스페이스에 내려 씀

리두 데이터와 언두 데이터의 차이를 알아야 함.
리두 데이터 : 복구할 때 필요할 데이터
언두 데이터 : 취소할 때 필요한 데이터 (rollback)

※ rac 환경에서는 undo data를 별개의 테이블 스페이스에 따로따로 write 합니다.

쓰기는 따로따로 쓰지만 어느 인스턴스에서는 둘 다 똑같이 읽기는 가능해야 합니다.

■ 실습

#1. 1번 노드에서 사용하는 undo tablespace 가 무엇인지 확인
#2. 2번 노드에서 사용하는 undo tablespace 가 무엇인지 확인.
#3. undotbs3 이라는 undo tablespace 를 생성.
#4. undotbs3 을 1번 인스턴스용 tablespace 로 지정

■ 구현

#1. 1번 노드에서 사용하는 undo tablespace 가 무엇인지 확인

SQL#1 > show parameter undo_tablespace

#2. 2번 노드에서 사용하는 undo tablespace 가 무엇인지 확인.

SQL#2 > show parameter undo_tablespace

#3. undotbs3 이라는 undo tablespace 를 생성.

SQL#1 > select tablespace_name, file_name from dba_data_files;eate undo tablespace undotbs3 datafile '+DATA' size 50m;

SQL#1 > select tablespace_name, file_name from dba_data_files;

#4. undotbs3 을 1번 인스턴스용 tablespace 로 지정

SQL#1 > select instance_name from v$instance;
SQL#1 > alter system set undo_tablespace='undotbs3' sid='racdb1';

scope = both 아니고 sid='racdb1';

설명 : sid='racdb1' <--- 1번 인스턴스용 parameter 를 변경해라

sid='racdb2' <--- 2번 인스턴스용 parameter 를 변경
sid='*' <--- 모든 인스턴스용 parameter 를 변경.

문제 1. undotbs4 라는 언두테이블스페이스를 사이즈 50메가로 생성하고 2번 인스턴스용 언두테이블스페이스로 지정하시오.

SQL#2 > create undo tablespace undotbs4 datafile '+DATA' size 50m;

SQL#2 > alter system set undo_tablespace='undotbs4' sid='racdb2';

SQL#2 > select tablespace_name, file_name from dba_data_files;

SQL#2 > select instance_name from v$instance;

SQL#2 > show parameter undo_tablespace

문제2. 1번 인스턴스의 undo tablespace 를 다시 undotbs1 로 변경하시오

SQL#1 > alter system set undo_tablespace='undotbs1' sid='racdb1';

SQL#1 > show parameter undo_tablespace

문제3. 2번 인스턴스의 undo tablespace 를 다시 undotbs2 로 변경하시오

SQL#2 > alter system set undo_tablespace='undotbs2' sid='racdb2';

SQL#2 > show parameter undo_tablespace

문제 4. undotbs3 테이블 스페이스를 drop 하시오

alter tablespace drop undotbs3;

로 드랍하던건 뭐였더라 ???

SQL#1 > drop tablespace undotbs3 including contents and datafiles;

Tablespace dropped

문제 5

SQL#12 > drop tablespace undotbs4 including contents and datafiles;

오늘의 마지막 문제

  1. 필요한 alias 를 .bash_profile 에 등록하세요

alias ss="sqlplus / as sysdba"
alias r="rman target sys/oracle nocatalog"
alias dbs="cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs"
alias net="cd /$ORACLE_HOME/networck/admin"

@logsw alter system switch logfile
@ckpt alter system checkpoint

profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글