Background Image
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

윈도우즈 환경에서 CUBRID 사용시 주기적인 "데이터베이스정리" 를 수행하고자 한다면 현재 큐브리드 매니져에서는 지원하지 않고 있으므로 배치화일로 작성하여 윈도우즈의 "예약작업"에 등록하여 수행할 수가 있습니다.
그러나 CUBRID 데이터베이스 서버는 명령어를 이용하여 데이터베이스 서버를 구동시 명령어 창이 닫히게 되면 데이터베이스 서버가 종료되는 문제를 가지고 있습니다. 따라서 큐브리드 매니져를 이용하여 데이터베이스 서버를 구동시켜야만 합니다
.

배치화일과 같이 명령어를 이용하여 데이터베이스 서버를 재구동하고자 한다면, CUBRID 서비스 자체를 구동시키고 종료시키는 ctrlService.exe(CUBRID 설치 디렉토리의 bin에 위치)
 를 이용해야 합니다. 이를 이용하면 배치화일로 데이터베이스 서버를 종료 시킨후 몇가지 작업을 한 후 다시 재구동을 시킬 수가 있습니다.


ctrlService 사용하기

ctrlService
CUBRID service 를 구동시키거나, 종료시키는 역활을 합니다. 데이터베이스 서버를 직접 구동시키지는 않으며, 종료시에 구동되어 있는 데이터베이스 서버를 종료시켜 줍니다. 따라서 데이터베이스 서버를 CUBRID service 구동시 자동으로 구동시키기 위하여는 한가지 설정이 필요합니다.
CUBRID
설정화일은 cubrid.conf(CUBRID 설치 디렉토리의 conf에 위치)화일에서 데이터베이스 서버를 service 구동시 같이 구동시키기 위한 설정값을 수정하면 됩니다. 기본 설정은 막혀있으므로 줄 첫부분의 #을 제거하고 아래와 같이 수정하면 됩니다. 데이터베이스 이름을 demodb로 가정하면
,
server=demodb
로 수정하여 저장하면, 이후 CUBRID service 구동시 demodb 는 자동으로 구동되게 됩니다.

또한 ctrlService CUBRID service 종료시 데이터베이스가 구동되어 있으면 데이터베이스 서버를 종료시키는데 데이터베이스 서버가 종료될때까지 기다리지는 않습니다. , 데이터베이스 서버를 종료시키는 명령만 수행시킨후 ctrlService가 종료되므로 ctrlService 가 종료되었다고 해서 바로 데이터베이스 서버가 종료된 것은 아닙니다. 데이터베이스 서버 종료시에는 수초가 소요될 수 있습니다. 따라서 정상적으로 종료되었는지를 확인 후 다음 작업을 진행시켜야 합니다
.
ctrlService
에서는 어떤 정보를 주지 않으므로 별도로 데이터베이스 서버가 종료되었는지를 확인해야 합니다. 윈도우에 있는 명령어중 구동되어 있는 프로그램을 확인하는 명령이 tasklist 라고 있습니다. 이를 이용하여 수행중인 프로그램중 CUBRID 관련 명령어를 찾아보면 됩니다. 종료시에는 CUBRID master (cub_master.exe)가 가장 나중에 종료되므로 이를 확인하면 됩니다.

따라서 tasklist 를 통해 얻어진 내용중 cub_master.exe 가 있는지를 찾아보면 되며, 이는 윈도우즈 명령중 findstr 을 사용하면 됩니다.

아래에 서비스 종료여부를 판단하는 부분에 대한 스크립트를 정리하였습니다. 참고로 ping 은 네트웤 체크를 위해서 사용하는 것은 아니고 1초 간격으로 체크하는 것을 응용하여 약 1초간의 시간 지연을 가지기 위해서 ping 을 사용하였습니다. 프로그램 상에서 계속 확인을 하게 되면 CPU 를 계속 하용하여 성능적으로는 좋지 않기 때문에, OS에서는 sleep(주어진 시간만큼 기다림) 이라는 명령을 보통 제공하는데 최근 윈도우즈에서는 이 sleep 이 없어졌습니다. 그래서 sleep 대신 사용한 것입니다.

%CUBRID%binctrlService -stop
:CHECK_STOP
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_master.exe
if %ERRORLEVEL% EQU 0 goto CHECK_STOP


@echo CUBRID stopped!!!


서비스 구동시에는 가장 마지막으로 구동되는 프로그램이 매니져 서버이므로 관련 프로그램(cub_auto.exe)의 구동을 확인하면 됩니다. 그런데 데이터베이스 서버가 구동되는데는 시간이 좀더 걸릴수 있으므로, 좀 더 확실하게 확인해야 합니다. 데이터베이스 관련 명령을 실행시켜보아 정상 동작되는지를 확인하면 됩니다. 간단히 데이터베이스 사용량을 확인하는 명령을 수행해 보도록 했으며, 이 프로그램이 정상 수행되면 0 을 리턴하므로 이 값을 가지고 정상 구동 여부를 판단하도록 하였습니다.

%CUBRID%binctrlService -start

:CHECK_START
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_auto.exe
if %ERRORLEVEL% NEQ 0 goto CHECK_START


:CHECK_SPACE
ping -n 2 -w 1 localhost > null
cubrid spacedb -C demodb
if %ERRORLEVEL% NEQ 0 goto CHECK_SPACE

