DB 패치
Unix, Windows 등 환경별 DB 패치 방법을 설명합니다.
문서 다운로드
UNIX(SINGLE) 패치
본 장에서는 Tibero UNIX(SINGLE) 패치 방법을 설명합니다. UNIX(SINGLE) 패치 순서는 다음과 같습니다.
각 과정에 대한 상세한 설명은 해당 절의 내용을 참고합니다.
패치 전 점검사항
본 절에서는 UNIX(SINGLE) 패치 전 점검할 사항에 대해서 설명합니다.
sys, syscat 패스워드 확인 패치할 때 두 개의 사용자 계정과 패스워드가 필요합니다. 패치 전 패스워드로 접속을 확인합니다.
SQL> conn sys
Enter Password:
Connected to Tibero.
SQL> conn syscat
Enter Password:
Connected to Tibero.
Object Validation 확인 패치 후 기존 Valid Object들이 Invalid할 경우 조치를 취하기 위해서 패치 전 아래의 쿼리를 수행하여 정보를 저장합니다.
- Check Count
SQL> COL owner FORMAT a20
SQL> SET PAGES 500
SQL> SELECT owner, object_type, status, count(*)
FROM dba_objects
GROUP BY owner, object_type, status
ORDER BY owner, object_type, status;
– Check Invalid Object List
SQL> SET LINESIZE 120
SQL> COL object_name FORMAT A30
SQL> COL owner FORMAT a20
SQL> SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE status='INVALID';
Tablespace의 데이터 파일 위치 파악 데이터 파일 위치가 $TB_HOME 내부 디렉터리에 존재하는지 확인합니다.
SQL> SET LINESIZE 120
SQL> COL file_name FORMAT A100
SQL> SELECT file_name FROM dba_data_files;
DB Link 사용 여부 확인 $TB_HOME/client/config/tbdsn.tbr을 확인합니다.
– Tibero To Oracle DB Link(ps -ef | grep gw4orcl)
ora_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9999))
(TARGET=orcl)
(TX_MODE=GLOBAL))
)
– Tibero To DB2 DB Link(ps -ef | grep gw4db2)
db2_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9999))
(TARGET=sample)
(TX_MODE=GLOBAL))
)
– Tibero To MS-SQL DB Link(ps -ef | grep tbgw)
mssql_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9093))
(TARGET=12.34.56.87:1433:master)
(TX_MODE=LOCAL))
)
– Tibero To Sybase DB Link(ps -ef | grep tbgw)
ase_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9093)) (TARGET=12.34.56.87:5000:master) (TX_MODE=LOCAL))
)
– Tibero To GREENPLUM DB Link(ps -ef | grep tbgw)
gp_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9093))
(TARGET=12.34.56.87:5432:mydb)
(TX_MODE=LOCAL))
)
– Tibero To MySQL DB Link(ps -ef | grep tbgw)
mysql_link_remote=(
(GATEWAY=(LISTENER=(HOST=12.34.56.78)
(PORT=9093))
(TARGET=12.34.56.87:3306:mydb)
(TX_MODE=LOCAL))
)
External Procedure 사용 여부 확인 $TB_HOME 내부에 class 또는 so 파일이 존재하는지 확인 후 복사합니다.
– C External Procedure
SQL> SET LINESIZE 120
SQL> COL owner FORMAT a10
SQL> COL library_name FORMAT a30
SQL> COL file_spec FORMAT a50
SQL> COL status FORMAT a10
SQL> SELECT owner, library_name, file_spec, status
FROM DBA_LIBRARIES;
– JAVA External Procedure
SQL> SET LINESIZE 120
SQL> COL owner FORMAT a10
SQL> COL name FORMAT a30
SQL> COL source FORMAT a50
SQL> SELECT owner, name, source
FROM DBA_JAVA_CLASSES;
ESQL/C, ESQL/COBOL 사용 여부 확인 담당자를 통해서 사용 여부를 확인합니다.
Tibero 버전 확인 tbboot -v 명령어를 실행하여 현재 설치된 Tibero 버전을 확인합니다.
UNIX(SINGLE) 패치 과정
UNIX(SINGLE) 패치 과정의 순서는 다음과 같습니다.
Tibero 서비스 중지 애플리케이션이 DB에 연결되어 있다면 애플리케이션을 다운 후에 Tibero 서비스를 중지합니다.
[os_user$]tbdown immediate
[os_user$]ps -ef | grep tbsvr
Tibero 바이너리 교체
1) 기존 Tibero가 설치된 폴더가 tibero7일 때 기존 Tibero 서버 바이너리를 “tibero7빌드버전 일자”로 바꿔 줍니다.
[os_user$]mv tibero7 tibero7*_<version>_<date>*
[os_user$]gunzip -v new_tibero_binary.tar.gz
[os_user$]tar -xvf new_tibero_binary.tar
다음은 사용 예입니다.
[tbtest@db1 ~]$ tbdown immediate
Tibero instance terminated (IMMEDIATE mode).
[tbtest@db1 ~]$ tbboot -v
Tibero 7 (DB 7.0 FS02) Build 260633
Linux bistro-build-centos_7 5.15.0-71-generic #78~20.04.1-Ubuntu SMP Wed Apr 19
11:26:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux version (little-endian)
...
Compiled at Jun 1 2023 15:38:28 build seq 260633 init rev {2022-03-10}
[tbtest@db1 ~]$ date
2023. 06. 21. (수) 16:52:41 KST
[tbtest@db1 ~]$ mv tibero7 tibero7_260633_20230621
[tbtest@db1 ~]$ gunzip tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar.gz
[tbtest@db1 ~]$ tar -xvf tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar
tibero7/bin/svr_rename.sh
tibero7/bin/alterdd.sh
tibero7/bin/tb_create_db.sh
tibero7/bin/tbiv
tibero7/bin/sm_sysmon_disk_state.sh
tibero7/bin/tbprof
tibero7/bin/tbinfo
tibero7/bin/tbboot
tibero7/bin/tbctl
tibero7/bin/tbcmobs
...
2) 데이터 파일이 TB_HOME 디렉터리 내부에 존재할 경우 $TB_HOME 내부의 동일경로에 mv또는 copy 명령어를 수행합니다. 만약, 외부에 존재할 경우 백업 여부는 선택적으로 진행합니다.
[os_user$]cd ~/tibero7*_<version>_<date>*
[os_user$]mv database $TB_HOME
3) DB Link를 사용 중일 경우 Gateway에 대하여 바이너리 패치가 필요할 수 있습니다. DB Link용 Gateway를 패치할 때는 기존 바이너Backup 이후에 수행합니다. 다음은 기존 Gateway를 패치한 곳으로 move하고 패치한 신규 바이너리와 적용에 문제가 없는지 체크하는 방법입니다.
Tibero to Oracle "$TB_HOME/client/bin/gw4orcl"를 교체하고 ldd gw4orcl을 실행하여 "not found"가 발생하지 않는지 확인합니다.
Tibero to MSSQL "$TB_HOME/client/bin/tbJavaGW.zip"을 교체합니다.
4) External Procedure를 사용 중일 경우
C External Procedure so 파일이 $TB_HOME 내부에 존재할 경우 패치한 바이너리로 복사합니다.
JAVA External Procedure class 또는 jar 파일이 $TB_HOME 내부에 존재할 경우 패치한 바이너리로 복사합니다. 아래와 같은 파일들의 설정 내용 파악 후 필요한 내용을 복사합니다.
$TB_HOME/client/epa/java/config/epa.cfg
$TB_HOME/client/epa/java/config/epalog.properties
$TB_HOME/client/bin/tbjavaepa
Backup 받은 디렉터리 기준으로 변경사항을 다음과 같이 O/S 명령어로 비교하여 변경사항이 있을 경우에만 원본 설정 파일을 Overwrite 합니다.
export BACKUP_TB_HOME=~/tibero7_<version>_<date>
diff $TB_HOME/client/epa/java/config/epa.cfg
$BACKUP_TB_HOME/client/epa/java/config/epa.cfg
다음은 변경사항이 있을 경우 원본 설정 파일을 Overwrite 하는 예입니다.
cp -p $BACKUP_TB_HOME/client/epa/java/config/epa.cfg
$TB_HOME/client/epa/java/config/epa.cfg
5) ESQL/C, ESQL/COBOL을 사용할 경우
ESQL/C $TB_HOME/client/config/tbpc.cfg 파일의 설정 내용 파악 후 필요한 내용을 복사합니다.
ESQL/COBOL $TB_HOME/client/config/tbpcb.cfg 파일의 설정 내용 파악 후 필요한 내용을 복사합니다.
3. 환경설정 수행
교체된 신규 바이너리에 tip, tbdsn.tbr, psm_commands 생성을 위해 환경설정을 수행합니다.
환경설정 방법
[os_user$]cd $TB_HOME/config
[os_user$]sh gen_tip.sh
환경설정 예
[tbtest@db1 ~]$ cd tibero7/config
[tbtest@db1 config]$ sh gen_tip.sh
Using TB_SID "tibero"
/home/tbtest/tibero7/config/tibero.tip generated
/home/tbtest/tibero7/config/psm_commands generated
/home/tbtest/tibero7/client/config/tbdsn.tbr generated.
Running client/config/gen_esql_cfg.sh
Done.
4. 라이센스, tip, tbdsn.tbr, cfg 파일 교체
다음은 각 파일의 교체 방법 및 사용 예입니다.
라이센스 파일 다음은 라이센스 파일 교체 방법입니다.
[os_user$]cd ~/tibero7*_<version>_<date>*
[os_user$]cp -rp license $TB_HOME
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/config
[os_user$]cp -rp license $TB_HOME
Tip(=Tibero Init Parameter) 파일 다음은 tip 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*/config
[os_user$]cp -p $TB_SID.tip $TB_HOME/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/config
[os_user$]cp -p $TB_SID.tip $TB_HOME/config
tbdsn.tbr 파일 다음은 tbdsn.tbr 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*/client/config
[os_user$]cp -p tbdsn.tbr $TB_HOME/client/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/client/config
[os_user$]cp -p tbdsn.tbr $TB_HOME/client/config
cfg 파일 다음은 cfg 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*/client/config
[os_user$]cp -p *.cfg $TB_HOME/client/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/client/config
[os_user$]cp *.cfg $TB_HOME/client/config
Tibero 서비스 시작
다음과 같이 tbboot 명령어를 사용하여 Tibero 서비스를 시작합니다.
[os_user$]tbboot
system 패키지 실행 및 확인
실행 sys, syscat 의 패스워드를 입력하여 Tibero 내부에서 사용하는 DD(Data Dictionary)와 system 패키지를 생성합니다.
[os_user$]cd $TB_HOME/scripts
[os_user$]sh system.sh
Enter SYS password: tibero
Enter SYSCAT password: syscat
Create default system users & roles?(Y/N): N
Create system tables related to profile?(Y/N): N
Create TPR tables?(Y/N): N
Register dbms_stats job to Job Scheduler?(Y/N): N
sys, syscat의 패스워드 확인 방법은 “1.1 패치 전 점검사항”의 “sys, syscat 패스워드 확인”을 참고합니다.
확인 “$TB_HOME/instance/$TB_SID/log/system_init.log”를 확인했을 때 아래와 같이 에러 코드(”TBR- 17001”,”TBR-70004”)가 나타난다면 system 패키지 실행이 정상적으로 이뤄지지 않은 것입니다.
[os_user$]cd $TB_HOME/instance/$TB_SID/log/
[os_user$]cat system_init.log | **"TBR-17001"**
[os_user$]cat system_init.log | **"TBR-70004"**
alter system recompile all; 실행 모든 PSM recompile 동작을 수행하며 PSM compile할 때 BCODE를 생성하여 Data Dictionary에 저장하는 구조입니다. 패치가 되면서 생성되는 BCODE가 변경됐을 가능성 때문에 수행합니다.
[os_user$]$ tbsql sys
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Enter Password:
Connected to Tibero.
SQL> alter system recompile all;
revalidate_viewsyn.sql 수행 sys 계정이 아닌 DBA 권한을 가진 계정에서 해당 스크립트를 수행합니다. Tibero에서는 현재 view/synonym의 compile ddl을 지원하지 않으며, 패치 후 해당 object의 validation을 실 시하기 위해 해당 스크립트를 수행합니다.
[os_user$]cd $TB_HOME/scripts
[os_user$]tbsql dbtech/dbtech
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero.
SQL> @revalidate_viewnsyn.sql
PSM completed.
패치 후 점검사항
Invalid Object 확인 패치 전 Object Validation 결과와 비교하여 처리합니다. 다음은 dba_objects 테이블에 등록된 Object들의 상태가 Invalid된 항목을 조회하는 방법입니다.
SQL> SET LINESIZE 120
SQL> COL object_name FORMAT A30
SQL> COL owner FORMAT a20
SQL> SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE status='INVALID';
– PSM
Procedure, Function Invalid일 경우 다음과 같이 처리한다. (해당 사용자가 수행)
SQL> alter function *<function_name>* compile;
SQL> alter procedure *<procedure_name>* compile;
– INDEX
FBI(Function Based Index)의 경우 패치할 때 Invalid 가능성이 있으므로 다음과 같이 처리합니다. (해당 사용자 가 수행)
SQL> alter index index_name rebuild;
애플리케이션 Driver 패치 JDBC, ODBC, OLE DB 등 Driver가 변경 가능하다면 Tibero 서버 패치 버전에 맞춥니다. JDBC, ODBC, OLE DB는 서버 바이너리에 포함되어 있으며 다음과 같은 경로에 위치해 있습니다. – Tibero 7 버전
구분
경로
JDBC
$TB_HOME/client/lib/jar/tibero7-jdbc.jar
ODBC, OLE DB
$TB_HOME/client/lib/libtbodbc.so
패치 복원
다음은 Tibero 패치 작업이 실패했을 경우 기존 바이너리로 복원하는 과정입니다.
Tibero 서비스 정지
Tibero 과거 버전으로 바이너리 교체
기존 데이터 파일 경로 확인
Tibero 서비스 시작
system.sh 실행
alter system recompile all; 실행
revalidate_viewnsyn.sql 수행
패치 후 점검
Windows(SINGLE) 패치
본 장에서는 Tibero Windows(SINGLE) 패치 방법을 설명합니다. Windows(SINGLE) 패치 순서는 다음과 같습니다.
각 과정에 대한 상세한 설명은 해당 절의 내용을 참고합니다.
패치 전 점검사항
Windows(SINGLE) 패치 전 점검할 사항에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 전 점검사항”을 참고합니다.
Windows(SINGLE) 패치 과정
Windows(SINGLE) 패치 과정의 순서는 다음과 같습니다.
패치 후 점검사항
Windows(SINGLE) 패치 후 점검할 사항에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 후 점검사항”을 참고합니다.
UNIX(TAC) 패치
본 장에서는 Tibero UNIX(TAC) 패치 방법을 설명합니다. UNIX(TAC) 패치 순서는 다음과 같습니다.
각 과정에 대한 상세한 설명은 해당 절의 내용을 참고합니다.
패치 전 점검사항
UNIX(TAC) 패치 전 점검할 사항에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 전 점검사항”을 참고한다.
UNIX(TAC) 패치 과정
본 절에서는 기본적으로 Node 2대에 대한 패치 방법을 설명하며 Node 3대 이상도 패치 방법은 동일합니다. UNIX(TAC) 패치 과정의 순서는 다음과 같습니다.
Tibero 서비스 중지 애플리케이션이 DB에 연결되어 있다면 애플리케이션을 다운 후에 Tibero 서비스를 중지합니다.
Node1 다운
[Tibero_Node1]# tbdown immediate
[Tibero_Node1]# tbcm -d
Node2 다운
[Tibero_Node2]# tbdown immediate
[Tibero_Node2]# tbcm -d
Tibero 바이너리 교체 Tibero 7 FS02 build 257078에서 tibero7 FS02 build 257446로 패치하는 과정입니다.
[Tibero_Node1]tbboot -v
Node1 바이너리 교체
[Tibero_Node1]# cd ~
[Tibero_Node1]# mv tibero7 tibero7_257078_20230717
[Tibero_Node1]# gunzip tibero7-bin-FS02-linux64_3.10-257446-20230113162027.tar.gz
[Tibero_Node1]# tar -xvf tibero7-bin-FS02-linux64_3.10-257446-20230113162027.tar
Node2 바이너리 교체
[Tibero_Node2]# cd ~
[Tibero_Node2]# mv tibero7 tibero7_257078_20230717
[Tibero_Node2]# gunzip tibero7-bin-FS02-linux64_3.10-257446-20230113162027.tar.gz
[Tibero_Node2]# tar -xvf tibero7-bin-FS02-linux64_3.10-257446-20230113162027.tar
환경설정 수행 교체된 신규 바이너리에 tip, tbdsn.tbr, psm_commands 생성을 위해 환경설정을 수행합니다.
Node1 환경설정
[Tibero_Node1]# cd $TB_HOME/config
[Tibero_Node1]# sh gen_tip.sh
Node2 환경설정
[Tibero_Node2]# cd $TB_HOME/config
[Tibero_Node2]# sh gen_tip.sh
라이센스, tip, tbdsn.tbr, cfg 파일 교체 기존 파일들을 패치된 신규 바이너리에 복사합니다.
라이센스 파일
– Node1 라이선스 파일 복사
[Tibero_Node1]# cd ~/tibero7_*<version>_<date>*
[Tibero_Node1]# cp -rp license $TB_HOME
– Node2 라이선스 파일 복사
[Tibero_Node2]# cd ~/tibero7_*<version>_<date>*
[Tibero_Node2]# cp -rp license $TB_HOME
Tip(=Tibero Init Parameter) 파일
– Node1 Tip 파일 복사
[Tibero_Node1]# cd ~/tibero7_*<version>_<date>*/config
[Tibero_Node1]# cp -p $TB_SID.tip $TB_HOME/config
– Node2 Tip 파일 복사
[Tibero_Node2]# cd ~/tibero7_*<version>_<date>*/config
[Tibero_Node2]# cp -p $TB_SID.tip $TB_HOME/config
tbdsn.tbr 파일
– Node1 tbdsn.tbr 파일 복사
[Tibero_Node1]# cd ~/tibero7_*<version>_<date>*/client/config
[Tibero_Node1]# cp -p tbdsn.tbr $TB_HOME/client/config
– Node2 tbdsn.tbr 파일 복사
[Tibero_Node2]# cd ~/tibero7_*<version>_<date>*/client/config
[Tibero_Node2]# cp -p tbdsn.tbr $TB_HOME/client/config
cfg 파일
– Node1 cfg 파일 복사
[Tibero_Node1]# cd ~/tibero7*_<version>_<date>*/client/config
[Tibero_Node1]# cp -p *.cfg $TB_HOME/client/config
– Node2 cfg 파일 복사
[Tibero_Node2]# cd ~/tibero7*_<version>_<date>*/client/config
[Tibero_Node2]# cp -p *.cfg $TB_HOME/client/config
Tibero 서비스 시작
– Node1 Tibero 기동
[Tibero_Node1]# tbcm -b
[Tibero_Node1]# tbboot
– Node2 Tibero 기동
[Tibero_Node2]# tbcm -b
[Tibero_Node2]# tbboot
system 패키지 실행 및 확인 UNIX(TAC) 패치의 경우 한쪽의 Node에서만 실행 및 확인을 합니다.
실행 sys, syscat의 패스워드를 입력하여 Tibero 내부에서 사용하는 DD(Data Dictionary)와 system 패키지를 생성합니다.
[Tibero_Node1]# cd $TB_HOME/scripts
[Tibero_Node1]# sh system.sh
Enter SYS password: tibero
Enter SYSCAT password: syscat
Create default system users & roles?(Y/N): N
Create system tables related to profile?(Y/N): N
Create TPR tables?(Y/N): N
Register dbms_stats job to Job Scheduler?(Y/N): N
sys, syscat의 패스워드 확인 방법은 “1.1. 패치 전 점검사항”의 “sys, syscat 패스워드 확인”을 참고합니다.
확인 “$TB_HOME/instance/$TB_SID/log/system_init_log”을 확인했을 때 아래와 같이 에러 코드(”TBR- 17001”, “TBR-70004”)가 나타난다면 system. 패키지 실행이 정상적으로 이뤄지지 않은 것입니다.
[Tibero_Node1]# cd $TB_HOME/instance/$TB_SID/log/
[Tibero_Node1]# cat system_init.log | grep **"TBR-17001"**
[Tibero_Node1]# cat system_init.log | grep **"TBR-70004"**
alter system recompile all; 실행 모든 PSM recompile 동작을 수행하며 PSM compile할 때 BCODE를 생성하며 Data Dictionary에 저장하는 구조입니다. 패치가 되면서 생성되는 BCODE가 변경됐을 가능성 때문에 수행을 합니다. UNIX(TAC) 패치의 경우 한쪽의 Node 에서만 실행을 합니다.
[Tibero_Node1]# tbsql sys
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Enter Password:
Connected to Tibero.
SQL> alter system recompile all;
revalidate_viewnsyn.sql 수행 sys 계정이 아닌 계정에서 해당 스크립트를 수행합니다.
[Tibero_Node1]# cd $TB_HOME/scripts
[Tibero_Node1]# tbsql dbtech/dbtech
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero.
SQL> @revalidate_viewnsyn.sql
PSM completed.
패치 후 점검사항
UNIX(TAC) 패치 후 점검할 사항에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 후 점검사항”을 참고합니다.
Active-Standby 패치
본 장에서는 Tibero Active-Standby 패치 방법을 설명한다. Active-Standby 패치 순서는 다음과 같습니다.
각 과정에 대한 상세한 설명은 해당 절의 내용을 참고합니다.
패치 전 점검사항
Active-Standby 패치 전에 HA Cluster를 중지하고 패치할 때 Cluster 엔지니어를 필요로 합니다. 패치 전 점검할 사항 에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 전 점검사항”을 참고합니다.
Active-Standby 패치 과정
Active 서버는 “UNIX(SINGLE) 패치 과정”과 동일하므로 본 절에서는 Standby 서버의 패치 과정만 설명합니다. Standby 서버의 패치 과정의 순서는 다음과 같습니니다.
Tibero Standby 서버 바이너리 교체 1) 기존 Tibero가 설치된 폴더가 tibero7일 때, 기존 Tibero 서버 바이너리를 “tibero7빌드버전일자”로 바꿔줍니다.
[os_user$]mv tibero7 tibero7_*<version>_<date>*
[os_user$]gunzip -v new_tibero_binary.tar.gz
[os_user$]tar -xvf new_tibero_binary.tar
다음은 사용 예입니다.
[tbtest@db1 ~]$ tbdown immediate
Tibero instance terminated (IMMEDIATE mode).
[tbtest@db1 ~]$ tbboot -v
Tibero 7 (DB 7.0 FS02) Build 260633
Linux bistro-build-centos_7 5.15.0-71-generic #78~20.04.1-Ubuntu SMP Wed Apr 19
11:26:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux version (little-endian)
...
Compiled at Jun 1 2023 15:38:28 build seq 260633 init rev {2022-03-10}
[tbtest@db1 ~]$ date
2023. 06. 21. (수) 16:52:41 KST
[tbtest@db1 ~]$ mv tibero7 tibero7_260633_20230621
[tbtest@db1 ~]$ gunzip tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar.gz
[tbtest@db1 ~]$ tar -xvf tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar
tibero7/bin/svr_rename.sh
tibero7/bin/alterdd.sh
tibero7/bin/tb_create_db.sh
tibero7/bin/tbiv
tibero7/bin/sm_sysmon_disk_state.sh
tibero7/bin/tbprof
tibero7/bin/tbinfo
tibero7/bin/tbboot
tibero7/bin/tbctl
tibero7/bin/tbcmobs
...
2) 데이터 파일이 TB_HOME 디렉터리 내부에 존재할 경우
$TB_HOME 내부의 동일경로에 mv 또는 copy 명령어를 수행합니다. 만약, 외부에 존재할 경우 백업 여부 는 선택적으로 합니다.
[os_user$]cd ~/tibero7_*<version>_<date>*
[os_user$]mv database $TB_HOME
3) DB Link를 사용 중일 경우
Gateway에 대하여 바이너리 패치가 필요할 수 있습니다. DB Link용 Gateway를 패치할 때는 기존 바이너리Backup 이후에 수행합니다.
다음은 기존 Gateway를 패치한 곳으로 move하고 패치한 신규 바이너리와 적용에 문제가 없는지 체크하는 방법입니다.
Tibero to Oracle “$TB_HOME/client/bin/gw4orcl”를 교체하고 ldd gw4orcl을 실행하여 “not found”가 발생하지 않는지 확인합니다.
Tibero to MSSQL “$TB_HOME/client/bin/tbgateway.zip”을 교체합니다.
4) External Procedure를 사용 중일 경우
C External Procedure so 파일이 $TB_HOME 내부에 존재할 경우 패치한 바이너리로 복사합니다.
JAVA External Procedure class 또는 jar 파일이 $TB_HOME 내부에 존재할 경우 패치한 바이너리로 복사합니다. 아래와 같은 파일들의 설정 내용 파악 후 필요한 내용을 복사합니다.
$TB_HOME/client/epa/java/config/epa.cfg
$TB_HOME/client/epa/java/config/epalog.properties
$TB_HOME/client/bin/tbjavaepa
Backup 받은 디렉터리 기준으로 변경사항을 다음과 같이 OS 명령어로 비교하며 변경사항이 있을 경우에만 원본 설정 파일을 Overwrite 합니다.
export BACKUP_TB_HOME=~/tibero7_*<version>_<date>*
diff $TB_HOME/client/epa/java/config/epa.cfg
$BACKUP_TB_HOME/client/epa/java/config/epa.cfg
다음은 변경사항이 있을 경우 원본 설정 파일을 Overwrite 하는 예입니다.
cp -p $BACKUP_TB_HOME/client/epa/java/config/epa.cfg
$TB_HOME/client/epa/java/config/epa.cfg
5) ESQL/C, ESQL/COBOL을 사용할 경우
ESQL/C $TB_HOME/client/config/tbpc.cfg 파일의 설정 내용 파악 후 필요한 내용을 복사합니다.
ESQL/COBOL $TB_HOME/client/config/tbpcb.cfg 파일의 설정 내용 파악 후 필요한 내용을 복사합니다.
환경설정 수행
교체된 신규 바이너리에 tip, tbdsn,tbr, psm_commands 생성을 위해 환경설정을 수행합니다.
[os_user$]cd $TB_HOME/config
[os_user$]sh gen_tip.sh
다음은 환경설정 수행 예입니다.
[tbtest@db1 ~]$ cd tibero7/config
[tbtest@db1 config]$ sh gen_tip.sh
Using TB_SID "tibero"
/home/tbtest/tibero7/config/tibero.tip generated
/home/tbtest/tibero7/config/psm_commands generated
/home/tbtest/tibero7/client/config/tbdsn.tbr generated.
Running client/config/gen_esql_cfg.sh
Done.
라이센스, tip, tbdsn.tbr, cfg 파일 교체
다음은 각 파일의 교체 방법 및 사용 예입니다.
라이센스 파일 다음은 라이센스 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*
[os_user$]cp -rp license $TB_HOME
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/config
[os_user$]cp -rp license $TB_HOME
Tip(=Tibero Init Parameter) 파일
다음은 tip 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*/config
[os_user$]cp -p $TB_SID.tip $TB_HOME/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/config
[os_user$]cp -p $TB_SID.tip $TB_HOME/config
tbdsn.tbr 파일
다음은 tbdsn.tbr 파일 교체 방법입니다.
[os_user$]cd ~/tibero7_*<version>_<date>*/client/config
[os_user$]cp -p tbdsn.tbr $TB_HOME/client/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/client/config
[os_user$]cp -p tbdsn.tbr $TB_HOME/client/config
cfg 파일
다음은 cfg 파일 교체 방법입니다.
[os_user$]cd ~/tibero7*_<version>_<date>*/client/config
[os_user$]cp -p *.cfg $TB_HOME/client/config
다음은 사용 예입니다.
[os_user$]cd ~/tibero7_260633_20230621/client/config
[os_user$]cp *.cfg $TB_HOME/client/config
패치 후 점검사항
Active-Standby 패치 후 점검할 사항에 대한 자세한 설명은 UNIX(SINGLE) 패치의 “패치 전 점검사항”을 참고합니다.
Appendix A. 패치 과정 요약
본 장에서는 Tibero 패치 과정을 요약하여 설명합니다.
Single & TAC 패치
다음은 Single과 TAC의 패치 과정 순서입니다.
바이너리 준비
패치 바이너리를 패치 대상 서버에 FTP를 이용하여 옮깁니다.
INVALID Object 확인
SQL> SET LINESIZE 120
SQL> COL object_name FORMAT A30
SQL> COL owner FORMAT a20
SQL> SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE status='INVALID';
Tibero 종료
TAC의 경우 모든 노드를 tbdown 한 후에 tbcm을 종료합니다.
$ tbdown immediate
$ tbcm -d
Tibero 바이너리 백업
기존 Tibero 7 Backup 이름을 tibero7*<패치일자>*로 바꿔줍니다.
$ mv ~/tibero7 ~/tibero7_260633_20230621
패치 바이너리 설치
$ gunzip tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar.gz
$ tar -xvf tibero7-bin-FS02-linux64_3.10-260359-20230518173125.tar
환경설정 및 복원
설정
$ cd $TB_HOME/config
$ sh gen_tip.sh
복원
$ cp ~/tibero7_260633_20230621/config/$TB_SID.tip $TB_HOME/config
$ cp ~/tibero7_260633_20230621/client/config/tbdsn.tbr $TB_HOME/client/config
$ cp ~/tibero7_260633_20230621/client/config/*.cfg $TB_HOME/client/config
$ cp -R ~/tibero7_260633_20230621/license $TB_HOME
Tibero 시작
TAC의 경우 모든 노드의 tbcm을 기동 후 tbboot합니다.
$ tbcm -b
$ tbboot
Dictionary 갱신
$ cd $TB_HOME/scripts
$ ./system.sh
Object 재컴파일
$ tbsql sys
SQL> alter system recompile all;
SQL> quit
INVALID SYNONYM 스크립트 수행
sys 계정이 아닌 계정에서 해당 스크립트를 수행합니다.
$ tbsql tibero
SQL> @revalidate_viewnsyn.sql
패치 후 INVALID Object확인
SQL> SET LINESIZE 120
SQL> COL object_name FORMAT A30
SQL> COL owner FORMAT a20
SQL> SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE status='INVALID';
Object 컴파일
ALTER *<OBJECT_TYPE> <OWNER.OBJECT_NAME>* COMPILE;
Driver 갱신
필요한 경우 애플리케이션에서 사용하는 JDBC Driver나 ODBC DLL 파일을 신규 Driver로 갱신합니다.
Last updated