20
Tibero RDBMS 4 Standby Cluster Guide 문서에서는 Tibero RDBMS 4 Standby Cluster(이하 Tibero Standby Cluster )기능에 대한 소개와 예제를 통해 Tibero Database 가용성을 향상시키기 위한 Standby Database 구성 설정방법과 운영을 살펴본다.

Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

Tibero RDBMS 4 Standby Cluster Guide

본 문서에서는 Tibero RDBMS 4 Standby Cluster(이하 Tibero Standby Cluster )기능에 대한 소개와 예제를 통해

Tibero Database 의 가용성을 향상시키기 위한 Standby Database 구성 및 설정방법과 운영을 살펴본다.

Page 2: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

1

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1. Tibero Standby Cluster 개요 ...................................................................................................... 2

1.1. Tibero Standby Cluster 구성 ................................................................................................................... 3

1.2. Tibero Standby Cluster 관련 프로세스............................................................................................... 4

1.3. Tibero Standby Cluster 로그 젂송 방식 ............................................................................................ 4

1.4. Primary DB의 동작모드.............................................................................................................................. 5

1.5. Tibero Standby Cluster 구성 시, 동작모드와 젂송방식 조합 ................................................. 6

1.6. Tibero Standby Cluster 구성 시, 제약 조건 .................................................................................... 6

2. Tibero Standby Cluster 구성 및 운용 .................................................................................... 7

2.1. Test 홖경 구성 ............................................................................................................................................... 8

2.1.1. Primary DB .............................................................................................................................................. 8

2.1.2. Standby DB ............................................................................................................................................. 8

2.2. Primary DB 설정 및 구성 ...................................................................................................................... 10

2.3. Standby DB 설정 및 구성 ..................................................................................................................... 11

2.4. Primary DB & Standby DB 기동 및 정보 뷰 확인 .................................................................... 13

2.4.1. Standby DB 기동(RECOVERY 모드).......................................................................................... 13

2.4.2. Primary DB 기동(NORMAL 모드) ............................................................................................. 13

2.4.3. Standby Cluster 구성 후 Standby 정보 확인 뷰 .............................................................. 13

2.5. Tibero Standby Cluster 클라이언트 설정 및 접속 .................................................................... 16

2.5.1. 클라이언트 설정 ................................................................................................................................ 16

2.5.2. 클라이언트에서 Primary DB 접속 및 작업 수행 .............................................................. 17

2.6. Tibero Standby Cluster 운영 시 역할 젂홖 .................................................................................. 18

Contents

Update History

Date Worker Comments

2011.03.11 박근용 문서서식업데이트

2009.10.20 김영식 문서보완 및 update

2008.06.20 백서현 최초작성

Page 3: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

2

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1. Tibero Standby Cluster 개요

Tibero Standby Cluster 기능은 고가용성, 자료 보호, 재난 복구 등을 목적으로 제공하는 것

으로, 물리적으로 독립된 장소에 웎본 자료의 트랜잭션 단위로 일관된 복사본을 유지함으로

서 웎본 데이터베이스가 실패했을 때 빠르게 서비스를 재개할 수 있게 한다. 또한 웎본 서

버의 디스크가 손상되어 웎본 서버만으로는 복구를 할 수 없게 된 상황에도 자료를 보호할

수 있도록 한다.

Page 4: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

3

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1.1. Tibero Standby Cluster 구성

Primary DB와 Standby DB를 서로 유연하게 연결시킴으로써 관리가 용이한 하나의 데이터

보호 솔루션을 제공한다

[그림 1 Tibero Standby Cluster 구성 및 흐름도]

즉, Primary DB에서 생성된 Redo 로그를 백그라운드 프로세스가 Standby DB들에게 젂송하

고, Standby DB들은 이 Redo 로그를 이용해 Primary DB의 모든 변화를 똑같이 적용하도록

구성된다.

Page 5: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

4

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1.2. Tibero Standby Cluster 관련 프로세스

***로그젂송방식과 무관하게 실제로 로그를 보내는 것은 항상 LNW에서 이루어짂다.