@echo CUBRID started!!!


데이터베이스 정리 자동화 하기

데이터베이스 정리와 관련된 CUBRID 명령어는 cubrid compactdb 이며 사용 방법은 다음과 같습니다.
cubrid compactdb <
데이터베이스 이름
>

따라서 위의 명령과 앞서 언급한 ctrlService 를 이용하여 아래와 같이 배치화일을 만들면 됩니다.

 

@echo off

%CUBRID%binctrlService -stop
:CHECK_STOP
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_master.exe
echo %ERRORLEVEL%
if %ERRORLEVEL% EQU 0 goto CHECK_STOP

@echo CUBRID stopped!!!


@echo cubrid compactdb demodb
cubrid compactdb demodb
@echo compactdb finished!!!


%CUBRID%binctrlService -start
:CHECK_START
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_auto.exe
if %ERRORLEVEL% NEQ 0 goto CHECK_START

:CHECK_SPACE
ping -n 2 -w 1 localhost > null
cubrid spacedb -C demodb
if %ERRORLEVEL% NEQ 0 goto CHECK_SPACE

@echo CUBRID started!!!


데이터베이스 백업 자동화 하기

백업일때는 조금 복잡합니다. 이전 백업본이 있는 경우 이에 대한 처리를 해야 합니다. 이전 백업본이 존재하는 경우 이의 처리에 대하여 물어오는데 자동화 작업에서는 답변을 할 수가 없으므로 옮겨주거나 삭제해야 합니다. CM에서는 이전 백업본에 대하여 stordold 라는 디렉토리로 옮겨놓고 백업을 수행합니다. 이 작업을 배치화일 작성시 추가해 주어야 합니다. 또한 몇가지 옵션들을 부여하는데 이를 백업의 명령어 옵션으로 부여해야 합니다. 주로 사용되는 옵션은 다음과 같습니다.

-D <백업디렉토리> : 백업화일이 만들어질 디렉토리 지정

-r                         : 로그 아카이브 제거

-l <0|1|2>              : 백업 레벨 지정, 0이 풀백업, 1, 2는 증분 백업

-S                         : off-line 백업, 즉 서버 중지후 백업 수행
-z
                    : 압축 백업 수행


관련된 내용을 포함하여 배치화일을 만들면 아래와 같습니다.
주의할 점은 백업 디렉토리와 백업 디렉토리 아래 storeold 라는 디렉토리는 미리 만들어 놓아야 합니다.

 
@echo off

set BACKUP_DIR=C:backup
move %BACKUP_DIR%* %BACKUP_DIR%storeold

%CUBRID%binctrlService -stop
:CHECK_STOP
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_master.exe
echo %ERRORLEVEL%
if %ERRORLEVEL% EQU 0 goto CHECK_STOP

@echo CUBRID stopped!!!

@echo
cubrid backupdb demodb
cubrid backupdb -S -r  -z -l 0 -D %BACKUP_DIR%a demodb
@echo backupdb finished!!!

%CUBRID%binctrlService -start
:CHECK_START
ping -n 2 -w 1 localhost > null
tasklist | findstr cub_auto.exe
if %ERRORLEVEL% NEQ 0 goto CHECK_START

:CHECK_SPACE
ping -n 2 -w 1 localhost > null
cubrid spacedb -C demodb
if %ERRORLEVEL% NEQ 0 goto CHECK_SPACE

@echo CUBRID started!!!

 


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
166 기타 [10.2 path] - 생성된 view구문을 'show create view' 수행 시 정상적으로 출력되지 않던 이슈 patch 큐브리드_김주현 2020.11.09 893
165 기타 큐브리드10.1 에서 윤초 지원 옵션 사용하기 최광일 2017.09.13 1422
164 Linux <주의> 생성한 DB볼륨을 절대! 삭제하지 말자 큐브리드_김주현 2019.09.30 1607
163 Install [linux] wget으로 제품 다운로드 시 "wget: unable to resolve host address ‘ftp.cubrid.org’" 해결방 큐브리드_김주현 2021.07.02 2276
162 기타 ERwin을 이용한 CUBRID 포워드 엔지니어링 file 민순 2020.07.14 2323
161 기타 따라하면 쉬운 compactdb 사용법 file 허서진 2017.07.01 2536
160 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3471
159 Java JDBC를 사용한 다중화 구성 SELECT Query 부하 분산 가이드 file 윤준수 2017.03.30 3951
158 튜닝 다중컬럼 조건에 대한 인라인뷰 처리방안 2 박동윤 2016.12.27 6017
157 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8155
156 Java CUBRID에서 Java AddBatch 사용 엄기호 2016.06.28 8368
155 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9550
154 PHP CUBRID HA 환경에서 Apache-PHP 설정 가이드 이용미 2015.06.16 10665
153 기타 CUBRID isolation level & Dirty Read 정만영 2015.05.29 11315
152 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12094
151 Windows Windows 에 설치 된 JRE 설치 위치 확인 하기. file 성진 2015.05.28 12572
150 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12768
149 기타 CUBRID 2008 R4.0 파라미터 변경 사항 (일부) file admin 2011.07.14 13154
148 Linux 가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 file 이경오 2015.07.14 13407
147 기타 콘솔에서 마이그레이션 하기. file 권호일 2015.06.19 13434
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales