Kingbase를 Linux 시스템 서비스로 등록하여 자동 시작 설정하기

기존에 실행 중인 Kingbase 인스턴스를 Linux 시스템 서비스로 등록하는 방법

일반적으로 Kingbase 데이터베이스를 "완전 설치"할 때 마지막 단계에서 시스템 서비스로 등록할지 묻는 메시지가 표시됩니다. 이 경우 root 사용자로 root.sh 스크립트를 실행하면 됩니다.

그러나 이미 실행 중이지만 시스템 서비스로 등록되지 않은 데이터베이스 인스턴스가 있다면 어떻게 처리해야 할까요? 아래 예제를 참고하세요.

1. 테스트용 인스턴스 초기화

시스템 서비스 등록을 테스트하기 위해 새로운 데이터베이스 인스턴스를 초기화합니다. 초기화 후에는 반드시 데이터베이스를 시작하고 종료해야 하며, 그렇지 않으면 sys_log 디렉토리가 생성되지 않아 시스템 서비스로 등록한 후에 오류가 발생할 수 있습니다.


# 01. 인스턴스 초기화
[root@node1 ~]# su - kingbase
[kingbase@node1 ~]$ cd /data/kingbase/ESV8C9B14
[kingbase@node1 ESV8C9B14]$ ./Server/bin/initdb -Usystem -D /data/kingbase/data_v8r69b14

# 02. 데이터베이스 인스턴스 시작
[kingbase@node1 ESV8C9B14]$ ./Server/bin/sys_ctl start -D /data/kingbase/data_v8r69b14/

# 03. 데이터베이스 인스턴스 중지
[kingbase@node1 ESV8C9B14]$ ./Server/bin/sys_ctl stop -D /data/kingbase/data_v8r69b14/

실제 운영 중인 인스턴스를 등록하려는 경우 초기화 과정은 건너뛰고 필요한 정보(소프트웨어 디렉토리, 데이터 디렉토리, OS 사용자 이름, 버전 번호)를 수집하세요.

2. 인스턴스를 Linux 시스템 서비스로 등록하기

2-1. 서비스 등록 스크립트 수정

다음과 같이 root.sh 파일을 복사하여 수정합니다.


# 기존 root.sh 복사
[root@node1 script]# cp root.sh root_54321.sh

# 필수 설정 수정
INSTALLDIR=/data/kingbase/ESV8C9B14
USERNAME=kingbase
DATADIR=/data/kingbase/data_v8r69b14
VERSION=V008R006C009B0014
SERVICENAME=kingbased_54321

# startupcfg.sh 수정
service $SERVICENAME start

2-2. 서비스 등록 및 데이터베이스 시작 확인

스크립트를 실행하여 서비스를 등록합니다.


[root@node1 script]# ./root_54321.sh
Starting KingbaseES V008R006C009B0014...
Service registered and database started successfully.

# 서비스 상태 확인
[root@node1 ~]# service kingbased_54321 status
sys_ctl: Server process running (PID: 1459).

2-3. 서비스 관리를 통한 데이터베이스 제어

service 명령어를 사용하여 데이터베이스를 관리합니다.


# 데이터베이스 중지
[root@node1 ~]# service kingbased_54321 stop

# 데이터베이스 시작
[root@node1 ~]# service kingbased_54321 start

# 데이터베이스 재시작
[root@node1 ~]# service kingbased_54321 restart

2-4. 서버 재부팅 후 자동 시작 검증

서버를 재부팅하여 시스템 서비스로 올바르게 자동 시작되는지 확인합니다.


# 서버 재부팅
[root@node1 script]# reboot

# 재부팅 후 서비스 상태 확인
[root@node1 ~]# service kingbased_54321 status
sys_ctl: Server process running (PID: 3545).

3. 시스템 서비스 삭제

필요하지 않는 경우 다음 절차를 통해 서비스를 삭제합니다.


# 삭제 스크립트 수정
[root@node1 script]# vi rootuninstall.sh
SERVICENAME=kingbased_54321

# 삭제 스크립트 실행
[root@node1 script]# ./rootuninstall.sh

# 변경사항 반영
[root@node1 script]# systemctl daemon-reload

태그: Kingbase linux systemd

6월 3일 21:30에 게시됨