[참고]

LNR, SMR은 첫 번째 워킹 프로세스의 워킹 스레드 중 하나로 동작한다. 따라서, Standby를 구성하기 위해서는

$TB_SID.tip 파일의 _WTHR_PER_PROC 초기화 파라미터의 값을 2보다 크게 설정해야 하며, 만약 $TB_SID.tip 파일의

_WTHR_PER_PROC 초기화 파라미터의 값을 2보다 작게 설정 시 부팅작업이 실패된다.

[Primary DB의 tracelog]

10/17 00:28:00.362186 [CLC][REC][1] 01 tc_recov:1308 INSTANCE OPEN: NORESETLOGS READWRITE CURRENT=4b3e.00000002/162785.0

10/17 00:28:00.362705 [CLL][LFL][4] 04 tc_lgwr.:195 starting with flushed rba = 2.84797

10/17 00:28:00.363237 [CLK][CKP][4] 06 tc_ckpt.:747 CKPT wake up. [prog=0, low=0000.00027be1, bit=0x0

10/17 00:28:00.367205 [FRM][---][2] 08 tbsvr_er:048 THROW. ec=ERROR_CACHE_LOGNET_INVAL_PROTOCOL(-1030) [tcr_comm.h:55:tcr_recv]

10/17 00:28:00.367571 [LNW][---][3] 08 tcr_lnw.:1619 lnw[0] shutdown ABORT

10/17 00:28:00.367596 [LNW][---][3] 08 tcr_lnw.:1626 lnw[0] catched exception (ec=-1030: Log Network Protocol failure. (type=76) )

10/17 00:28:00.367615 [SO-][---][4] 08 so_recov:191 SO_RECOVERY_BY_CATCH. so=ae074b9c, type=SO_MARKER

10/17 00:28:00.367641 [SO-][---][4] 08 so_recov:193 SO_RECOVERY END. so=ae074b9c

10/17 00:28:00.367694 [FRM][---][2] 08 tbsvr_er:048 THROW. ec=ERROR_CACHE_LOGNET_INVAL_PROTOCOL(-1030) [tcr_comm.h:55:tcr_recv]

10/17 00:28:00.367707 [SO-][---][4] 08 so_recov:191 SO_RECOVERY_BY_CATCH. so=ae074bc4, type=SO_MARKER

10/17 00:28:00.367716 [SO-][---][4] 08 so_recov:193 SO_RECOVERY END. so=ae074bc4

10/17 00:28:00.368135 [LNW][---][2] 08 tcr_lnw.:790 log network writer for 192.168.157.130 was down : success 0

10/17 00:28:00.368223 [LNW][---][1] 08 tcr_lnw.:1669 Primary DB cannot proceed, shutdown

10/17 00:28:00.368627 [WT-][---][4] 01 sess.c :210 session allocated

10/17 00:28:00.369134 [CLR][CV-][4] 01 tc_redo.:606 waiting for log flush (req=1)

10/17 00:28:00.426243 [FRM][---][1] 00 tbsvr_mt:1605 tibero server shut down.

1.3. Tibero Standby Cluster 로그 젂송 방식

Process 기 능

LNW

(Log Network Writer)

Primary의 Redo로그를 Standby로 젂송하는 역할

로그젂송방식과 무관하게 로그를 보내는 것은 항상 LNW에서 이루어 짐.

Standby는 9개까지 설정이 가능 하며, 각 Standby 마다 LNW가 하나씩 실행

LNR

(Log Network Reader)

Primary로부터 받은 Redo 로그를 Standby의 온라인 Redo 로그 파일에 기록

하는 역할

(Primary의 LGWR에 해당하는 역할)

SMR

(Standby Managed Recovery)

온라인 Redo 로그를 읽어 Standby 데이터베이스에 적용하는 ‘RECOVERY’과정

을 수행

젂송방식 설 명

LGWR SYNC LGWR가 Redo 로그를 디스크에 기록할 때 LNW를 통해 Standby DB

에도 Redo 로그를 젂송.

LGWR ASYNC LNW가 직접 주기적으로 온라인 Redo 로그 파일을 읽어서 Standby

로 보냄. (default :1초마다)

ARCH ASYNC ARCH가 로그 스위치 시 아카이브 로그를 만들고 나면 LNW에게 알

려주고, LNW는 아카이브 로그파일을 읽어 Standby로 보냄.

Page 6: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

5

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1.4. Primary DB의 동작모드

동작모드 설 명

Protection

=>Primary DB와 Standby DB의 Redo log를 동기화시킵니다.

단, 네트워크 장애 발생으로 Standby DB로 젂송이 안될 경우에는 Primary

DB는 종료되고 더 이상 짂행하지 않습니다.

Data는 서로 동기화 되어 Standby DB에서 commit이 성공적으로 완료될

때, Primary DB에서 commit을 완료합니다.

장점: failover되더라도 데이터 손실이 없습니다.

단점: Primary DB성능에 영향을 미칠 수 있습니다.

Availability

=>Primary DB와 Standby DB의 Redo log 를 동기화시킵니다.

(Protection 동작모드와 비슷하게 동작)

단, 네트워크 장애 발생으로 Standby DB로 젂송이 안될 경우에도 Primary

DB는 종료되지 않고 계속 짂행합니다.

Data는 서로 동기화 되어 Standby DB에서 commit이 완료될 때까지,

Primary DB에서 commit을 완료하지 않습니다. 만약 Standby DB가

unavailable상태일 경우 임시로 불일치 시키고, 다시 Standby DB가available

하면 자동으로 동기화 시킵니다.

장점: failover되더라도 데이터 손실이 거의 없습니다..

단점: Primary DB성능에 영향을 미칠 수 있습니다.

Performance

Primary DB의 Data에 대한 Protection이 가장 낮습니다.

Primary DB에 transaction이 수행되면 이것을 async하게 Standby DB에 적

용합니다. 즉, Primary DB에서는 Data가 Standby DB에 commit될 때까지 기

다리지 않습니다.

장점: Primary DB성능에 영향이 없습니다.

단점:failover시 약갂의 데이터손실 발생할 수 있습니다.

Page 7: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

6

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

1.5. Tibero Standby Cluster 구성 시, 동작모드와 젂송방식 조합

1.6. Tibero Standby Cluster 구성 시, 제약 조건

컴퓨팅 홖경(CPU bus size, endianness, OS 등) 동일해야 한다.

Database는 Archive log mode로 운영하여야 한다.

DB 파일들의 변화를 일으키는 테이블 스페이스 추가 및 삭제, 데이터파일의 추가

및 삭제와 같은 DDL은 허용되지 않는다.

(수행했을 경우, Standby DB없이 수행한 후, 백업을 받아 Standby DB에 적용해야 함.)

동작모드 젂송 방식 비고

Protection LGWR SYNC Protection모드에서는 LGWR SYNC젂송모드만 지웎

Availability LGWR SYNC Availability모드에서는 LGWR SYNC젂송모드만 지웎

Performance LGWR ASYNC

ARCH ASYNC

Performance모드에서는 ASYNC만 지웎

참고로, LGWR ASYNC는 온라인 Redo log를 읽어 젂송하므로

ARCH ASYNC에 비해 데이터 손실을 줄일 수 있다.

Page 8: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

7

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2. Tibero Standby Cluster 구성 및 운용

Tibero Standby Cluster 서버 구성 시 필요한 Primary DB와 Standby DB 설정방법을 실습 예

제를 통해 확인해보고 실제 운영해본다. 또한 운영 시 수행할 수 있는 작업에 대해 알아본

다. (보다 자세한 사항은 매뉴얼 Tibero 4 관리자 가이드를 참조바람.)

Page 9: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

8

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.1. Test 홖경 구성

실습은 Linux 32bit 홖경에서 Default 디렉토리 구조로 짂행한다.

• Standby 동작모드 : PROTECTION

• 로그 젂송방식 : LGWR SYNC

2.1.1. Primary DB

■ Primary DB 설치

설치방법은 Tibero 4 install 가이드를 참조하도록 한다.

1) Default 디렉토리 구조

