DBMS 기초 완벽 이해: Oracle, Tibero, MySQL의 INSERT, UPDATE, DELETE 실무 활용법🌟

INSERT, UPDATE, DELETE

“데이터베이스에서 가장 기본적이지만 꼭 알아야 하는 작업은 바로 INSERT, UPDATE, DELETE입니다. Oracle, Tibero, MySQL에서의 구현 방법과 주의점을 상세히 살펴보세요!”
데이터베이스를 다룰 때 데이터를 추가, 수정, 삭제하는 작업은 가장 기본적이고도 중요한 기능입니다. 하지만 각각의 DBMS는 SQL 문법과 동작 방식에 약간씩 차이가 있습니다. 오늘은 Oracle, Tibero, MySQL에서의 INSERT, UPDATE, DELETE 문법과 활용법, 그리고 성능 최적화 팁까지 상세히 정리해 드리겠습니다.


1. INSERT: 데이터를 추가하는 기본 작업 📝

1) Oracle

INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3)
VALUES ('값1', '값2', '값3');
  • 다중 행 삽입:
INSERT ALL
  INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1', '값2')
  INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값3', '값4')
SELECT * FROM DUAL;

2) Tibero

INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3)
VALUES ('값1', '값2', '값3');
  • Tibero는 Oracle과 호환성이 높아 동일한 문법을 사용합니다.

3) MySQL

INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3)
VALUES ('값1', '값2', '값3');
  • 다중 행 삽입:
INSERT INTO 테이블명 (컬럼1, 컬럼2)
VALUES 
  ('값1', '값2'),
  ('값3', '값4');

INSERT 사용 시 주의점

  • NULL 처리: 값이 없는 컬럼에 NULL을 명시적으로 지정하거나 생략해야 합니다.
  • 제약 조건: PRIMARY KEY나 UNIQUE KEY 위반 여부를 사전에 확인하세요.

2. UPDATE: 데이터를 수정하는 필수 기능 🔧

1) Oracle

UPDATE 테이블명
SET 컬럼1 = '값1', 컬럼2 = '값2'
WHERE 조건;

2) Tibero

UPDATE 테이블명
SET 컬럼1 = '값1', 컬럼2 = '값2'
WHERE 조건;
  • Oracle과 동일한 문법을 사용합니다.

3) MySQL

UPDATE 테이블명
SET 컬럼1 = '값1', 컬럼2 = '값2'
WHERE 조건;

UPDATE 사용 시 주의점

  • WHERE 조건 필수: 조건을 생략하면 모든 데이터가 수정됩니다.
  • 트랜잭션 관리: 대규모 데이터 수정 시 ROLLBACK 가능성을 대비해 트랜잭션을 설정하세요.

3. DELETE: 데이터를 삭제하는 강력한 명령 🗑️

1) Oracle

DELETE FROM 테이블명
WHERE 조건;
  • 테이블 전체 데이터 삭제:
TRUNCATE TABLE 테이블명;

TRUNCATE는 DELETE보다 빠르지만, ROLLBACK 불가.

2) Tibero

DELETE FROM 테이블명
WHERE 조건;
  • Oracle과 동일한 문법을 사용합니다.

3) MySQL

DELETE FROM 테이블명
WHERE 조건;
  • 테이블 전체 데이터 삭제:
TRUNCATE TABLE 테이블명;

DELETE 사용 시 주의점

  • WHERE 조건 필수: 조건을 지정하지 않으면 모든 데이터가 삭제됩니다.
  • TRUNCATE와 DELETE 차이: TRUNCATE는 테이블 구조를 초기화하지만 로그를 남기지 않기 때문에 복구 불가능합니다.

4. Oracle, Tibero, MySQL 차이점 비교표 ⚖️

기능OracleTiberoMySQL
INSERTINSERT ALL 지원INSERT ALL 지원다중 행 삽입 문법 단순함
UPDATE표준 SQL 문법Oracle과 동일표준 SQL 문법
DELETETRUNCATE 지원TRUNCATE 지원TRUNCATE 지원
트랜잭션완벽한 트랜잭션 지원Oracle과 동일트랜잭션 지원 (MyISAM 제외)
성능 최적화대규모 데이터 처리에 유리Oracle과 호환성 우수경량화된 쿼리로 빠른 속도 지원

5. 성능 최적화 팁 🚀

