Skip to content

명령줄

machbase-neo serve

machbase-neo 서버 프로세스를 시작합니다.

플래그

일반 플래그

flagdesc
--host수신 네트워크 주소(기본값 127.0.0.1)
예) --host 0.0.0.0
-c, --config구성 파일 경로
예) --config /data/machbase-neo.conf
--pidPID 저장 파일 경로
예) --pid /data/machbase-neo.pid
--data데이터베이스 경로(기본값 ./machbase_home)
예) --data /data/machbase
--file파일 저장 경로(기본값 .)
예) --file /data/files
--backup-dir백업 디렉터리 경로(기본값 ./backups)
예) --backup-dir /data/backups Since v8.0.26
--pref환경 설정 디렉터리 경로
(기본값 ~/.config/machbase)
--preset데이터베이스 프리셋 auto, fog, edge (기본값 auto)
예) --preset edge

데이터베이스 세션 플래그

Since v8.5.5
flagdesc
--max-open-conn데이터베이스에 대한 최대 오픈 연결 수.
(기본값 -1 무제한)
--max-idle-conn연결 풀의 최대 유휴 연결 수.
<=0이면 유휴 연결을 유지하지 않음.
(기본값 2)
--conn-max-lifetime연결을 재사용할 수 있는 최대 시간.
만료된 연결은 재사용 전에 지연 종료될 수 있음.
<= 0이면 연결 시간로 인한 종료 없음. (기본값 10m)
--conn-max-idletime연결이 유휴 상태일 수 있는 최대 시간.
만료된 연결은 재사용 전에 지연 종료될 수 있음.
<= 0이면 유휴 시간으로 인한 종료 없음. (기본값 1m)

HTTP 플래그

Since v8.0.43
flagdefaultdesc
--http-linger-1HTTP 소켓 옵션. -1은 SO_LINGER 비활성화, >=0은 SO_LINGER 설정
--http-readbuf-size0HTTP 소켓 읽기 버퍼 크기. 0은 시스템 기본값 사용
--http-writebuf-size0HTTP 소켓 쓰기 버퍼 크기. 0은 시스템 기본값 사용
--http-debugfalseHTTP 디버그 로그 활성화
--http-debug-latency"0"지정한 시간보다 오래 걸린 요청만 로그 (예: “3s”). “0"은 모든 요청 기록
--http-allow-statz/db/statz API 접근을 허용할 출발지 IP(쉼표 구분). 기본은 127.0.0.1만 허용

로그 플래그

flagdefaultdesc
--log-filename- (stdout)로그 파일 경로
예) --log-filename /data/logs/machbase-neo.log
--log-levelINFO로그 레벨: TRACE, DEBUG, INFO, WARN, ERROR
예) --log-level INFO
--log-appendtrue기존 로그 파일에 이어쓰기
--log-rotate-schedule@midnight로그 롤링 스케줄
--log-max-size10로그 파일 최대 크기(MB)
--log-max-backups1백업 로그 파일 최대 개수
--log-max-age7백업 파일 보관 일수
--log-compressfalse백업 파일 gzip 압축
--log-time-utcfalse로그 타임스탬프를 UTC로 기록

리스너 플래그

flagdefaultdesc
--shell-port5652SSH 수신 포트
--mqtt-port5653MQTT 수신 포트
--mqtt-sock/tmp/machbase-neo-mqtt-5653.sockMQTT 유닉스 소켓
--http-port5654HTTP 수신 포트
--http-sock/tmp/machbase-neo-http-5654.sockHTTP 유닉스 소켓
--mach-port5656Machbase 네이티브 수신 포트
📌
중요
--host 기본값은 루프백 주소이므로 원격 호스트에서 machbase-neo에 접근할 수 없습니다.
원격 클라이언트의 네트워크 연결을 허용하려면 --host <host-address> 또는 --host 0.0.0.0으로 설정하십시오.

플래그 없이 machbase-neo serve를 실행하면,

$ machbase-neo serve

다음 명령과 동일합니다.

$ machbase-neo serve --host 127.0.0.1 --data ./machbase_home --file . --preset auto

machbase-neo shell

machbase-neo 셸을 실행합니다. 다른 인수가 없으면 대화형 모드로 시작합니다.

플래그