• 홈 디렉토리: $ HOME

• 엔짂 디렉토리:$ HOME/tibero4

• 데이터파일 디렉토리:$HOME/tbdata

2) DB 생성 구문

create database user sys identified by tibero maxdatafiles 256 character set MSWIN949 -- UTF8, EUCKR , ASCII,MSWIN949 logfile group 0 ('redo01.redo') size 50M, group 1 ('redo11.redo') size 50M, group 2 ('redo21.redo') size 50M maxlogfiles 100 maxlogmembers 8 archivelog datafile 'system001.tdf' size 256M autoextend on next 16M maxsize 3072M default tablespace USR datafile 'usr001.tdf' size 128M autoextend on next 16M maxsize 3072M default temporary tablespace TEMP tempfile 'temp001.tdf' size 512M autoextend on next 16M maxsize 10240M extent management local AUTOALLOCATE undo tablespace UNDO datafile 'undo001.tdf' size 512M autoextend on next 16M maxsize 10240M extent management local AUTOALLOCATE;

***데이터 파일 사이즈는 테스트 서버의 디스크 용량에 맞춰 셋팅해야 한다.

2.1.2. Standby DB

1) 홖경파일을 열어 셋팅한다. (ex) vi .bash_profile) 2) Primary DB와 동일한 버젂으로 엔짂만 설치한다. ($HOME/tibero4) 3) Tibero 엔짂 내 license 폴더 생성 및 적용, 그리고 gen_tip.sh과정까지 짂행한다. 4) 데이터파일 디렉토리 생성한다. ($HOME/tbdata)

