본문 바로가기

DB/Tibero

[Linux] 리눅스 cent OS 7에서 Tibero 6 패치 (Fix Set)

728x90

VMware (workstation)

centOS7 (Linux)

Tibero6 (Database)

X-shell (원격 터미널) 사용

 

※ 패치 ? tibero엔진을 이전보다 개선된 버전으로 업그레이드하는 과정

               (Tibero에서는 이런 패치파일을 Fix Set이라고 부름 )

1. 패치 전 점검 사항

1-1) sys계정 로그인

sys, syscat password 확인해두기 

conn syscat

Default) sys password : tibero,

             syscat password : syscat

 

1-2)  valid 오브젝트 갯수 확인 : 유효한 오브젝트

Patch후 기존에 Valid -> Invalid 할 경우 조치를 취하기 위함

> col owner format a20

> set pages 500

> select owner, object_type, status, count(*)
from dba_objects
group by owner, object_type, status
order by owner, object_type, status;

 

밑에 valid object가 패치 후에도 동일한지 체크

 

1-3) invalid 오브젝트 갯수 확인  : 유효하지 않은 오브젝트

> set linesize 120

> col object_name format A30

> col owner format a20

> select owner, object_name, object_type, status
from dba_objects
where status='INVALID';

 

1-4) 버전 확인 > select * from v$version;

 

1-5) TableSpace의 Datafile 위치 파악

set linesize 120
col file_name format A100
select file_name from dba_data_files;

※ datafile 위치가 $TB_HOME 내부 Directory 존재하는지 확인

$TB_HOME 내부 Directory에 위치 한경우 Binary 교체 시 해당 datafile도 같이 Copy 또는 Move 해야 한다.

 

1-6) DB Link 사용여부 확인

select * from dba_db_links;

 

DB Link를 사용 중이라면 Gateway에 대하여 Bianry Patch가 필요할 수 있다.

 

1-7) External Procedure 사용여부 확인 ( /* JAVA External Procedure */ ) : 외부 프로시저

set linesize 120
col owner for a10
col name for a30
col source for a50

SELECT owner, name, source FROM DBA_JAVA_CLASSES;

$TB_HOME 내부에 Class 또는 So 파일이 존재하는지 확인 후 추후 Copy

 

1-8)Tibero Service 정지

- Application이 DB에 연결되어 있다면, 미리 Application Down 이후 수행할 것

tbdown immediate
ps -ef | grep tbsvr

 

DB를 사용하는 모든 Application을 Down했다면 상관이 없지만 

해당 Application을  Down하지 못할 상황일 때는 임시적으로 Service Port를 변경하여

작업을 한 이후 Patch 완료 후에 다시 Service Port로 변경해주면 된다.

* $TB_HOME/config/$TB_SID.tip > LISTENER_PORT  부분 수정   

* $TB_HOME/client/config/tbdsn.tbr (or tbnet_alias.tbr) > $TB_SID 에 해당하는 alias 부분의 PORT부분 수정

2. 패치

 

2-1) 기존 tibero설치 폴더는 폴더명을 변경해서 이동시켜두기 .

mv tibero6 tibero6_#2

 

 

2-2) 새로운 패치 폴더를 업로드하고 압축 해제.

tar -xvf tibero6-bin-FS07_CS_2005-linux64-199301-opt.tar.gz

cd $TB_HOME/config
sh gen_tip.sh

※ gen_tip.sh 경우 tip, tbdsn.tbr(=tbnet_alias.tbr), psm_commands 생성위함 이미 존재하는 경우 생성되지 않음

./gen_tip.sh ? .tip파일을 읽어서 컨트롤 파일을 찾는다.

 

2-3) 이전 폴더의 데이터들을 새로운 버전의 tibero6폴더로 이관.

 

- Datafile Tibero Binary 내부 존재 시

  $TB_HOME 내부의 동일경로에 mv 또는 copy 명령어 수행( database )

  외부에 존재할 땐 백업여부는 선택적

cp -r tibero6_#2/database $TB_HOME
cp -rp tibero6_#2/license $TB_HOME
cp tibero6_#2/config/$TB_SID.tip $TB_HOME/config
cp tibero6_#2/client/config/tbdsn.tbr $TB_HOME/client/config

cp == 복사

-r : 하위 directory까지 모두 복사

-p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사

 

2-4) 서비스 시작 후 system.sh 실행하여 Tibero 내부 사용하는 Object들 재생성

tbboot
cd $TB_HOME/scripts
sh system.sh

 

3. 패치 후 확인 (패치 전과 동일)

 

3-1) sys계정으로 로그인. 

 

 

오류 1) nomount모드일 확률이 높다 == 데이터베이스가 없을 경우 (이관 작업이 제대로 안된 경우)

 

 

3-2) valid object 확인 

 

3-3) invalid object 확인 

만약 Invalid object가 PUBLIC 의 Synonym 인 경우 자동으로 Valid 하게 되므로 Skip 해도 무방

 

3-3) 버전 확인 (FS06에서 FS07로 잘 바뀐 모습을 확인할 수 있다!)