flag (long)defaultdesc
--server127.0.0.1:5654machbase-neo HTTP 주소
예) --server 127.0.0.1:5654
환경 변수: NEOSHELL_HOST
--usersys사용자 이름
환경 변수: NEOSHELL_USER
--passwordmanager비밀번호
환경 변수: NEOSHELL_PASSWORD

machbase-neo 셸은 시작할 때 OS 환경 변수 NEOSHELL_HOST, NEOSHELL_USER, NEOSHELL_PASSWORD에서 서버 주소, 사용자 이름과 비밀번호를 찾습니다. --server, --user, --password 플래그를 지정하면 환경 변수 대신 해당 값을 사용합니다.

사용자 이름과 비밀번호의 우선순위

명령줄 플래그

--server, --user, --password를 지정했다면 해당 값을 사용합니다.

환경 변수

$NEOSHELL_HOST(Windows는 %NEOSHELL_HOST%)가 설정되어 있으면 해당 값을 서버 주소로 사용합니다.

$NEOSHELL_USER(Windows는 %NEOSHELL_USER%)가 설정되어 있으면 해당 값을 사용자 이름으로 사용합니다.

$NEOSHELL_PASSWORD(Windows는 %NEOSHELL_PASSWORD%)가 설정되어 있으면 해당 값을 비밀번호로 사용합니다.

기본값

두 방법 중 어느 쪽으로도 지정하지 않은 값은 셸이 기본값(127.0.0.1:5654, SYS, manager)과 함께 입력을 요청합니다. Enter 키를 누르면 기본값을 사용합니다.

실무 예시

보안을 위해 아래처럼 즉석 환경 변수를 사용하는 것을 권장합니다.

$ NEOSHELL_PASSWORD='my-secret' machbase-neo shell --user sys

--password 플래그를 사용하면 아래와 같이 단순한 ps 명령으로 비밀번호가 노출될 수 있다는 점에 주의하십시오.

$ machbase-neo shell --user sys --password manager
$ ps -aef |grep machbase-neo
  501 13551  3598   0  9:33AM ttys000    0:00.07 machbase-neo shell --user sys --password manager

쿼리 실행

machbase-neo» select binary_signature from v$version;
┌────────┬──────────────────────────────────────────────────┐
│ ROWNUM │ BINARY_SIGNATURE                                 │
├────────┼──────────────────────────────────────────────────┤
│      1 │ 8.7.0.official-DARWIN-ARM_M1-64-release-standard │
└────────┴──────────────────────────────────────────────────┘
a row selected.

테이블 생성

machbase-neo» create tag table if not exists example (
  name varchar(20) primary key,
  time datetime basetime,
  value double summarized
);
table created.

스키마 확인

machbase-neo» desc example;
┌────────┬────────┬──────────┬────────┬────────────┬───────┐
│ ROWNUM │ COLUMN │ TYPE     │ LENGTH │ FLAG       │ INDEX │
├────────┼────────┼──────────┼────────┼────────────┼───────┤
│      1 │ NAME   │ varchar  │     20 │ tag name   │       │
│      2 │ TIME   │ datetime │     31 │ base time  │       │
│      3 │ VALUE  │ double   │     17 │ summarized │       │
└────────┴────────┴──────────┴────────┴────────────┴───────┘

데이터 삽입

machbase-neo» insert into example values('tag0', to_date('2021-08-12'), 100);
a row inserted.

데이터 조회

machbase-neo» select * from example;
┌────────┬──────┬─────────────────────┬───────┐
│ ROWNUM │ NAME │ TIME                │ VALUE │
├────────┼──────┼─────────────────────┼───────┤
│      1 │ tag0 │ 2021-08-12 00:00:00 │   100 │
└────────┴──────┴─────────────────────┴───────┘
a row selected.

테이블 삭제

machbase-neo» drop table example;
table dropped.

서브 커맨드

explain

구문: explain [--full] <sql>

SQL 실행 계획을 보여줍니다.

machbase-neo» explain select * from example where name = 'tag.1';
 PROJECT
  TAG READ (RAW)
   KEYVALUE INDEX SCAN (_EXAMPLE_DATA_0)
    [KEY RANGE]
     * IN ()
   VOLATILE INDEX SCAN (_EXAMPLE_META)
    [KEY RANGE]
     * name = 'tag.1'

export

Usage: export [options] <table>

Arguments:
  table - table name to read