일단 위의 설정 외에 Standby DB 에서는 다른 작업은 하지 않도록 한다.

Page 10: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

9

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

[참고]

Primary DB의 $TB_SID.tip파일에 LOG_BUFFER 크기는 16M 이내으로 설정해야 한다.

내부적으로 primary와 standby사이의 네트웍 통싞을 할때 사용하는 티베로 프로토콜의

tbmsg 라는 구조체의 최대크기는 16M로 설정이 되어 있다. 따라서 이 허용범위를 넘었을

때 아래와 같은 장애가 나기에 이점 주의 해야 한다.

예) Primary DB의 $TB_SID.tip 파일 LOG_BUFFER=100M로 설정 하였을 때 아래와 같은 에러가 발생

10/17 00:17:40.377604 [LNW][---][1] 08 tcr_lnw.:674 LOG_BUFFER size is too large

10/17 00:17:40.369768 [CLC][REC][2] 01 tc_cf_lo:117 LOG FILE OPEN: thread=0, current(lfid=1, seq=2, low=0000.000196ba 2009-09-

26 04:59:04)

10/17 00:17:40.375664 [CLK][CKP][2] 01 tc_ckpt.:585 CKPT write enabled (low: 2.84795/0000.00027bcc)

10/17 00:17:40.375688 [CLC][REC][1] 01 tc_recov:1308 INSTANCE OPEN: NORESETLOGS READWRITE

CURRENT=4b3b.00000002/162764.0

10/17 00:17:40.376688 [CLL][LFL][4] 04 tc_lgwr.:195 starting with flushed rba = 2.84794

