[RAC]23.10.27_RAC 관리

망구씨·2023년 10월 27일
0

RAC

목록 보기
3/14
post-thumbnail

📖 RAC 관리

(책 4장 순서)
1. EM으로 RAC 관리 하는 방법
2. RAC 환경에서 리두 로그 파일 관리 방법
3. RAC 환경에서 언두 테이블 스페이스 관리
4. RAC 환경에서 인스턴스 시작과 정지
5. RAC 환경에서 파라미터 파일 관리
6. RAC 환경에서 ASM 인스턴스 관리

✏️ 1. EM으로 RAC 관리 하는 방법

(책 참고하기)
RAC에서의 EM은 클러스터 홈페이지가 맨 처음에 뜬다는 것이 Single instance의 EM과의 차이이다!

인스턴스들이 정상인지 한눈에 확인 가능

✏️ 2. RAC 환경에서 리두 로그 파일 관리 방법

(책 p.4-16)

➡️ 그룹 1,2,3 은 RAC01에, 그룹 4,5는 RAC02에 있어서 나눠져있는 것 같아 보이지만 그게아니라 공유 스토리지에 한번에 있다.

쓰기는 따로 쓰는데 읽는것은 양쪽에서 모두 한다. 쓰레드 번호로 구분 !

실습

1. 리두 로그 그룹을 확인합니다.

select group#, status, sequence#, thread#
 from v$log;

2. 노드에서 각각 thread 번호를 확인하기

show parameter thread


3. 노드에서 각각 로그 스위치를 일으키기

racdb1> alter system switch logfile;
racdb2> alter system switch logfile;


➡️ 시퀀스 번호 바뀌었다. 각각 써지고 있는 것을 확인!
4. 리두 로그 그룹의 멤버를 확인하기

racdb1> col member for a45
racdb1> select group#, member
         from v$logfile
         order by 1 asc;

    GROUP# MEMBER
---------- ---------------------------------------------
         1 +FRA/racdb/onlinelog/group_1.257.1150862633
         1 +DATA/racdb/onlinelog/group_1.261.1150862633
         2 +FRA/racdb/onlinelog/group_2.258.1150862633
         2 +DATA/racdb/onlinelog/group_2.262.1150862633
         3 +DATA/racdb/onlinelog/group_3.265.1150862701
         3 +FRA/racdb/onlinelog/group_3.259.1150862701
         4 +DATA/racdb/onlinelog/group_4.266.1150862701
         4 +FRA/racdb/onlinelog/group_4.260.1150862701

5. 리두 로그 그룹 추가하기
✔️ ASM 환경

-- alter database add logfile thread 1 group 5 '+DATA' data생략도 될것이다.
-- 5번 그룹을 추가하는데 1번 인스턴스를 위한 그룹입니다. (thread다음 숫자)
alter database add logfile thread 1 group 5 ;


✔️ cluster file system 환경에서 (우리는 아니라서 기재만 했음)

alter database add logfile thread 1 group 5
'/home/oracle/redo05a.log' size 100m;

✔️ Raw divice환경에서
100m받았으면 99m로 만든다. 시스템이 쓸수있게 1m는 꼭 남겨야한다.

alter database add logfile thread 1 group5
 '/dev/raw/raw17' size 99m;

문제 리두 로그 그룹을 각각 2개씩 추가해서 아래와 같이 그룹이 구성될 수 있도록 하시오

select group#, status, thread#
 from v$log;

group# , thread#
  1         1
  2         1
  3         2
  4         2
  5         1
  6         1
  7         2
  8         2
 
alter database add logfile thread 1 group 6 ;
alter database add logfile thread 2 group 7 ;
alter database add logfile thread 2 group 8 ;

문제 추가한 그룹을 삭제하고 다시 아래 상황으로 돌려놓기
➡️ drop할때는 UNUSED, INACTIVE여야만 한다!
( logwitch나 checkpoint를 일으켜서 INACTIVE로 만들면 됨 )