Options:
  -h, --help         Show this help message
  -o, --output       output file (default:'-' stdout) (default: -)
      --compress     compression type (none, gzip) (default: none)
  -f, --format       output format (box, csv, tsv, json, ndjson) (default: csv)
  -t, --timeformat   time format [ns|us|ms|s|<timeformat>] (default: ns)
      --tz           time zone for handling datetime (default: time zone) (default: local)
  -p, --precision    set precision of float value to force round (default: -1)
      --[no-]header  print header (default: false)
      --null-value   string to represent null values (default: )
      --[no-]silent  suppress progress output (default: false)

import

Usage: import [options] <table>

Arguments:
  table - table name to read

Options:
  -h, --help          Show this help message
  -i, --input         input file (default:'-' stdin) (default: -)
      --compress      compression type (none, gzip) (default: none)
  -f, --format        input format (csv, tsv, ndjson) (default: csv)
  -t, --timeformat    time format [ns|us|ms|s|<timeformat>] (default: ns)
      --tz            time zone for handling datetime (default: time zone) (default: local)
      --header        header option [skip|columns|none] (default: none)
      --null-value    string to represent null values (default: NULL)
      --[no-]dry-run  run in dry mode (default: false)
      --[no-]verbose  verbose mode, it works only with --dry-run (default: false)

show info

서버 정보를 표시합니다.

machbase-neo» show info;
┌────────┬────────────────────┬──────────────────────────────┐
│ ROWNUM │ NAME               │ VALUE                        │
├────────┼────────────────────┼──────────────────────────────┤
│      1 │ build.engine       │ static_standard_darwin_arm64 │
│      2 │ build.hash         │ b55f8170                     │
│      3 │ build.timestamp    │ 2026-09-10T05:43:13          │
│      4 │ build.version      │ v8.7.1-snapshot              │
│      5 │ mem.frees          │ 397,853,948                  │
│      6 │ mem.heap_alloc     │ 32.8MB                       │
│      7 │ mem.heap_in_use    │ 40.0MB                       │
│      8 │ mem.heap_sys       │ 547.9MB                      │
│      9 │ mem.lives          │ 253,315                      │
│     10 │ mem.mallocs        │ 398,107,263                  │
│     11 │ mem.stack_in_use   │ 1.5MB                        │
│     12 │ mem.stack_sys      │ 1.5MB                        │
│     13 │ mem.sys            │ 564.2MB                      │
│     14 │ runtime.arch       │ arm64                        │
│     15 │ runtime.goroutines │ 32                           │
│     16 │ runtime.os         │ darwin                       │
│     17 │ runtime.pid        │ 35507                        │
│     18 │ runtime.processes  │ 10                           │
│     19 │ runtime.uptime     │ 6 days 4h 4m 42s             │
└────────┴────────────────────┴──────────────────────────────┘

show ports

서버의 인터페이스 포트를 표시합니다.

machbase-neo» show ports;
┌────────┬────────────┬─────────────────────────────────────────┐
│ ROWNUM │ PORT       │ ADDRESS                                 │
├────────┼────────────┼─────────────────────────────────────────┤
│      1 │ http       │ tcp://127.0.0.1:5654                    │
│      2 │ http       │ unix:///tmp/machbase-neo-http-5654.sock │
│      3 │ mach       │ tcp://127.0.0.1:5656                    │
│      4 │ mqtt       │ tcp://127.0.0.1:5653                    │
│      5 │ mqtt       │ unix:///tmp/machbase-neo-mqtt-5653.sock │
│      6 │ servicectl │ tcp://127.0.0.1:62978                   │
│      7 │ shell      │ tcp://127.0.0.1:5652                    │
└────────┴────────────┴─────────────────────────────────────────┘

show tables

구문: show tables [FROM <database>[.<user>]] [LIKE <pattern>] [WITH ALL]

Since v8.7.0

show 명령은 일부 하위 명령에서 FROM과 LIKE 절을 지원합니다. FROM <database>[.<user>]는 조회할 데이터베이스와 사용자를 지정하고, LIKE <pattern>은 이름 패턴으로 결과를 필터링합니다. LIKE 패턴은 작은따옴표나 큰따옴표로 감싼 SQL LIKE 패턴을 사용하며, %는 0개 이상의 문자, _는 1개의 문자와 일치합니다. FROM 대신 IN을 사용할 수 있습니다. WITH ALL은 숨김 항목을 포함합니다.