1) INSERT 최적화

  • 대량 삽입: 대량 데이터를 삽입할 때는 배치 작업이나 로딩 도구를 사용하세요.
    • 예: Oracle SQL*Loader, MySQL LOAD DATA INFILE.
  • 제약 조건 비활성화: 삽입 중 성능 저하를 방지하려면 작업 전에 제약 조건을 비활성화.

2) UPDATE 최적화

  • 인덱스 활용: WHERE 조건에서 사용되는 컬럼에 인덱스를 생성해 성능을 향상.
  • 최소 데이터 수정: 필요 없는 컬럼 수정은 피하세요.

3) DELETE 최적화

  • 대규모 삭제: DELETE 대신 TRUNCATE를 활용하면 성능이 크게 향상됩니다.
  • 배치 삭제: 데이터가 많을 경우 작은 단위로 나누어 삭제 작업 수행.

결론: 데이터 관리의 기초, 완벽히 이해하세요! 🎉

Oracle, Tibero, MySQL에서의 INSERT, UPDATE, DELETE는 데이터베이스 관리의 기초입니다. 하지만 각각의 DBMS가 제공하는 기능과 최적화 방법을 이해하면 더 효율적으로 데이터를 처리할 수 있습니다.


🌟 “기본을 알면 데이터 관리가 더 쉬워집니다! 지금 바로 INSERT, UPDATE, DELETE를 활용해 데이터를 자유자재로 다뤄보세요. 😊✨”

궁금한 점이나 추가 정보가 필요하다면 언제든 말씀해주세요! 🚀

실수로 삭제된 데이터, Oracle AS OF TIMESTAMP로 되찾아보세요!⏳✨

TIMESTAMP

“과거 데이터를 복구하거나 특정 시점의 데이터 상태를 확인하고 싶으신가요? Oracle의 AS OF TIMESTAMP 기능을 활용하면 데이터의 시간여행이 가능합니다!”
데이터베이스를 운영하면서 실수로 데이터를 삭제하거나 업데이트했을 때, 특정 시점의 데이터를 확인해야 할 경우가 생깁니다. 이럴 때 Oracle의 AS OF TIMESTAMP 기능은 강력한 도구가 됩니다. 이번 글에서는 AS OF TIMESTAMP의 개념, 사용 방법, 주요 활용 사례, 그리고 동적 시점 쿼리 활용과 최적화 팁까지 모두 살펴보겠습니다.


1. Oracle AS OF TIMESTAMP란? 📜

**AS OF TIMESTAMP**는 **플래시백 쿼리(Flashback Query)**의 핵심 기능 중 하나로, 특정 시점의 데이터 상태를 조회할 수 있습니다. Oracle 데이터베이스는 UNDO 데이터를 활용해 과거 데이터를 재현하는데, 이를 통해 데이터의 복원이나 문제 해결이 가능합니다.

주요 특징

  • 특정 시점의 데이터를 조회 가능.
  • 데이터 복구 및 문제 해결에 유용.
  • UNDO 테이블스페이스를 활용해 작동.
  • DML 작업(INSERT, UPDATE, DELETE) 이력 추적 가능.

2. AS OF TIMESTAMP 기본 사용법 💻

기본 쿼리 문법

SELECT *
FROM 테이블명
AS OF TIMESTAMP TO_TIMESTAMP('YYYY-MM-DD HH24:MI:SS', 'YYYY-MM-DD HH24:MI:SS');

예제: 특정 시점의 데이터 조회

SELECT *
FROM employees
AS OF TIMESTAMP TO_TIMESTAMP('2024-11-26 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
  • employees 테이블에서 2024년 11월 26일 오전 10시의 데이터를 조회합니다.

3. 동적 시점 조회: SYSTIMESTAMP - INTERVAL 활용 🌟

Oracle의 AS OF TIMESTAMP는 고정된 시점뿐만 아니라 동적 계산을 통해 특정 시간 전의 데이터를 조회할 수 있습니다.
이를 활용하면 실시간 문제 해결과 데이터 추적이 훨씬 더 간단해집니다.

기본 문법

SELECT *
FROM 테이블명
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR);

예제: 1시간 전 데이터 조회

SELECT *
FROM employees
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR);
  • 현재 시간 기준으로 1시간 전의 데이터를 조회합니다.

INTERVAL 사용법

INTERVAL 값설명예시
INTERVAL '1' HOUR1시간 전SYSTIMESTAMP - INTERVAL '1' HOUR
INTERVAL '30' MINUTE30분 전SYSTIMESTAMP - INTERVAL '30' MINUTE
INTERVAL '7' DAY7일 전SYSTIMESTAMP - INTERVAL '7' DAY
INTERVAL '2' MONTH2개월 전SYSTIMESTAMP - INTERVAL '2' MONTH