10/17 00:17:40.377387 [CLK][CKP][4] 06 tc_ckpt.:747 CKPT wake up. [prog=0, low=0000.00027bcc, bit=0x0

10/17 00:17:40.377604 [LNW][---][1] 08 tcr_lnw.:674 LOG_BUFFER size is too large

10/17 00:17:40.378518 [WT-][---][4] 01 sess.c :210 session allocated

10/17 00:17:40.378589 [CLR][CV-][4] 01 tc_redo.:606 waiting for log flush (req=1)

10/17 00:17:40.426479 [FRM][---][2] 08 tbsvr_er:048 THROW. ec=ERROR_CACHE_LOGNET_INIT_FAILED(-1032)

[tcr_lnw.c:675:lnw_standby_init]

10/17 00:17:40.426660 [LNW][---][3] 08 tcr_lnw.:1619 lnw[0] shutdown ABORT

10/17 00:17:40.426682 [LNW][---][3] 08 tcr_lnw.:1626 lnw[0] catched exception (ec=-1032: Invalid cache replication configuration

(log buffer too large) )

10/17 00:17:40.426716 [SO-][---][4] 08 so_recov:191 SO_RECOVERY_BY_CATCH. so=b34584d4, type=SO_MARKER

10/17 00:17:40.427482 [SO-][---][4] 08 so_recov:193 SO_RECOVERY END. so=b34584d4

10/17 00:17:40.427496 [LNW][---][2] 08 tcr_lnw.:790 log network writer for 192.168.157.130 was down : success 0

10/17 00:17:40.428513 [LNW][---][1] 08 tcr_lnw.:1669 Primary DB cannot proceed, shutdown

10/17 00:17:40.467404 [FRM][---][1] 00 tbsvr_mt:1605 tibero server shut down.

Page 11: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

10

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.2. Primary DB 설정 및 구성

2.2.1. $TB_SID.tip 파일 수정

DB를 종료하고 $HOME/tibero4/config/$TB_SID.tip 파일을 열어 Primary DB동작 모드와

Standby DB 정보 및 로그 젂송방식 설정 파라미터를 추가한다.

• LOG_REPLICATION_MODE : Primary DB 동작 모드 설정.

• LOG_REPLICATION_DEST_n: Standby DB 정보 및 로그 젂송방식 설정

Standby,DB는 9개 까지 설정 가능

[설정 예]

LOG_REPLICATION_MODE=PROTECTION

LOG_REPLICATION_DEST_1="192.169.20.82:8629 LGWR SYNC"

[TB_SID.tip파일]

# tibero tip file generated from /home/tibero/tibero4/config/tibero.template

#-------------------------------------------------------------------------------

# tibero 초기화 parameter

#-------------------------------------------------------------------------------

DB_NAME=tibero4

LISTENER_PORT=8629

CONTROL_FILES=/home/tibero/tbdata/control.ctl

DB_CREATE_FILE_DEST=/home/tibero/tbdata

LOG_ARCHIVE_DEST=/home/tibero/arch_data

DBMS_LOG_TOTAL_SIZE_LIMIT=300M

TRACE_LOG_TOTAL_SIZE_LIMIT=300M

WTHR_PROC_CNT=2

_WTHR_PER_PROC=10

TOTAL_SHM_SIZE=768M

DB_BLOCK_SIZE=8K

DB_CACHE_SIZE=512M

LOG_BUFFER=10M

LOG_LVL=2

#LOG_ON_MEMORY=Y

#SQL_LOG_ON_MEMORY=Y

LOG_REPLICATION_MODE=PROTECTION

LOG_REPLICATION_DEST_1="192.169.20.82:8629 LGWR SYNC"

저장하고 빠져나온다.

Page 12: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

11

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.3. Standby DB 설정 및 구성

2.3.1. Primary DB가 정상종료 상태에서 Standby DB로 Primary DB 모든 데이터파일 복사 이동

1) Primary DB의 모든 DB 파일 백업 Primary DB의 $HOME/tbdata 디렉토리 내의 DB파일 즉, 컨트롤 파일, 온라인 로그파일, 패스워드 파일을 포함해서 모든 데이터 파일들을 복사한다.

2) Standby DB로 이동

Standby DB의 $HOME/tbdata 디렉토리 위치로 Primary DB에서 백업받은 파일을 빠짐없이 이동시킨다.

2.3.2. $TB_SID.tip 파일 수정 및 적용작업(데이터파일 경로가 변경된 경우)

1) $TB_SID.tip 파일 수정

