[Tibero] Archive 모드로 전환
본문 바로가기
IT/DataBase

[Tibero] Archive 모드로 전환

by 로진김 2021. 8. 15.

 Tibero를 설치하면서 처음에 Tibero Instance와 Database를 만들게 됩니다. Database를 만들 때, Archive 모드로 데이터 베이스를 생성할 수 있지만, Noarchive 상태로도 생성할 수 있습니다. 만약 Noarchive 모드로 데이터베이스를 생성하였을 때, Archive 모드로 변경해보겠습니다.


SQL> SELECT LOG_MODE FROM V$DATABASE;

LOG_MODE
------------
NOARCHIVELOG

1 row selected.

 

 우선 현재 Archive 모드인지 확인하기 위해 Control File에 저장되어 있는 정보로 확인해봅니다. 이는 V$DATABASE 에서 LOG_MODE를 통해 조회할 수 있습니다. 

 

 Archive 모드로 바꾸려면 Mount 모드로 tibero instance를 기동시켜야합니다. 기동한 상태에서 Alter 명령어로 Noarchive 모드를 archive 모드로 변경할 수 있습니다.

 

  //moount모드 -> ALTER명령어
  
SQL> quit
Disconnected.
[tibero@T1:/tibero/edu3/tibero6/config]$ tbdown

Tibero instance terminated (NORMAL mode).

  //마운트 모드
[tibero@T1:/tibero/edu3/tibero6/config]$ tbboot mount
Change core dump dir to /tibero/edu3/tibero6/bin/prof.
Listener port = 8629

Tibero 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
[tibero@T1:/tibero/edu3/tibero6/config]$ tbsql sys/tibero

tbSQL 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

  //바꾸는 명령어
SQL> ALTER DATABASE ARCHIVELOG;

Database altered.

SQL> quit
Disconnected.
[tibero@T1:/tibero/edu3/tibero6/config]$ tbdown

Tibero instance terminated (NORMAL mode).

[tibero@T1:/tibero/edu3/tibero6/config]$ tbboot
Change core dump dir to /tibero/edu3/tibero6/bin/prof.
Listener port = 8629

Tibero 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).
[tibero@T1:/tibero/edu3/tibero6/config]$

 

 그럼 잘 바뀌었는지 확인해봅니다.

 

###########################
###확인
###########################

[tibero@T1:/tibero/edu3/tibero6/config]$ tbsql sys/tibero

tbSQL 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> SELECT LOG_MODE FROM V$DATABASE;

LOG_MODE
------------
ARCHIVELOG

1 row selected.

 

 Archive 모드로 바뀐것을 확인할 수 있었습니다. 로그 스위치가 발생할 때마다 Archive 저장경로로 복사가 되며, Archive 경로는 처음 설치할 때 조건으로 명시합니다. 잘 저장이 되고 있는지 확인해 봅니다.

 

###############################################
### 로그 스위치 할 때 아카이브 파일로 잘 저장되나 확인
###############################################


SQL> SELECT VALUE FROM V$PARAMETERS WHERE NAME='LOG_ARCHIVE_DEST';

VALUE
--------------------------------------------------------------------------------
/DataDisk/T1/tibero3/arch/

1 row selected.


  //이 경로에 로그스위치하면 아카이브 로그파일 저장됨

SQL> !ls -l /DataDisk/T1/tibero3/arch
total 0

 

 처음에 tibero instance를 생성할 때, LOG_ARCHIVE_DEST 파라미터를 설정하는 부분이 있었습니다. 만약 디렉토리를 만들지 않았다면 해당 경로 가서 만들면 됩니다. 그러나 Archive 파일이 자동으로 만들어지지만 미리 만드는 것이 옳습니다.

 

 이를 조회하고 해당 경로에 Archive 로그 파일을 확인하기 위해 ls -l 명령어로 조회해봤는데 Archive file이 없는 것을 확인했습니다.

 

 어찌된 일인지 의문을 가질 수 있으나, 아직 로그 스위치가 발생하지 않았기 때문에 Archive Log File이 아직 만들어지지 않은 것 입니다. 로그 스위치를 하여 Archive 파일이 만들어 지는지 확인해보겠습니다.

 

