Document Type | Technical Information
Category | Interface/Integration
Applicable Product Version | -
Document Number | TIITI068
Overview
This document describes how to integrate the external solution Netbackup using Tibero tbrmgr.
This is a binary built by applying the Netbackup patch.
Method
How to Integrate tbrmgr with Netbackup
1. Add the so files existing in the Netbackup client to LD_LIBRARY_PATH
Open the .bash_profile file and check its contents
$ vi ~/.bash_profile
Add the following content before the LD_LIBRARY_PATH variable
.:/usr/openv/lib and then save the file.
...
.:/usr/openv/lib
LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib:$LD_LIBRARY_PATH
....Apply the profile to use the variable.
$ source ~/.bash_profile
Since the so files inside the Tibero engine are dummy libraries, change their paths to set them to the files of the Netbackup client.
$ 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. Verify library application with the ldd command
Use the ldd command to pre-check whether the paths for the four files libxbsa64.so, libnbbasecST.so, libnbclientcST.so, libvxcPBXST.so point to the Netbackup client.
$ 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. Confirm library application after DB restart
After restarting the DB, run the pldd command targeting the tbsvr_NBU process to verify that the paths of the four so files are set to those in the Netbackup client.
$ 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. Apply Netbackup related parameters
After setting the Netbackup related DB parameters, restart the DB or apply them dynamically using the ALTER statement.
########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. Test Netbackup connection with archive files
Use the archive files to run the tbrmgr command and check if it integrates with Netbackup.
Perform the test as shown below.
-- Check archive file
-rw------- 1 tibero_wtax tdba 1835791872 Jan 16 09:59 log-t1-r0-s164.arc
-- Archive backup (performed using the tbrmgr backup command)
tbrmgr backup --userid sys/tibero -a --from-seq 164 --thread 1
Check slog after execution
If Netbackup integration is successful, the following logs appear in 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. Verify successful Netbackup archive file backup
After running tbrmgr backup, connect to tbsql and check the v$backup_set view table.
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. Restore archive files moved to Netbackup
After successful integration with Netbackup using the tbrmgr command, you must restore the archive files stored in the Netbackup Storage to the DB server.
-- Check archive file (rename the archive file on the DB server as the existing file may be overwritten)
$ 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
Run the command below to restore the archive file to the DB server.
tbrmgr recover --userid sys/tibero --restore-archive-only --from-seq 164 --thread 1 --to-seq 164
Check slog
If Netbackup integration is successful, the following logs appear in 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. Delete history related to archive backup and restore tests
Example of checking the archive file situation.
-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
Perform archive test restore.
$ rm log-t1-r0-s164.arc
$ mv -i log-t1-r0-s164.arc_real log-t1-r0-s164.arc
Delete the backup history in the v$backup_set view table stored in the control file to complete the test.
$ tbrmgr delete -b 1 --userid sys/tibero --cf-only
$ tbsql sys/<sys password>
SQL> select * from v$backup_set;
0 row selected.