행위

Rac 아카이브모드

DB CAFE

1 RAC 환경 아카이브 로그 전환 방법

1.1 svrctl 명령으로 노드1,노드2를 동시 작업하는 방법

1.1.1 아카이브로그 모드 확인

$ sqlplus / as sysdba
sql> archive log list;

1.1.2 DB 종료 (stop/immediate)

$ srvctl stop database -d <DB명> -o immediate;

1.1.3 DB MOUNT 모드로 시작

$ srvctl start database -d <DB명> -o mount

1.1.4 아카이브 모드로 변경(sqlplus 작업)

$ sqlplus / as sysdba
sql> alter database archivelog;
sql> exit;

1.1.5 DB 종료

$ srvctl stop database -d <DB명> -o immediate;

1.1.6 DB 시작

$ srvctl start database -d <DB명>

1.1.7 아카이브로그 모드 확인

sql> archive log list;

1.2 노드별 작업 방법

※ archive log file은 각 로컬 노드에 저장해야 한다.

  1. 양쪽 노드 모두 shutdown immediate 수행
  2. 한쪽 노드만 마운트 단계로 시작 startup mount
  3. Alter system set log_archive_dest_1='location=/data/arc1';
  4. Alter system set log_archive_dest_2='location=/data/arc2';
  5. Alter database archivelog;
  6. Alter database open;
  7. Archive log list 로 결과 확인 후, 노드2 에서도 동일하게 디렉토리 생성 후 db 시작 (노드2에서는 아키이브로그모드변경 작업 불필요, 확인만할것)


1.2.1 [노드1], [노드2] DB 정지

SQL> shutdown immediate;

1.2.2 [노드1] 아카이브로그 디렉토리 생성

[root@rac1 ~]# mkdir -p /data/arc1
[root@rac1 ~]# chown oracle.dba -R /data/
[root@rac1 ~]# ls -lSh /data/
  • 로그저장위치를 미리 작업해 둔다.

1.2.3 [노드1] 마운트로 시작

SQL> startup mount
-- RAC-1호기 아카이브로그 디렉토리 
SQL> alter system set log_archive_dest_1='location=/data/arc1' sid='instance_name1';

-- RAC-2호기 아카이브로그 디렉토리 
SQL> alter system set log_archive_dest_1='location=/data/arc2' sid='instance_name2';

1.2.4 [노드1] 아카이브 로그 모드 로 변경

SQL> alter database archivelog;

1.2.5 [노드1] DB 오픈 변경

SQL> alter database open;

1.2.6 [노드1] 아카이브 로그 상태 확인

SQL> archive log list;


1.2.7 [노드2] 아카이브로그 디렉토리 생성

[root@rac2 ~]# mkdir -p /data/arc1
[root@rac2 ~]# chown oracle.dba -R /data/
  • 아카이브로그모드로 변경후 DB오픈 하기 전에 양쪽노드(rac1,rac2)에 해당 디렉토리가 존재해야 한다는 것이다.

1.2.8 [노드2] DB시작

SQL> startup

1.2.9 [노드2] 아카이브 로그 상태 확인

SQL> archive log list


1.3 아카이브 로그 압축 사용

  1. disk공간을 절약할 수 있다는 장점
  2. 압축을 해야 하기 때문에 시스템에 부하가 늘어난다는 단점
  3. 단 시간에 많은 archived redo logs를 발생시키는 경우, 그 영향이 클 수도 있음
  4. Data Guard환경에서 archivelog compression기능을 사용할 때 주의

1.3.1 현재 아키이브 로그 압축 여부 확인

SQL> select archivelog_compression from v$database;

1.3.2 현재 아키이브 로그 압축 사용

SQL> alter database archivelog compress enable;
Database altered.