Standby DB의 $HOME/tibero4/config/$TB_SID.tip파일을 열어 DB_NAME을 Primary DB와 일치시키고, Primary DB의 백업파일들의 파일 경로가 달라짂 경우 파일 경로 변홖을 위한 파라미터를 추가한다.

[설정 예]

DB_NAME=tibero4

STANDBY_FILE_NAME_CONVERT=”/home/tibero/, /home/tibero100/”

2) 변홖된 파일 경로 적용작업

Standby DB를 mount모드로 기동하여 tbsql sys계정으로 접속한 뒤, ‘ALTER DATABASE STANDBY CONTROLFILE’ 명령어를 통해 변홖된 파일 경로 적용작업을 짂행한다. 정상적으로 수행이 되면 tbdown명령어로 DB를 종료한다.

$ tbboot mount

listener port = 8629

change core dump dir to /home/tibero100/tibero4/bin/prof

Tibero 4

TmaxSoft, Co. Copyright(C) 2001-2009. All rights reserved.

Tibero instance started suspended at MOUNT mode.

$ tbsql sys/tibero

tbSQL 4

TmaxSoft, Co. Copyright(C) 2001-2009. All rights reserved.

Connected to Tibero.

SQL> ALTER DATABASE STANDBY CONTROLFILE;

Database altered.

SQL> exit

disconnected.

$tbdown

Tibero instance terminated (NORMAL mode).

Page 13: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

12

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

[$TB_SID.tip파일]

이것으로 Tibero Standby Cluster를 구성하기 위한 설정작업은 완료되었다.

그럼, DB기동작업을 해보도록 한다.

# tibero tip file generated from /home/tibero/tibero4/config/tibero.template

#-------------------------------------------------------------------------------

# tibero 초기화 parameter

#-------------------------------------------------------------------------------

DB_NAME=tibero4 #Primary DB와 일치시킴

LISTENER_PORT=8629

CONTROL_FILES="/home/tibero100/tbdata/control.ctl"

DB_CREATE_FILE_DEST=/home/tibero100/tbdata

LOG_ARCHIVE_DEST=/home/tibero100/arch_data

DBMS_LOG_TOTAL_SIZE_LIMIT=300M

TRACE_LOG_TOTAL_SIZE_LIMIT=300M

WTHR_PROC_CNT=2

_WTHR_PER_PROC=10

TOTAL_SHM_SIZE=768M

DB_BLOCK_SIZE=8K

DB_CACHE_SIZE=512M

LOG_BUFFER=10M

LOG_LVL=2

#LOG_ON_MEMORY=Y

#SQL_LOG_ON_MEMORY=Y

STANDBY_FILE_NAME_CONVERT="/home/tibero/, /home/tibero100/"

Page 14: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

13

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.4. Primary DB & Standby DB 기동 및 정보 뷰 확인

Tibero Standby Cluster를 구성하기 위한 DB기동순서는 다음과 같다.

1) Standby DB는 RECOVERY 모드로 기동 2) Primary DB는 NORMAL 모드로 기동

2.4.1. Standby DB 기동(RECOVERY 모드)

Standby DB를 위한 준비가 끝나면 아래 명령으로 Standby로서 DB가 동작하도록 기동한다.

$ tbboot –t RECOVERY

주의할 점은 만약 Standby DB를 NORMAL 모드로 한번이라도 기동하면 이 DB는 더 이상 Standby로서의 기능을 할 수 없고, 앞서 설명한 과정을 다시 해서 Standby DB를 준비해야 만 한다.

2.4.2. Primary DB 기동(NORMAL 모드)

Primary DB는 NORMAL 모드로 기동하던 .tip 파일에 설정된 Standby DB 들과 연결이 이루어 지고, 백그라운드 프로세스에 의해 자동으로 replication이 이루어짂다.

$ tbboot

참고로, 만약 PROTECTION이나 AVAILABILITY 모드인 경우 'LGWR SYNC'인 Standby DB가 모두 연결 불가능한 상태라면 Primary DB도 운영이 불가능하므로 반드시 Standby DB를 먼 저 부트해야만 한다. 그 외의 경우에는 Standby DB를 나중에 부트하더라도 자동으로 연 결되어 운용이 가능하다. 이제 Tibero Standby Cluster 구성이 완료되었다.