4. AS OF TIMESTAMP 활용 사례 📂

1) 실수로 삭제된 데이터 복구

INSERT INTO employees_recovered
SELECT *
FROM employees
AS OF TIMESTAMP TO_TIMESTAMP('2024-11-26 09:00:00', 'YYYY-MM-DD HH24:MI:SS');
  • 과거 시점의 데이터를 새로운 테이블에 복구할 수 있습니다.

2) 데이터 변경 내역 추적

SELECT *
FROM orders
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' HOUR)
WHERE order_id = 12345;
  • 주문 번호 12345의 상태를 2시간 전 기준으로 확인합니다.

3) 데이터 무결성 확인

SELECT a.*, b.*
FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR) a
FULL OUTER JOIN employees b
ON a.employee_id = b.employee_id
WHERE a.salary != b.salary;
  • 현재 데이터1시간 전 데이터를 비교하여 변경된 항목을 확인합니다.

5. 플래시백 쿼리 작동 원리 🔍

1) UNDO 테이블스페이스 활용

Oracle은 UNDO 데이터(트랜잭션 로그)를 사용해 이전 상태를 재현합니다.

  • UNDO 보존 기간: 플래시백 쿼리가 가능한 시점은 UNDO 데이터 보존 기간에 따라 결정됩니다.
    UNDO_RETENTION 파라미터로 설정. SHOW PARAMETER UNDO_RETENTION;

2) SCN(System Change Number) 기반

AS OF TIMESTAMP는 내부적으로 SCN을 활용해 특정 시점의 데이터를 조회합니다.


6. 사용 시 주의점 🚨

1) UNDO 보존 기간 확인

  • AS OF TIMESTAMP는 UNDO 테이블스페이스에 저장된 데이터를 참조하므로, UNDO_RETENTION 기간 내의 시점만 조회가 가능합니다.

2) 성능 고려

  • 플래시백 쿼리는 UNDO 데이터를 읽기 때문에 대규모 데이터를 조회할 경우 성능 저하가 발생할 수 있습니다.

3) 권한 필요

  • 플래시백 쿼리를 실행하려면 SELECT ANY TABLEFLASHBACK 권한이 필요합니다.

결론: Oracle AS OF TIMESTAMP로 데이터 복구와 추적을 간단하게! 🎉

Oracle의 AS OF TIMESTAMP는 실수로 데이터를 삭제하거나 과거 상태를 복구해야 할 때 매우 유용한 기능입니다. 특히, SYSTIMESTAMP - INTERVAL과 같은 동적 시점 활용은 실무에서 빠르고 유연한 데이터 관리를 가능하게 합니다.


🌟 “과거 데이터를 손쉽게 복구하세요! Oracle AS OF TIMESTAMP로 데이터 관리를 완벽히 마스터해보세요. 😊✨”

더 궁금한 사항이 있다면 언제든 말씀해주세요!

Tibero와 Oracle에서 JOIN UPDATE, 실무에서 바로 써먹는 꿀팁 대방출! 🌟

JOIN UPDATE

“데이터베이스에서 JOIN UPDATE는 필수적인 작업입니다. Tibero와 Oracle의 차이점과 활용법을 알아보세요!”
데이터베이스를 운영하다 보면 특정 조건에 맞는 데이터를 업데이트해야 할 때가 많습니다. 특히 여러 테이블을 연결하여 데이터를 갱신하는 JOIN UPDATE는 실무에서 자주 사용하는 쿼리 중 하나입니다. Tibero와 Oracle에서는 이 작업을 약간 다른 방식으로 처리해야 하죠. 이번 글에서는 JOIN UPDATE의 기본 개념, Tibero와 Oracle에서의 구현 방법, 그리고 주의점 및 최적화 팁까지 모두 정리했습니다.


1. JOIN UPDATE란? 🛠️

JOIN UPDATE는 두 개 이상의 테이블을 조인(JOIN)하여 특정 조건을 만족하는 데이터를 업데이트하는 SQL 작업입니다.
예를 들어, 고객 테이블의 고객 이름을 주문 테이블의 고객 ID를 기준으로 업데이트한다고 가정해봅시다.

기본 SQL 구조

