1. GritDB 한눈에 보기
이 장을 마치면: GritDB가 어떤 프로세스로 돌고, 데이터와 로그가 어디에 쌓이는지 그릴 수 있다.
소요: 읽기 10분
1.1 구성
GritDB는 PostgreSQL 17.11과 GritDB 엔진으로 이루어진다. 프로세스 4개가 한 묶음으로 뜨고 내려간다.
gritdb-start / gritdb-stop ← 엔지니어가 쓰는 기동·정지 명령은 이 둘뿐
│
▼
grit_admin 감독 프로세스: 아래 셋을 순서대로 띄우고 지켜본다
├── postgres PostgreSQL 17.11 + gritsurfer 확장 — SQL 접속 지점 (포트 5432)
├── grit_catalog_process GritDB 카탈로그 — 등록 테이블 · cold file 정보를 읽고 쓴다
└── grit_surfer_process GritDB 엔진 — 등록 테이블의 변경분 반영 · cold file 관리
- 기동 순서:
grit_admin→postgres→ (PostgreSQL 준비 완료) →grit_catalog_process→grit_surfer_process gritdb-stop하나로 넷 다 내려간다.- 사용자와 응용 프로그램은 일반 PostgreSQL처럼 포트 5432로 접속한다.
- GritDB가 관리할 테이블은 따로 등록한다(4장 4.4).
1.2 디렉토리 지도
~/gritdb1/ 설치 경로
├── bin/ gritdb-start · gritdb-stop · psql · pg_isready 등 명령
├── datafiles/ ★ 데이터 전체 — 반드시 한 묶음으로 다룬다
│ ├── pgdata/ PostgreSQL 데이터 디렉토리 (postgresql.conf 포함)
│ ├── checkpoint/ unify checkpoint (GritDB 엔진이 영구 반영을 마친 WAL 위치 · PostgreSQL checkpoint 와 다르다)
│ ├── queue/ GritDB 내부 대기열
│ └── cold_file/ cold file (GritDB 엔진이 분석 조회용으로 열 단위로 저장한 파일)
├── log/ 모든 로그 (설치 로그 포함)
├── run/ 실행 중 상태 파일 (pid · socket · lock)
├── config/ GritDB 엔진 설정 (grit_*.config · Admin 5장)
├── docs/ 릴리스 노트
├── etc/ · lib/ · share/ 설정 템플릿 · 라이브러리 · 제품 정보 (share/gritdb/manifest.json)
├── include/ · licenses/ 공개 헤더 · 라이선스
└── .gritdb_installed 설치 완료 표식 — 지우지 않는다
- 상태는
datafiles/,log/,run/에 쌓인다. 나머지는 설치 파일이다. - ⚠
datafiles/안의 디렉토리는 서로 맞물려 있다. 일부만 지우거나 바꾸면 기동이 불가능해진다(6장).
1.3 Oracle · Tibero 경험자를 위한 대응표
| 익숙한 것 | GritDB |
|---|---|
ORACLE_HOME, TB_HOME |
설치 경로 ~/gritdb1 |
startup, tbboot |
gritdb-start |
shutdown normal, tbdown |
gritdb-stop — 정상 정지. 세션이 남으면 즉시 정지로 넘어간다 |
shutdown abort, tbdown abort |
gritdb-stop --quick — 즉시 정지, 다음 기동 때 복구 수행 |
| alert log | log/grit_admin_main.log와 log/postgresql.log |
| 데이터 파일과 컨트롤 파일 | datafiles/(한 묶음) |
sqlplus, tbsql |
psql |
1.4 전체 흐름
2장 준비·점검 ──▶ 3장 설치 ──▶ 4장 기동·확인·정지 ──▶ 5장 매일 점검
│
6장 금지 사항 (항상 지킨다) ◀───┤
7장 문제 대응 (필요할 때) ◀─────┘