SQL> SELECT GROUP#, MEMBERS, STATUS, SEQUENCE#, ARCHIVED FROM V$LOG;

    GROUP#    MEMBERS STATUS    SEQUENCE# ARCHIVED
---------- ---------- -------- ---------- --------
         1          1 INACTIVE          5 NO
         2          1 CURRENT           6 NO
         3          2 INACTIVE          4 NO

3 rows selected.

SQL> ALTER SYSTEM SWITCH LOGFILE;

System altered.

SQL> SELECT GROUP#, MEMBERS, STATUS, SEQUENCE#, ARCHIVED FROM V$LOG;

    GROUP#    MEMBERS STATUS    SEQUENCE# ARCHIVED
---------- ---------- -------- ---------- --------
         1          1 INACTIVE          5 NO
         2          1 INACTIVE          6 YES
         3          2 CURRENT           7 NO

3 rows selected.

SQL> !ls -l /DataDisk/T1/tibero3/arch
total 1340
-rw------- 1 tibero dba 1372160 Jul 15 15:01 log-t0-r0-s6.arc

 

  Current 상태였던 그룹의 멤버가 Archive Log로 남겨진 것을 확인할 수 있습니다. s6의 의미는 Sequence#가 6번이였다는 의미입니다. 인스턴트 별로 redo log로 사용하기 때문에 식별하기위해 스레드 번호로 t0로 할당됩니다. 현재 인스턴스가 1개라서 스레드 번호도 0만 가지고 있습니다. r0는 reset회수를 말합니다. 아직 reset을 하지 않았기 때문에 r0로 표시됩니다.

 

 Archive 확인하는 view로 조회해보겠습니다.

 

SQL> DESC V$ARCHIVED_LOG

COLUMN_NAME                              TYPE               CONSTRAINT
---------------------------------------- ------------------ --------------------
RECID                                    NUMBER
THREAD#                                  NUMBER
NAME                                     VARCHAR(256)//어떤 디렉토리의 어떤 파일인지 NAME에 나옴
SEQUENCE#                                NUMBER
FIRST_CHANGE#                            NUMBER		//아카이브 로그에 대한 시퀀스 번호
FIRST_TIME                               DATE		//시간으로 나타냄
NEXT_CHANGE#                             NUMBER
RESETLOGS_CHANGE#                        NUMBER
RESETLOGS_TIME                           DATE
FILESIZE                                 NUMBER
BLOCKS                                   NUMBER
BLOCK_SIZE                               VARCHAR(1024)

 

 

 ls로 직접 물어볼 수도 있고, tibero에게도 직접 물어볼 수 있습니다.

 

SQL> SELECT NAME FROM V$ARCHIVED_LOG;

NAME
--------------------------------------------------------------------------------
/DataDisk/T1/tibero3/arch/log-t0-r0-s6.arc

1 row selected.

 

 


 

 ArchiveLog 모들르 선택할 수 있었습니다. Redo Log가 과거부터 저장되는 것이라 활용할 수 있으며, 백업 복구를 위한 것이 기본적인 용도입니다. 과거부터 현재까지 계속 보관되고 있기 때문입니다. 부가적으로 온라인 백업이 가능한 것이 아카이브 로그모드입니다. 백업은 백업을 받을 때 데이터 파일 복사하고 나중에 데이터 파일이 손상되었을 때, 복구하겠다는 의미입니다.

 

 이 백업은 데이터 파일을 복사하는 것을 아무 때나 하지 않습니다. 온라인 중에 할 수 있고, 이를 온라인 백업이라고 합니다. 인스턴스가 기동 중이며, 사용자들이 접속하여 데이터 수정 삭제 등등 할 때 이 때 데이터를 복사해갑니다.

 

 다음에는 오프라인 백업과 온라인 백업에 관련된 내용을 다뤄보겠습니다.

반응형