UPDATE 테이블A
SET 테이블A.컬럼 = 테이블B.컬럼
FROM 테이블A
JOIN 테이블B
ON 테이블A.조건 = 테이블B.조건
WHERE 추가 조건;

2. Oracle에서의 JOIN UPDATE 💾

Oracle에서는 UPDATE 문 내에서 서브쿼리를 활용하거나 MERGE 문을 사용해 JOIN UPDATE를 수행합니다.

방법 1: 서브쿼리 활용

UPDATE 테이블A
SET 컬럼1 = (
  SELECT 테이블B.컬럼2
  FROM 테이블B
  WHERE 테이블A.조건 = 테이블B.조건
)
WHERE EXISTS (
  SELECT 1
  FROM 테이블B
  WHERE 테이블A.조건 = 테이블B.조건
);
  • 장점: 직관적이며 단순한 쿼리 구조.
  • 단점: 서브쿼리가 복잡할수록 성능 저하 가능.

방법 2: MERGE 문 활용

Oracle의 MERGE는 업데이트와 삽입을 동시에 처리할 수 있는 강력한 도구입니다.

MERGE INTO 테이블A A
USING 테이블B B
ON (A.조건 = B.조건)
WHEN MATCHED THEN
  UPDATE SET A.컬럼1 = B.컬럼2;
  • 장점: 성능 최적화 가능, 대규모 데이터 처리에 적합.
  • 단점: 단순한 업데이트에는 코드가 복잡하게 느껴질 수 있음.

3. Tibero에서의 JOIN UPDATE 🔧

Tibero는 SQL 표준에 더욱 충실하여 JOIN UPDATE를 직접 지원합니다.
아래와 같은 구문으로 두 테이블 간의 조인을 이용한 업데이트가 가능합니다.

Tibero JOIN UPDATE

UPDATE 테이블A
SET 컬럼1 = 테이블B.컬럼2
FROM 테이블A
JOIN 테이블B
ON 테이블A.조건 = 테이블B.조건
WHERE 추가 조건;
  • 장점: 직관적이며 간결한 코드.
  • 단점: 표준 SQL을 지원하지 않는 데이터베이스와의 호환성 문제.

4. Oracle과 Tibero의 JOIN UPDATE 차이점 ⚖️

특징OracleTibero
JOIN UPDATE 지원 여부서브쿼리 또는 MERGE 사용직접 지원
문법 간결성MERGE 문 사용 시 복잡할 수 있음간단하고 직관적
성능 최적화튜닝 필요 (서브쿼리 비효율성)표준 SQL로 간단히 최적화 가능
호환성표준 SQL 준수SQL Server 등과 유사한 문법

5. JOIN UPDATE 사용 시 주의점 및 최적화 팁 🚀

1) WHERE 조건 필수 확인

WHERE 절을 생략하면 전체 데이터가 갱신되므로 큰 실수를 초래할 수 있습니다.

2) 인덱스 최적화

조인에 사용되는 컬럼에는 반드시 인덱스를 생성해 성능을 높이세요.

3) 데이터 검증

업데이트 전후 데이터를 비교하여 정확성을 확인해야 합니다.
예시:

SELECT COUNT(*) FROM 테이블A WHERE 조건;
SELECT COUNT(*) FROM 테이블B WHERE 조건;

4) 트랜잭션 관리

대규모 업데이트는 COMMITROLLBACK을 적절히 사용해 안정성을 확보하세요.


결론: Tibero와 Oracle, 상황에 맞는 JOIN UPDATE 활용하기! 🎉

Tibero와 Oracle 모두 JOIN UPDATE를 구현하는 방식이 다르지만, 각자의 장단점이 있습니다. Tibero는 직관적인 문법으로 간단히 작업할 수 있는 반면, Oracle은 다양한 옵션을 제공하여 복잡한 작업에 적합합니다.


🌟 “데이터베이스도 전략적으로 관리하세요! Tibero와 Oracle의 JOIN UPDATE를 활용해 데이터 관리를 마스터해보세요. 🧠✨”

더 많은 개발 팁을 확인하시려면 WOOYIT 테크 블로그 개발 페이지를 방문해보세요.

[2023]Tibero 사용자 및 권한 설정 및 테스트 과정

Tibero 사용자 및 권한 설정
Tibero 사용자 및 권한 설정

이 포스트에서는 Tibero 사용자 및 권한 설정에 대한 과정과 테스트하는 방법을 설명하겠습니다.

Tibero 사용자 및 권한 설정 과정

