문서유형ㅣ기술정보
분야ㅣ인터페이스/연동
적용제품버전ㅣ-
문서번호ㅣTIITI068
개요
티베로 tbrmgr 을 활용해 외부 솔류션인 Netbackup 과 연동하는 방법에 대해 기술하였습니다.
Netbackup 패치를 적용하여 빌드한 바이너리입니다.
방법
tbrmgr Netbackup 연동 방법
1. Netbackup 클라이언트에 존재하는 so 파일들을 LD_LIBRARY_PATH에 추가
.bash_profile 파일을 열어 내용 확인
$ vi ~/.bash_profile
LD_LIBRARY_PATH 변수 앞에
.:/usr/openv/lib 내용 추가 후 저장 수행 해야합니다.
...
.:/usr/openv/lib
LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib:$LD_LIBRARY_PATH
....해당 변수를 사용하기 위해 프로파일 적용 해야합니다.
$ source ~/.bash_profile
Tibero 엔진 내부의 so 파일들은 더미 라이브러리 이기 때문에 경로를 변경하여 Netbackup 클라이언트의 파일로 설정 해야합니다.
$ mv -i libxbsa64.so tbrmgr_lib
$ mv -i libnbbasecST.so tbrmgr_lib
$ mv -i libnbclientcST.so tbrmgr_lib
$ mv -i libvxcPBXST.so tbrmgr_lib
2. ldd 명령어로 라이브러리 적용 확인
ldd 명령어로 libxbsa64.so, libnbbasecST.so, libnbclientcST.so, libvxcPBXST.so 4개의 파일에 대한 경로가 Netbackup 클라이언트에 있는지 사전 확인 해야합니다.
$ ldd ./tbrmgr
linux-vdso.so.1 (0x00007ffdb57e3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5ef1c3a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5ef1c35000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5ef1b5a000)
libtbcli.so => /app/tibero/tibero7/client/lib/libtbcli.so (0x00007f5ef1800000)
libtbcliin.so => /app/tibero/tibero7/client/lib/libtbcliin.so (0x00007f5ef1400000)
libdatatype.so => /app/tibero/tibero7/client/lib/libdatatype.so (0x00007f5ef0200000)
libtbmsg.so => /app/tibero/tibero7/client/lib/libtbmsg.so (0x00007f5eefe00000)
libtbstr.so => /app/tibero/tibero7/client/lib/libtbstr.so (0x00007f5eefa00000)
libclientcommon.so => /app/tibero/tibero7/client/lib/libclientcommon.so (0x00007f5eef600000)
libclialloc.so => /app/tibero/tibero7/client/lib/libclialloc.so (0x00007f5eef200000)
libenv_client.so => /app/tibero/tibero7/client/lib/libenv_client.so (0x00007f5eeee00000)
libmio.so => /app/tibero/tibero7/client/lib/libmio.so (0x00007f5eeea00000)
libcommon.so => /app/tibero/tibero7/client/lib/libcommon.so (0x00007f5eee000000)
librt.so.1 => /lib64/librt.so.1 (0x00007f5ef1b51000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f5ef1b4c000)
libxbsa64.so => /usr/openv/lib/libxbsa64.so (0x00007f5eedc00000)
libnbbasecST.so => /usr/openv/lib/libnbbasecST.so (0x00007f5eed600000)
libnbclientcST.so => /usr/openv/lib/libnbclientcST.so (0x00007f5eed200000)
libvxcPBXST.so => /usr/openv/lib/libvxcPBXST.so (0x00007f5eece00000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5eeca00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5ef1c49000)
libnbtlscST.so => /usr/openv/lib/libnbtlscST.so (0x00007f5eec600000)
libnbssl3ST.so => /usr/openv/lib/libnbssl3ST.so (0x00007f5eebe00000)
libjanssonST.so => /usr/openv/lib/libjanssonST.so (0x00007f5eeba00000)
3. DB 재기동 수행 후 라이브러리 적용 확인
DB 재기동 후 tbsvr_NBU 프로세스 대상으로 pldd 명령어 수행하여 4개의 so파일들의 경로가 Netbackup 클라이언트에 있는 지 확인 해야합니다.
$ pldd 3047247
3047247: /app/tibero/tibero7/bin/tbsvr
linux-vdso.so.1
/lib64/libstdc++.so.6
/app/tibero/tibero7/client/lib/libtbclnt.so
/lib64/libpthread.so.0
/lib64/librt.so.1
/app/tibero/tibero7/client/lib/libtbextb.so
/app/tibero/tibero7/client/lib/libtbepl.so
/lib64/libaio.so.1
/lib64/libm.so.6
/lib64/libdl.so.2
/usr/openv/lib/libxbsa64.so
/usr/openv/lib/libnbbasecST.so
/usr/openv/lib/libnbclientcST.so
/usr/openv/lib/libvxcPBXST.so
/app/tibero/tibero7/lib/libgeos-3.7.3.so
/app/tibero/tibero7/lib/libgeos_c.so.1
/app/tibero/tibero7/lib/libspatial.so.0
/app/tibero/tibero7/lib/libspatial_c.so.0
/lib64/libgcc_s.so.1
/lib64/libc.so.6
/lib64/ld-linux-x86-64.so.2
/usr/openv/lib/libnbtlscST.so
/usr/openv/lib/libnbssl3ST.so
/usr/openv/lib/libjanssonST.so
4. Netbackup 관련 파라미터 적용
Netbackup 관련 DB 파라미터 설정 후 DB 재기동 또는 ALTER 구문으로 동적 적용 해야합니다.
########NET BACKUP########
##20250305 tbrmgr
RECO_PROC_WTHR_CNT=135
NBU_PROC_WTHR_CNT=64
USE_NBU_FOR_BACKUPSET=Y
USE_NBU_FOR_ARCHIVELOG=N
NBU_BACKUP_POLICY_NAME="tiberotest"
NBU_ARCHIVELOG_SEARCH=N
NBU_OBJ_OWNER_NAME="tibero"
NBU_OBJ_OWNER_GROUP_NAME="dba"
NBU_CLIENT_COUNT=1
NBU_CLIENT_HOSTNAME_0="prod-tibero-comm-02"
#NBU_CLIENT_HOSTNAME_1="prod-tibero-comm-01"
NBU_BACKUP_INST_SID=DBPIW2
RMGR_RESTORE_BACKUP_CF=N
_NBU_CONN_RETRY_COUNT_MAX=100
_NBU_CONN_RETRY_COUNT_FOR_LOG=10
_NBU_CONN_RETRY_SLEEP_TIME=1000000
alter system set USE_NBU_FOR_BACKUPSET=Y ;
alter system set USE_NBU_FOR_ARCHIVELOG=N ;
alter system set NBU_BACKUP_POLICY_NAME=TIBEROTEST ;
alter system set NBU_ARCHIVELOG_SEARCH=N ;
alter system set NBU_OBJ_OWNER_NAME="tibero" ;
alter system set NBU_OBJ_OWNER_GROUP_NAME="dba" ;
alter system set NBU_CLIENT_COUNT=1 ;
alter system set NBU_CLIENT_HOSTNAME_0="prod-tibero-comm-02";
alter system set NBU_BACKUP_INST_SID=DBPIW2 ;
alter system set RMGR_RESTORE_BACKUP_CF=N ;
alter system set _NBU_CONN_RETRY_COUNT_MAX=100 ;
alter system set _NBU_CONN_RETRY_COUNT_FOR_LOG=10 ;
alter system set _NBU_CONN_RETRY_SLEEP_TIME=1000000 ;
set linesize 100
set pagesize 100
col name for a30
col value for a30
select name, value from vt_parameter where name in (
'USE_NBU_FOR_BACKUPSET'
,'USE_NBU_FOR_ARCHIVELOG'
,'NBU_BACKUP_POLICY_NAME'
,'NBU_ARCHIVELOG_SEARCH'
,'NBU_OBJ_OWNER_NAME'
,'NBU_OBJ_OWNER_GROUP_NAME'
,'NBU_CLIENT_COUNT'
,'NBU_CLIENT_HOSTNAME_0'
,'NBU_BACKUP_INST_SID'
,'RMGR_RESTORE_BACKUP_CF'
,'_NBU_CONN_RETRY_COUNT_MAX'
,'_NBU_CONN_RETRY_COUNT_FOR_LOG'
,'_NBU_CONN_RETRY_SLEEP_TIME'
);
NAME VALUE
------------------------------ ------------------------------
RMGR_RESTORE_BACKUP_CF NO
USE_NBU_FOR_BACKUPSET NO
NBU_BACKUP_POLICY_NAME TIBERO_BACKUP_POLICY
NBU_OBJ_OWNER_GROUP_NAME
_NBU_CONN_RETRY_COUNT_FOR_LOG 10
NBU_CLIENT_COUNT 0
NBU_BACKUP_INST_SID
NBU_CLIENT_HOSTNAME_0
_NBU_CONN_RETRY_SLEEP_TIME 100000
USE_NBU_FOR_ARCHIVELOG NO
NBU_ARCHIVELOG_SEARCH NO
NBU_OBJ_OWNER_NAME
_NBU_CONN_RETRY_COUNT_MAX 1000
5. 아카이브 파일 Netbackup 연결 테스트
아카이브 파일을 이용하여 tbrmgr 명령어르 수행하여 Netbackup과 연동되는지 확인하는
아래 같이 테스트 수행해야합니다.
-- 아카이브 파일 확인
-rw------- 1 tibero_wtax tdba 1835791872 1월 16 09:59 log-t1-r0-s164.arc
-- 아카이브 백업 (tbrmgr backup 명령어로 수행)
tbrmgr backup --userid sys/tibero -a --from-seq 164 --thread 1
수행 후 slog 확인
Netbackup 연동 성공 시 slog에 다음의 로그가 출력 됨니다.
[2025-03-05T17:01:18.421972] [RVP-814] [I] RV master received RMGR_BACKUP_ARCHIVE_ONLY request
[2025-03-05T17:01:18.422034] [CLC-1112] [I] RV slave 1 received RMGR_BACKUP_ARCHIVE_ONLY job
[2025-03-05T17:01:18.606255] [RVP-1112] [I] NetBackup: BSA_API_VERSION=1.1.0, NBBSA_SCHEDULE=(Default), NBBSA_OBJECT_OWNER=tibero, NBBSA_OBJECT_GROUP=dba, NBBSA_CLIENT_HOST=prod-tibero-comm-02, NBBSA_POLICY=TIBEROTEST
[2025-03-05T17:01:18.606270] [RVP-1112] [I] RMGR got default NetBackup dest: /DBPIW/
[2025-03-05T17:01:18.882209] [RVP-1112] [I] backup_path:/DBPIW/
[2025-03-05T17:01:18.964055] [RVP-1112] [I] RV rmgr backup slave found the first backup target archivelog(thid = 1, seqno = 164)
[2025-03-05T17:01:19.041007] [RVP-1112] [I] RV rmgr backup slave found the last backup target archivelog(thid = 1, seqno = 164)
[2025-03-05T17:01:19.279718] [RVP-1112] [I] RV rmgr backup slave set backup target archivelog count (redo_thid = 1, backup target archivelog count = 1)
[2025-03-05T17:01:19.279741] [RVP-1112] [I] backing up archivelog thread#1, seqno#164 to NetBackup /DBPIW/nbu_bkl_1_t1_r0_s164.arc from local /tbarch/log-t1-r0-s164.arc...
[2025-03-05T17:01:47.363472] [RVP-1112] [I] archivelog thread#1, seqno#164 backed up
[2025-03-05T17:01:47.394499] [FRM-1112] [I] THROW. ec=ERROR_SYSCALL_OPEN(-18002) [ open('/app/tibero/tibero7/database/DBPIW/backup/temp_for_nbu/temp_nbu_bkp_20250305_1_cf_0') failed -- No such file or directory. ] [tb_syscall.h:168:tb_open]
[2025-03-05T17:02:00.777826] [RVP-814] [I] RV master received SLAVE 1(1112) DONE
6. 아카이브 파일 Netbackup 수행 성공 여부 확인
tbrmgr backup 수행 후 tbsql에 접속하여 v$backup_set 뷰 테이블 확인됩니다.
SQL> select * from v$backup_set;
SET_ID STATUS BACKUP_TYPE BASE_SET
---------- ------------------------------------- ------------ ----------
START_TIME
--------------------------------------------------------------------------------
FINISH_TIME
--------------------------------------------------------------------------------
ELAPSED_SECONDS START_TSN FINISH_TSN RESETLOGS_TSN
--------------- ---------- ---------- -------------
BACKUP_OPTION LOGFILE_BACKUP_OPTION
------------------------------------- -------------------------------
PARTIAL_BACKUP_OPTION OUTPUT_SIZE_MB STORAGE
--------------------------------------- -------------- ---------
BACKUP_PATH
--------------------------------------------------------------------------------
1 COMPLETED ARCHIVE_ONLY 0
2025/03/05
2025/03/05
29 192339078 193629627 0
NONE NONE
NONE 80 NETBACKUP
/DBPIW/
7. Netbackup에 옮겨진 아카이브 파일 복구
tbrmgr 명령어를 통한 Netbackup 연동 성공 후 Netbackup Storage에 저장되어 있는 아카이브 파일을 DB서버로 복구수행 해야합니다.
-- 아카이브 파일 확인 (기존의 파일이 덮어쓰기 될 수도 있기 때문에 DB 서버에 존재하는 아카이브 파일의 이름을 변경)
$ mv log-t1-r0-s164.arc log-t1-r0-s164.arc_real
$ ls -al log-t1-r0-s164.arc_real
-rw------- 1 tibero dba 2097152000 Mar 5 16:05 log-t1-r0-s164.arc_real
아카이브 파일을 DB서버로 복구하는 명령어를 아래 같이 수행 해야합니다.
tbrmgr recover --userid sys/tibero --restore-archive-only --from-seq 164 --thread 1 --to-seq 164
slog 확인
Netbackup 연동 성공 시 slog에 다음의 로그가 출력 됩니다.
[2025-03-05T17:33:43.979644] [RVP-814] [I] RV master received RMGR_RESTORE_ARCHIVE_ONLY request
[2025-03-05T17:33:43.979706] [CLC-1112] [I] RV slave 1 received RMGR_RESTORE_ARCHIVE_ONLY job
[2025-03-05T17:33:45.473581] [FRM-1112] [I] THROW. ec=ERROR_TCCF_RMGR_NO_BACKUP_ARCHIVELOG_FOUND(-24116) [ Can't find any backup archive logfile between 166 and 166 in CF (thread: 1, resetlogs: 0). ] [rmgr.c:1592:rmgr_restore_archive_only]
[2025-03-05T17:33:45.473640] [RVP-814] [I] RV master received SLAVE 1(1112) DONE
[2025-03-05T17:35:04.407982] [RVP-814] [I] RV master received RMGR_RESTORE_ARCHIVE_ONLY request
[2025-03-05T17:35:04.408031] [CLC-1112] [I] RV slave 1 received RMGR_RESTORE_ARCHIVE_ONLY job
[2025-03-05T17:35:05.717717] [FRM-1112] [I] THROW. ec=ERROR_TCCF_RMGR_NO_BACKUP_ARCHIVELOG_FOUND(-24116) [ Can't find any backup archive logfile between 163 and 163 in CF (thread: 1, resetlogs: 0). ] [rmgr.c:1592:rmgr_restore_archive_only]
[2025-03-05T17:35:05.717759] [RVP-814] [I] RV master received SLAVE 1(1112) DONE
[2025-03-05T17:36:22.197686] [RVP-814] [I] RV master received RMGR_RESTORE_ARCHIVE_ONLY request
[2025-03-05T17:36:22.197740] [CLC-1112] [I] RV slave 1 received RMGR_RESTORE_ARCHIVE_ONLY job
[2025-03-05T17:36:34.280016] [RVP-1112] [I] restoring archivelog thread#1, seqno#164 from NetBackup /DBPIW/nbu_bkl_1_t1_r0_s164.arc to local /tbarch/log-t1-r0-s164.arc...
[2025-03-05T17:36:44.271993] [DDL-2056] [I] Executing DDL: ALTER TABLE US_DBIWSCM.TN_ADINSR_OFCRK_INFO MODIFY (ADINSR_OFCRK_NM VARCHAR(500))
[2025-03-05T17:36:44.323167] [DDL-2056] [I] DDL execution succeeded
8. 아카이브 백업 및 원복 테스트 이후 수행과 관련된 이력 삭제
아카이브 파일 상황 확인 예시입니다.
-rw------- 1 tibero dba 2097152000 Mar 5 16:05 log-t1-r0-s164.arc_real
-rw------- 1 tibero dba 2097152000 Mar 5 17:36 log-t1-r0-s164.arc
아카이브 테스트 원복 수행 합니다.
$ rm log-t1-r0-s164.arc
$ mv -i log-t1-r0-s164.arc_real log-t1-r0-s164.arc
컨트롤 파일에 저장되어 있는 v$backup_set 뷰 테이블의 백업 이력 삭제 수행 하여 테스트를 완료합니다.
$ tbrmgr delete -b 1 --userid sys/tibero --cf-only
$ tbsql sys/<sys password>
SQL> select * from v$backup_set;
0 row selected.