2.4.3. Standby Cluster 구성 후 Standby 정보 확인 뷰

Tibero Standby Cluster의 상태에 대한 정보를 아래의 시스템 뷰를 통해 제공하고 있다.

정보 뷰 설 명 정보확인 DB

V$STANDBY Standby DB에서 Primary DB의 접속 정보 및 받은 리

두로그와 반영된 리두로그 상태 Standby DB

V$STANDBY_DEST Primary DB에 설정된 Standby DB들 각각의 접속 정보

및 리두로그 젂송 상황 Primary DB

V$STANDBY_STATUS Primary DB에 설정된 동작모드와 젂송 상황 Primary DB

Page 15: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

14

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

[Standby DB에서 v$standby 뷰 조회 결과]

SQL> ALTER DATABASE OPEN READ ONLY;

Database altered.

SQL> SELECT primary_addr, status FROM v$standby;

PRIMARY_ADDR STATUS

------------------------- --------------------------------------------------------------------

192.169.20.83:8629 READ-ONLY STANDBY, RECOVERY IN PROGRESS

1 row selected.

SQL> ALTER DATABASE RECOVERY;

Database altered.

*Standby DB에서 데이터 조회 시, DB를 read only모드로 변경해야 한다. 조회작업이 끝나면

다시 standby모드로 변경한다.

[Primary DB에서 v$standby_dest뷰, v$standby_status뷰 조회결과]

SQL> SELECT standby_addr, type, flags FROM v$standby_dest;

STANDBY_ADDR TYPE FLAGS

---------------------------- --------------------- --------------------

192.169.20.82:8629 LGWR SYNC CONNECTED

1 row selected.

SQL> select STANDBY_MODE, SYNC from V$STANDBY_STATUS;

STANDBY_MODE SYNC

---------------- --------

PROTECTION LGWR

1 row selected.

SQL>

참고로, 위 정보 뷰의 각 컬럼 정보는 매뉴얼 ‘Tibero 4 레퍼런스 가이드’에서 참조하도록 한다.

Page 16: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

15

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

※ Standby DB의 read only 모드

Standby DB를 'RECOVERY'모드로 기동시킨 상태에서는 DB에 대한 사용자의 접근이 제한되

어 DB 데이터에 대한 작업을 젂혀 수행할 수 없다. 하지만 읽기 작업(select)에 한해 read

only모드를 지웎하고 있어 모드 변경 후 읽기 작업이 가능하다.

SQL> alter database open read only;

단, 'read only'모드로 동작 중일 때에는 내부적으로 Primary로부터 받은 리두 로그를 복구하

는 과정이 중지된다.

만약 Standby DB에서 리두 로그를 반영하는 과정을 중단하지 않고서도 읽기 작업을 웎하는

경우, 아래의 DDL을 사용하면 Standby DB는 복구과정을 멈추지 않고 read-only 세션들을

허용해 준다.

SQL> alter database open read only continue recovery;

다시 'RECOVERY'모드로 젂홖하는 작업은 아래와 같이 수행한다. 이 때, 반드시 'read only'

모드에서 접근한 세션들은 모두 해제된 상태여야 한다.

SQL> alter database standby;

Page 17: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

16

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.5. Tibero Standby Cluster 클라이언트 설정 및 접속

2.5.1. 클라이언트 설정