1. 테이블 스페이스 생성

먼저, 테이블 스페이스를 생성해야 합니다. 이 예시에서는 TEST_TBLTEST_IDX라는 두 개의 테이블 스페이스를 생성합니다.

CREATE TABLESPACE TEST_TBL
    DATAFILE '/tibero_naqs/tbdata/test_tbl.tbf' SIZE 100M AUTOEXTEND OFF
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
    
CREATE TABLESPACE TEST_IDX
    DATAFILE '/tibero_naqs/tbdata/test_idx.tbf' SIZE 100M AUTOEXTEND OFF
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

2. 사용자 추가

다음으로, 새로운 사용자를 추가합니다. 이 예시에서는 TEST이라는 사용자를 추가하며, 비밀번호도 TEST으로 설정하였습니다.

CREATE USER TEST
    IDENTIFIED BY TEST
    DEFAULT TABLESPACE TEST_TBL;

3. 사용자 삭제

아래와 같은 방법으로 데이터베이스에서 사용자를 삭제할 수 있습니다.

DROP USER [유저명] cascade;

예를 들어 TEST이라는 사용자를 삭제하려면 다음과 같이 입력합니다.

DROP USER TESTcascade;

4. 권한 설정

데이터베이스에 연결하는 권한 및 테이블 조회 권한을 부여합니다.

GRANT RESOURCE,CONNECT TO TEST;
GRANT SELECT ANY TABLE TO TEST;

사용자 TEST에게서 DBA 권한을 제거합니다.

REVOKE DBA FROM TEST;

DBA 권한 등록을 조회하려면 다음과 같이 입력합니다.

SELECT *
     FROM DBA_SYS_PRIVS
    WHERE GRANTEE = 'TEST';

5. 통계 데이터 생성

통계 데이터는 성능 튜닝을 위해 필요합니다. 아래와 같이 TEST 사용자에 대한 통계 데이터를 생성 및 삭제할 수 있습니다.

EXEC DBMS_STATS.DELETE_SCHEMA_STATS(ownname => 'TEST', no_invalidate =>false);
EXEC DBMS_STATS.GATHER_SCHEMA_STATS (ownname => 'TEST',method_opt => 'FOR ALL COLUMNS SIZE 10',cascade => true, no_invalidate => false);

6. 권한 설정

TIBERO에 부여된 권한과 동일하게 EXAM에 권한을 부여합니다. 이를 위해, 먼저 기존 권한을 조회하고, 그러한 권한을 TEST에 부여합니다.

begin 

for X in (
select 'GRANT '|| PRIVILEGE || ' TO TEST;' AS GRANT1
FROM DBA_SYS_PRIVS
    WHERE GRANTEE = 'TIBERO'
) 
loop
execute immediate x.GRANT1;
end loop;
 end;

더욱 구체적인 권한을 TEST에 부여하려면 아래의 예시를 참고하세요.

GRANT DROP USER TO TEST;
GRANT LOCK ANY TABLE TO TEST;
GRANT SELECT ANY TABLE TO TEST;
GRANT INSERT ANY TABLE TO TEST;
GRANT UPDATE ANY TABLE TO TEST;
GRANT DELETE ANY TABLE TO TEST;
GRANT SYSDBA TO TEST;
GRANT CREATE VIEW TO TEST;
GRANT SELECT ANY SEQUENCE TO TEST;
GRANT GRANT ANY ROLE TO TEST;
GRANT EXECUTE ANY PROCEDURE TO TEST;
GRANT DROP ANY TRIGGER TO TEST;
GRANT GRANT ANY PRIVILEGE TO TEST;
GRANT GRANT ANY OBJECT PRIVILEGE TO TEST;
GRANT EXECUTE ANY LIBRARY TO TEST;
GRANT CREATE ANY TABLE TO TEST;

7. 동의어 설정(Synonym)

동의어는 객체를 참조할 때 다른 이름을 사용하여 간편하게 참조할 수 있도록 해줍니다. 아래는 동의어 생성에 대한 예시입니다.

GRANT CREATE SYNONYM TO TEST;
GRANT CREATE PUBLIC SYNONYM TO TEST;
GRANT DROP PUBLIC SYNONYM TO TEST;

CREATE SYNONYM e2 FOR emp2 ;
CREATE PUBLIC SYNONYM d2 FOR department ;

동의어를 조회하거나 삭제하려면 아래와 같이 입력하세요.