machbase-neo» show tables from MACHBASEDB.SYS like 'TAG%' with all;
machbase-neo» show indexes like 'IDX_%';
commandFROMLIKEWITH ALLLIKE 적용 대상
show tablesOOO테이블 이름
show indexesOO-인덱스 이름
show table [-a] <table>O---
show index <index>O---
show tags <table> [tag...]OO-태그 이름
show storageOO-테이블 이름
show table-usageOO-테이블 이름
show lsmOO-테이블 이름
show indexgapOO-테이블 이름
show tagindexgapOO-테이블 이름
show rollupgapOO-테이블 이름
show users-O-사용자 이름
show databases-O-데이터베이스 이름
show meta-tables-O-테이블 이름
show virtual-tables-O-테이블 이름
show sessions-O-사용자 이름
show statements-O-쿼리 텍스트

show table, show index, show tags 처럼 대상 이름을 인자로 받는 명령에서는 <database>.<user>.<name> 형식의 한정 이름과 FROM 절을 동시에 사용할 수 없습니다. show tags에서 명시적인 태그 이름을 인자로 지정한 경우에는 LIKE 절을 함께 사용할 수 없습니다.

테이블 목록을 표시합니다. WITH ALL을 지정하면 숨김 테이블이 포함됩니다.

machbase-neo» show tables;
┌────────┬───────────────┬───────────┬────────────┬──────────┬────────────┬────────────┐
│ ROWNUM │ DATABASE_NAME │ USER_NAME │ TABLE_NAME │ TABLE_ID │ TABLE_TYPE │ TABLE_FLAG │
├────────┼───────────────┼───────────┼────────────┼──────────┼────────────┼────────────┤
│      1 │ MACHBASEDB    │ SYS       │ EXAMPLE    │      770 │ Tag        │            │
└────────┴───────────────┴───────────┴────────────┴──────────┴────────────┴────────────┘

show table

구문: show table [-a] <table>

테이블의 컬럼 목록을 표시합니다. -a를 지정하면 숨김 컬럼도 함께 표시됩니다.

machbase-neo» show table -a example;
┌────────┬────────┬──────────┬────────┬────────────┬───────┐
│ ROWNUM │ COLUMN │ TYPE     │ LENGTH │ FLAG       │ INDEX │
├────────┼────────┼──────────┼────────┼────────────┼───────┤
│      1 │ NAME   │ varchar  │     20 │ tag name   │       │
│      2 │ TIME   │ datetime │     31 │ base time  │       │
│      3 │ VALUE  │ double   │     17 │ summarized │       │
│      4 │ _RID   │ long     │     20 │            │       │
└────────┴────────┴──────────┴────────┴────────────┴───────┘

show indexes

구문: show indexes [FROM <database>[.<user>]] [LIKE <pattern>]

인덱스 목록을 표시합니다. FROM 절로 조회 범위를 지정하고 LIKE 절로 인덱스 이름을 필터링할 수 있습니다.

machbase-neo» show indexes from MACHBASEDB.SYS like 'TAG%';

show meta-tables

machbase-neo» show meta-tables;
┌────────┬─────────┬────────────────────────┬───────┐
│ ROWNUM │      ID │ NAME                   │ TYPE  │
├────────┼─────────┼────────────────────────┼───────┤
│      1 │ 1000019 │ M$SYS_TABLESPACES      │ Fixed │
│      2 │ 1000023 │ M$SYS_TABLESPACE_DISKS │ Fixed │
│      3 │ 1000049 │ M$SYS_TABLES           │ Fixed │
│      4 │ 1000052 │ M$SYS_VIEWS            │ Fixed │
│      5 │ 1000054 │ M$TABLES               │ Fixed │
│      6 │ 1000056 │ M$SYS_COLUMNS          │ Fixed │
......

show virtual-tables

machbase-neo» show virtual-tables;
┌────────┬─────────┬─────────────────────────────────────────┬───────┐
│ ROWNUM │      ID │ NAME                                    │ TYPE  │
├────────┼─────────┼─────────────────────────────────────────┼───────┤
│      1 │     769 │ V$EXAMPLE_STAT                          │ Fixed │
│      2 │ 1000000 │ V$SYSSTAT                               │ Fixed │
│      3 │ 1000001 │ V$SYSTIME                               │ Fixed │
│      4 │ 1000002 │ V$SYSMEM                                │ Fixed │
│      5 │ 1000003 │ V$PROPERTY                              │ Fixed │
│      6 │ 1000004 │ V$MUTEX                                 │ Fixed │
......