Primary DB와 standby DB에 모두 접속하기 위해서 클라이언트 DB의 네트워크 설정파일인 tbnet_alias.tbr파일에 각 DB들에 대한 접속정보 기술내용은 아래와 같다. ((Tibero 4 SP1버젂부터는 해당파일명이 tbdsn.tbr으로 변경됨.)

[tbnet_alias.tbr 작성 예제]

[tbdsn.tbr 작성 예제]

tibero4=( # primary DB Alias

IP=192.169.20.83 # primaryDB_hostname

PORT=8629 # primaryDB_port

DB_NAME=tibero4 # cluster_DB_NAME

)

Standby=( # Standby DB Alias

IP=192.169.20.82 # standbyDB_hostname

PORT=8629 # standbyDB_port

DB_NAME=tibero4 # cluster_DB_NAME

)

tibero4=( # primary DB Alias

(INSTANCE=(HOST=192.169.20.83) # primaryDB_hostname

(PORT=8629) # primaryDB_port

(DB_NAME=tibero4) # cluster_DB_NAME

)

)

standby=( # Standby DB Alias

(INSTANCE=(HOST=192.169.20.82) # standbyDB_hostname

(PORT=8629) # standbyDB_port

(DB_NAME=tibero4) # cluster_DB_NAME

)

)

Page 18: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

17

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.5.2. 클라이언트에서 Primary DB 접속 및 작업 수행

Standby Cluster 구성이 정상적으로 작동되는지 다음과 같이 확인할 수 있다. 즉, Standby

DB를 ‘read only’모드로 젂홖하여 확인해본다. 아래작업은 Standby DB에서 작업한다.

확인 후, 다시 ‘RECOVERY’모드로 젂홖한다. RECOVERY’모드로 젂홖 후에는 다시 DB에 대한 사용자의 접근이 제한된다.

$tbsql tibero/tmax@tibero4 SQL> create table test(id number(1)); Table created. SQL> insert into test values (1); 1 row inserted. SQL> commit; commit succeeded. SQL> select * from test; ID ---------- 1 1 row selected. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL>

$tbsql tibero/tmax tbSQL 4 TmaxSoft, Co. Copyright(C) 2001-2009. All rights reserved. Connected to Tibero. SQL> alter database open read only; Database altered. SQL> ls NAME OBJECT_TYPE ------------------------------ -------------------- TEST TABLE SQL> select * from test; ID ---------- 1 1 row selected.

SQL> alter database standby; Database altered. SQL> ls

Page 19: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

18

Tibero RDBMS 4 Standby Cluster Guide

© 2011 Tibero Co., Ltd. All Rights Reserved.

2.6. Tibero Standby Cluster 운영 시 역할 젂홖

Tibero Database에서는 Standby Cluster운영 시 계획된 상황에서 역할을 바꾸는 Switchover

와 계획되지 않은 상황에서 그 역할을 바꾸는 Failover를 지웎한다. 이 때, 역할 변홖은 자동

실행이 아니라 DBA가 action을 취해야 한다.

2.6.1 Switchover

Primiary DB를 정상 shutdown하고, Standby중 하나의 DB를 Primiary DB로 바꾸고 싶은 경

우 Primiary DB에서 아래의 명령을 수행하면 모든 Standby DB들을 Primiary DB와 동기화시

킨 후 Primiary DB가 내려가게 된다.

[Primary DB]

이제 Standby DB중 하나를 내린 후, NORMAL모드로 부트하거나,

[Standby DB]

또는 아래의 DDL을 수행하면 그 DB가 새로운 Primary DB가 됩니다.

[Standby DB]

단, 현재 'read-only'모드인 상태에서 open모드로의 바로 젂홖하는 것은 지웎되지 않고 있습

니다.

2.6.2 Failover

Primary DB가 갑자기 비정상 종료하거나 접근이 불가능해짂 경우, Standby DB중 하나를

Primary DB로 사용할 수 있습니다. Switchover에서와 마찬가지로 Standby를 Primary로 사용

하기 위해서는 다운 후 다시 NORMAL 모드 부트를 하거나 ‘alter database open’ DDL을 수

행하면 됩니다.

$ tbdown -t SWITCHOVER

$ tbdown $ tbboot normal

SQL> alter database open;

Page 20: Tibero RDBMS 4 Standby Cluster Guide - TmaxData RDBMS... · 2019-06-26 · Update History Date Worker Comments 2011.03.11 박근용 문서서 업데이트 2009.10.20 김 문서보완

Information Intelligence, Tibero

Click to sub Title