SELECT * FROM user_synonyms ;
SELECT * FROM DBA_SYNONYMS;
DROP SYNONYM E2;

8. 기타

사용자의 비밀번호를 변경하거나, 특정 권한을 제거하려면 아래와 같이 입력하세요.

ALTER USER [유저명] IDENTIFIED BY [변경할 비밀번호];
REVOKE CREATE SESSION FROM [유저명];

이 가이드는 Tibero 사용자 및 권한 설정 및 테스트에 대한 기본적인 개요를 제공합니다. 더 자세한 정보는 Tibero의 공식 문서를 참조하세요.

이상으로 Tibero 사용자 및 권한 설정에 대한 포스팅을 마치겠습니다.

[우영이네]

[wooyung’s IT 블로그]

[2023] Linux Tibero 데이터베이스 설치 및 자동 시작 설정 가이드

Tibero 데이터베이스

리눅스 환경에서 Tibero 데이터베이스를 설치하고 설정하는 방법에 대한 자세한 가이드를 제공합니다. 

Tibero는 TmaxSoft가 개발한 대형 엔터프라이즈 데이터베이스 시스템으로 Oracle과 완벽하게 호환되는 솔루션입니다.

Tibero 데이터베이스 설치 및 설정 과정

1. Tibero 설치 파일 다운로드

Tibero 설치 파일은 TmaxSoft의 공식 홈페이지에서 다운로드 받을 수 있습니다. 원하는 Tibero 버전을 선택하고 다운로드하면 됩니다.

2. 파일을 리눅스 서버로 이동

다운로드한 파일은 USB를 이용하여 리눅스 서버로 옮깁니다. 리눅스에서 USB 디바이스를 마운트하려면, 아래와 같은 명령어를 사용합니다.

mkdir /mnt/usb
fdisk -l
mount /dev/sda1 /mnt/usb
cp /mnt/usb/<파일명> ~/
3. 압축 해제

리눅스에서 파일 압축을 해제하려면 tar 명령을 사용합니다.

tar -xvf <파일명>
4. 환경 설정(.bashrc)

환경 설정 파일(.bashrc)을 업데이트하여 Tibero의 환경 변수를 설정합니다.

cd
vi .bashrc

이후, 아래와 같이 내용을 입력합니다.

export TB_HOME=/home/사용자명/추가 경로/tibero6
export TB_SID=tibero
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
5. Tibero 서비스 스크립트 작성 및 등록

Tibero 서비스를 시스템에 등록하려면, 아래와 같이 서비스 유닛 파일을 작성하고 등록합니다.

sudo vi /etc/systemd/system/tibero.service

이후, 아래와 같은 내용을 입력하고 저장합니다.

[Unit]
Description=The Tibero Database Service
After=syslog.target network.target

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=forking
RemainAfterExit=yes
Restart=no
ExecStop=/bin/bash -c '/root/tibero6/scripts/stop.sh'
ExecStart=/bin/bash -c '/root/tibero6/scripts/start.sh'
User=root

[Install]
WantedBy=multi-user.target
6. Tibero 서비스 권한 설정 및 실행

작성한 서비스 스크립트에 적절한 권한을 부여하고, systemd 데몬을 다시 시작하여 새로운 서비스를 인식하도록 합니다. 마지막으로 Tibero 서비스를 자동으로 시작하도록 설정합니다.

sudo chmod 644 /etc/systemd/system/tibero.service
sudo systemctl daemon-reload
sudo systemctl enable tibero.service
7. 서비스 스크립트 작성

Tibero를 시작하고 중지하는 스크립트를 작성합니다.

start.sh

#!/bin/bash
su - root -c "tbdown clean << __EOF__ y __EOF__"
su - root -c "tbboot"
exit 0

stop.sh

#!/bin/bash
su - root -c "tbdown immediate"
exit

이상으로 Tibero 데이터베이스의 설치 및 자동 시작 설정에 대한 가이드를 마칩니다. 이를 통해 리눅스 환경에서 Tibero 데이터베이스를 운영하는 데 필요한 기본적인 지식을 얻을 수 있었길 바랍니다.

리눅스 환경에서 데이터베이스를 운영하려면 꾸준한 관리와 튜닝이 필요하며, 그 과정에서 발생하는 문제 해결에 필요한 리눅스 기본 지식과 데이터베이스 지식을 계속해서 키워가는 것이 중요합니다. 그 과정에서 이 글이 도움이 되길 바랍니다.

[우영이네]

[wooyung’s IT 블로그]