group# , thread#
  1         1
  2         1
  3         2
  4         2
alter database drop logfile group 5;
alter database drop logfile group 6;
alter database drop logfile group 7;
alter database drop logfile group 8;

✔️ RAC 환경에서 데이터 베이스 모드를 아카이브 모드로 변환하는 방법

  1. 양쪽 노드를 전부 shutdown immediate
  2. 한쪽 노드만 mount로 올린다.
  3. 그 mount 노드에서 alter database archivelog; 명령어로 아카이브 모드로 변경한다.
  4. alter database open으로 올린다.
  5. shutdown 되어져 있는 다른 인스턴스를 올린다.
  6. archive log list; 로 모드가 변경되었는지 확인한다.

문제 양쪽 노드에서 각각 로그스위치를 일으키고 archive log file이 어디에 생성되는지 확인

set pages 400
SQL> @log
SQL> select name from v$archived_log;


➡️ 아카이브 로그 파일이 공유 디스크에 생성되고 있습니다.

문제 다시 노아카이브 모드로 변경하기
1. 둘다 shutdown immediate
2. 한쪽 노드를 mount 단계로 올리기
3. mount 단계인 쪽에서 alter database noarchivelog;
4. alter database open으로 올린다.
5. shutdown 되어져 있는 다른 인스턴스를 올린다.
6. archive log list; 로 모드가 변경되었는지 확인한다.

✏️ 3. RAC 환경에서 언두 테이블 스페이스 관리

(p.4 - 18)

alter system set undo_tablespace=undotbs3 sid='RAC01';
  • redo data -> 복구할 때 필요한 data
  • undo data -> 취소할 때 필요한 data (rollback할 때)

❗ RAC 환경에서는 undo data, redo data를 따로따로 write(쓰고), 읽는것은 같이한다. 둘다 공유 스토리지에 있음 쓰기는 별도의 파일에 따로 쓰지만 어느 인스턴스에서든 엑세스가 가능 해야한다.

실습 각각의 노드에서 undo_tablespace를 어떤걸 쓰는지 확인하기

SQL> select tablespace_name from dba_tablespaces;
-- undotbs가 2개 보이는지 확인
SQL> show parameter undo_tablespace


문제 undotbs3이라는 undo tablespace를 생성하기

SQL> create undo tablespace undotbs3
      datafile '+DATA'size 50m;

col tablespace_name for a10
SQL> select tablespace_name, file_name from dba_data_files; 

문제 undotbs3을 racdb1에 새로운 undo tablespace로 지정하시오

alter system set undo_tablespace='undotbs3' sid='racdb1';

show parameter undo

문제 undotbs4라는 undo tablespace를 생성하고 racdb2의 undo tablespace로 지정하기

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

alter system set undo_tablespace='undotbs4' sid='racdb2';
  • 위 작업해준 것들이 파라미터 파일에 (우리 어제 pfile로 만들었음) 적용되지 않았다. 이 말은 직접 수정해주어야 다음에 내렸다가 올릴때 변경이 된다.
    ➡️ 1번 노드의 ORACLE_HOME/dbs 밑에 initracdb1.ora 내용과 2번 노드의 ORACLE_HOME/dbs 밑에 initracdb1.ora 내용을 서로 동일하게 해줘야 하는데,
    racdb1.undo_tablespace='undotbs3'로 변경해줍니다.

오늘의 마지막 문제 다시 undotablespace를 원래 상태로 돌려놓고 undotbs3, undotbs4를 drop하기

alter system set undo_tablespace='undotbs1' sid='racdb1';

alter system set undo_tablespace='undotbs2' sid='racdb2';

drop tablespace undotbs3 including contents and datafiles;

drop tablespace undotbs4 including contents and datafiles;
profile
Slow and steady wins the race.

1개의 댓글

comment-user-thumbnail
2024년 4월 23일

잘봤습니다.

답글 달기

관련 채용 정보