show users

machbase-neo» show users;
┌────────┬─────────┬──────┐
│ ROWNUM │ USER_ID │ NAME │
├────────┼─────────┼──────┤
│      1 │       1 │ SYS  │
└────────┴─────────┴──────┘

show license

machbase-neo» show license;
┌────────┬──────────┬───────────┬──────────┬─────────┬──────────────┬─────────────────────┬────────────┬────────┐
│ ROWNUM │ ID       │ TYPE      │ CUSTOMER │ PROJECT │ COUNTRY_CODE │ INSTALL_DATE        │ ISSUE_DATE │ STATUS │
├────────┼──────────┼───────────┼──────────┼─────────┼──────────────┼─────────────────────┼────────────┼────────┤
│      1 │ 00000000 │ COMMUNITY │ NONE     │ NONE    │ KR           │ 2026-09-10 10:06:19 │ 20991231   │ VALID  │
└────────┴──────────┴───────────┴──────────┴─────────┴──────────────┴─────────────────────┴────────────┴────────┘

session list

구문: session list Since v8.0.17

접속 중인 세션 목록은 show sessions로 조회합니다.

machbase-neo» show sessions;
┌────────┬──────┬───────────┬─────────┬─────────────────────────┬──────┬───────────┬─────────────┐
│ ROWNUM │   ID │ USER_NAME │ USER_ID │ LOGIN_TIME              │ TYPE │ USER_IP   │ MAX_QPX_MEM │
├────────┼──────┼───────────┼─────────┼─────────────────────────┼──────┼───────────┼─────────────┤
│      1 │ 2484 │ SYS       │       1 │ 2026-09-17 17:35:01.139 │ CLI  │ 127.0.0.1 │ 1.1GB       │
└────────┴──────┴───────────┴─────────┴─────────────────────────┴──────┴───────────┴─────────────┘

session kill

구문: session kill <ID> Since v8.0.17

session stat

구문: session stat Since v8.0.17

machbase-neo» session stat;
┌────────┬──────────────────────┬───────┐
│ ROWNUM │ METRIC               │ VALUE │
├────────┼──────────────────────┼───────┤
│      1 │ OPEN CONN            │     1 │
│      2 │ IDLE                 │     1 │
│      3 │ IN USE               │     0 │
│      4 │ MAX IDLE CLOSED      │   268 │
│      5 │ MAX IDLE TIME CLOSED │   410 │
│      6 │ MAX LIFETIME CLOSED  │   852 │
│      7 │ WAIT COUNT           │     0 │
│      8 │ WAIT DURATION (AVG)  │    0s │
└────────┴──────────────────────┴───────┘

desc

구문: desc [-a] <table>

테이블 구조를 확인합니다.

machbase-neo» desc example;
┌────────┬────────┬──────────┬────────┬────────────┬───────┐
│ ROWNUM │ COLUMN │ TYPE     │ LENGTH │ FLAG       │ INDEX │
├────────┼────────┼──────────┼────────┼────────────┼───────┤
│      1 │ NAME   │ varchar  │     20 │ tag name   │       │
│      2 │ TIME   │ datetime │     31 │ base time  │       │
│      3 │ VALUE  │ double   │     17 │ summarized │       │
└────────┴────────┴──────────┴────────┴────────────┴───────┘

machbase-neo restore

구문: machbase-neo restore --data <machbase_home_dir> <backup_dir> Since v8.0.17

백업에서 데이터베이스를 복구합니다.

$ machbase-neo restore --data <machbase home dir>  <backup dir>

machbase-neo version

버전 및 엔진 정보를 보여 줍니다.

machbase-neo_version

machbase-neo gen-config

기본 설정 템플릿을 출력합니다.

$ machbase-neo gen-config ↵

define DEF {
    LISTEN_HOST       = flag("--host", "127.0.0.1")
    SHELL_PORT        = flag("--shell-port", "5652")
    MQTT_PORT         = flag("--mqtt-port", "5653")
    HTTP_PORT         = flag("--http-port", "5654")
......
최근 업데이트