All pages
1 of 8

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Docker-compose / Podman-compose ν™˜κ²½

μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° 섀정기동 / 둜그 확인 / μ’…λ£Œ / μ΄ˆκΈ°ν™”

기동 / 둜그 확인 / μ’…λ£Œ / μ΄ˆκΈ°ν™”

Docker-compose 및 Podman-compose ν™˜κ²½μ—μ„œ SysMaster DB 8.3λ₯Ό 기동, 둜그 확인, μ’…λ£Œ, μ΄ˆκΈ°ν™”ν•˜λŠ” 방법이닀.

1. 기동

1.1. SysMaster DB ν™˜κ²½ λ³€μˆ˜ μ„€μ •

export SYSMASTERDB_HOME={SysMasterDB_Home_Path}

인자
μ„€λͺ…

{SysMasterDB_Home_Path}

docker-compose.yml 파일이 μœ„μΉ˜ν•œ 디렉터리 경둜

1.2. SYSMASTERDB_HOME을 PATH에 μΆ”κ°€

export PATH=$PATH:$SYSMASTERDB_HOME

1.3. λΌμ΄μ„ μŠ€ 파일 μ„ΈνŒ…

μ§€μ •λœ 경둜 ν•˜μœ„μ— λ°œκΈ‰λ°›μ€ λΌμ΄μ„ μŠ€ νŒŒμΌμ„ λ°°μΉ˜ν•œλ‹€. λΌμ΄μ„ μŠ€ 파일λͺ…κ³Ό κ²½λ‘œλŠ” μ•„λž˜μ™€ κ°™μœΌλ©°, λ³€κ²½ λΆˆκ°€λŠ₯ν•˜λ‹€.

  • λΌμ΄μ„ μŠ€ 파일λͺ…

    • sysmaster-db-license.xml

  • λΌμ΄μ„ μŠ€ 경둜

    • $SYSMASTERDB_HOME/license

$SYSMASTERDB_HOME 경둜 ν•˜μœ„μ— license 디렉토리가 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 경우, ν•΄λ‹Ή 디렉토리λ₯Ό 직접 생성해쀀 ν›„ λΌμ΄μ„ μŠ€ 파일(sysmaster-db-license.xml)을 λ„£μ–΄μ£Όλ©΄ λœλ‹€.

λΆ€νŒ…μ΄ μ™„λ£Œλœ 이후에 둜그인과 ν”„λ‘œκ·Έλž¨ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. λΆ€νŒ… μ™„λ£ŒλŠ” SDM λ‘œκ·Έμ—μ„œ μ•„λž˜μ™€ 같은 둜그λ₯Ό 톡해 확인할 수 μžˆλ‹€.


.env 파일의 둜그 κ΄€λ ¨ νŒŒλΌλ―Έν„° 섀정을 톡해 λ‘œκ·Έκ°€ μ €μž₯될 경둜λ₯Ό μ§€μ •ν•  수 μžˆλ‹€. default 둜그 κ²½λ‘œλŠ” ./logsμ΄λ―€λ‘œ docker-compose.yml 파일이 μžˆλŠ” 디렉터리에 logs 폴더가 μžλ™μœΌλ‘œ μƒμ„±λ˜λ©°, μ—¬κΈ°μ„œ 둜그 νŒŒμΌμ„ 확인할 수 μžˆλ‹€.


SysMaster DB 8.3 기동을 μœ„ν•œ ν™˜κ²½ λ³€μˆ˜ 및 PATHκ°€ μ„€μ •λœ μƒνƒœμ—μ„œ μ•„λž˜μ˜ λͺ…령을 μˆ˜ν–‰ν•˜λ©΄ λͺ¨λ“  μ„œλΉ„μŠ€κ°€ 제거되고, SysMaster DB 8.3κ°€ μ’…λ£Œλœλ‹€. μ΄λ•Œ SysMaster DB 8.3λ₯Ό μ’…λ£Œν•΄λ„ METADB_PATH와 REPODB_PATH에 μƒμ„±λœ νŒŒμΌμ€ μœ μ§€λ˜λ―€λ‘œ, SysMaster DB 8.3λ₯Ό λ‹€μ‹œ κΈ°λ™ν•˜λ©΄ μ’…λ£Œ μ „κ³Ό λ™μΌν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.


METADB_PATH와 REPODB_PATH 디렉터리λ₯Ό μ‚­μ œν•œ ν›„ SysMaster DB 8λ₯Ό λ‹€μ‹œ κΈ°λ™ν•˜λ©΄ 졜초 μ„€μΉ˜ μƒνƒœμ™€ λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€. 단, 이전에 μ €μž₯ν•œ λ°μ΄ν„°λŠ” μ‚¬μš©ν•  수 μ—†λ‹€.

Kubernetes ν™˜κ²½

μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° μ„€μ •
기동 / 둜그 확인 / μ’…λ£Œ / μ΄ˆκΈ°ν™”

μ°Έκ³ 

λΌμ΄μ„ μŠ€(κΈ°κ°„ 만료 λ“±μ˜ 이유둜) 파일 ꡐ체가 ν•„μš”ν•œ 경우, ν•΄λ‹Ή 경둜 λ‚΄ κΈ°μ‘΄ λΌμ΄μ„ μŠ€ νŒŒμΌμ„ μ‹ κ·œ λΌμ΄μ„ μŠ€ 파일둜 λ°”κΏ”μ€€ ν›„ SysMasterDB μ„œλΉ„μŠ€λ₯Ό μž¬κΈ°λ™ν•˜λ©΄ λœλ‹€.

1.4. μ‹€ν–‰

1.4.1. Docker-compose ν™˜κ²½

1.4.2. Podman-compose ν™˜κ²½

2. 둜그 확인

μ°Έκ³ 

Client λͺ¨λ“ˆμ˜ 경우 λ”°λ‘œ 둜그λ₯Ό 파일둜 남기고 μžˆμ§€ μ•Šκ³  μžˆμœΌλ―€λ‘œ, docker compose logs 와 같은 λͺ…λ Ήμ–΄λ‘œ 좜λ ₯λ˜λŠ” 둜그λ₯Ό ν™•μΈν•΄μ•Όν•œλ‹€.

3. μ’…λ£Œ

4. μ΄ˆκΈ°ν™”

sysmaster-db up
podman compose -f podman-compose.yml up -d
Started SdmApplication in ... seconds (JVM running for ...)
sysmaster-db down

SysMaster DB 8.3 μ„€μΉ˜ν•˜κΈ°

SysMaster DB 8.3 μ„€μΉ˜ 방법을 Docker-compose / Podman-compose ν™˜κ²½κ³Ό Kubernetes ν™˜κ²½μœΌλ‘œ λ‚˜λˆ„μ–΄ μ„€λͺ…ν•œλ‹€. μ΄λ•Œ 각 ν™˜κ²½μ—μ„œ λ‹€μŒκ³Ό 같은 λ‹¨κ³„λ‘œ μ„€λͺ…ν•œλ‹€.

  1. μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° μ„€μ • - SysMaster DB 8.3 의 μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° 섀정방법에 λŒ€ν•΄μ„œ μ„€λͺ…ν•œλ‹€.

  2. 기동 / 둜그 확인 / μ’…λ£Œ / μ΄ˆκΈ°ν™”- 기동, 둜그 확인, μ’…λ£Œ, μ΄ˆκΈ°ν™” 방법에 λŒ€ν•΄μ„œ μ„€λͺ…ν•œλ‹€.

  3. λ§ˆμ§€λ§‰μœΌλ‘œ μ™ΈλΆ€ 접속 ν—ˆμš© ν¬νŠΈμ—μ„œλŠ” SysMaster DB 8.3μ—μ„œ μ‚¬μš©ν•˜λŠ” ν¬νŠΈλ“€μ— λŒ€ν•΄μ„œ μ„€λͺ…ν•œλ‹€.

μ™ΈλΆ€ 접속 ν—ˆμš© 포트

SysMaster DB 8μ—μ„œ μ‚¬μš©ν•˜λŠ” 포트 쀑 μ™ΈλΆ€ 접속을 ν—ˆμš©ν•΄μ•Ό ν•˜λŠ” ν¬νŠΈλ“€μ€ λ‹€μŒκ³Ό κ°™λ‹€.

SysMaster DB μ„œλ²„μ—μ„œ ν—ˆμš©ν•΄μ•Ό ν•˜λŠ” 포트 λͺ©λ‘

포트 이름
μš©λ„
κΈ°λ³Έκ°’
ν—ˆμš© λŒ€μƒ

CLIENT_PORT

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„μ—μ„œ ν—ˆμš©ν•΄μ•Ό ν•˜λŠ” 포트 λͺ©λ‘

포트 이름
μš©λ„
κΈ°λ³Έκ°’
ν—ˆμš© λŒ€μƒ

λΈŒλΌμš°μ €μ—μ„œ SysMaster DB UI에 μ ‘μ†ν•˜κΈ° μœ„ν•œ 포트

80

SysMaster DB UI 접속을 μœ„ν•΄ λΈŒλΌμš°μ €λ₯Ό μ‹€ν–‰ν•˜λŠ” μ‚¬μš©μž PC

COLLECTOR_PORT

TPM Agentκ°€ SysMaster DB 둜 μˆ˜μ§‘ 정보λ₯Ό 보내기 μœ„ν•΄ μ—°κ²°ν•˜λŠ” 포트

8292

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„

REPODB_PORT

REPODB에 μ ‘μ†ν•˜κΈ° μœ„ν•œ 포트 (μ‚¬μš©μžκ°€ REPODBλ₯Ό 직접 μ‘°νšŒν•˜κΈ° μœ„ν•œ μš©λ„λ‘œ SysMaster DB λ™μž‘κ³ΌλŠ” 무관)

15432

REPODB에 접속할 μ‚¬μš©μž PC

METADB_PORT

METADB에 μ ‘μ†ν•˜κΈ° μœ„ν•œ 포트 (μ‚¬μš©μžκ°€ METADBλ₯Ό 직접 μ‘°νšŒν•˜κΈ° μœ„ν•œ μš©λ„λ‘œ SysMaster DB λ™μž‘κ³ΌλŠ” 무관)

25432

METADB에 접속할 μ‚¬μš©μž PC

ν‹°λ² λ‘œ λ¦¬μŠ€λ„ˆ 포트

SysMaster DB μ„œλ²„μ—μ„œ κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ—°κ²°ν•˜λŠ” 포트

8629

SysMaster DB μ„œλ²„

μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° μ„€μ •

Docker-compose 및 Podman-compose ν™˜κ²½μ—μ„œ SysMaster DB 8.3λ₯Ό μ„€μΉ˜ν•˜λŠ” 과정이닀.

μ°Έκ³ 

Podman-composeλŠ” Docker-compose μŠ€νƒ€μΌμ˜ yml νŒŒμΌμ„ μ§€μ›ν•˜κΈ° λ•Œλ¬Έμ— λ™μΌν•œ yml 파일둜 docker / podman ν™˜κ²½μ—μ„œ λͺ¨λ‘ ꡬ동할 수 μžˆλ‹€.

1. Docker / Podman 이미지 λ‘œλ“œ

μ„€μΉ˜ 파일이 μ€€λΉ„λœ λ””λ ‰ν„°λ¦¬μ—μ„œ μ•„λž˜μ˜ λͺ…령을 μˆ˜ν–‰ν•˜μ—¬ Docker / Podman 이미지λ₯Ό λ‘œλ“œν•œλ‹€.

  • Docker:

    docker load -i sysmaster-db-{version}.tar
  • Podman:

    podman load -i sysmaster-db-{version}.tar

μ΄λ•Œ λ‘œλ“œλœ μ»¨ν…Œμ΄λ„ˆ 이미지 λͺ©λ‘μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  • sysmaster-db-client:{version}

  • sysmaster-db-sdm:{version}

  • sysmaster-db-tibero-master:{version}

  • sysmaster-db-collector:{version}

  • sysmaster-db-analyzer:{version}

  • sysmaster-db-tiberoopensql-postgres:{version}

  • sysmaster-db-schema-registry:{version}

  • sysmaster-db-kafka-loggable:{version}

  • sysmaster-db-zookeeper-loggable:{version}


μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ docker-compose.yml νŒŒμΌμ„ μ—΄μ–΄ Docker-compose / Podman-compose ν™˜κ²½μ— μƒμ„±ν•˜λŠ” 10개의 μ„œλΉ„μŠ€λ“€μ— λŒ€ν•΄ μ •μ˜ν•œλ‹€. 각 μ„œλΉ„μŠ€μ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

μ„œλΉ„μŠ€
μ„€λͺ…

μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ .env νŒŒμΌμ„ μ—΄μ–΄ SysMaster DB 8.3의 μ„€μΉ˜μ— ν•„μš”ν•œ νŒŒλΌλ―Έν„° 값을 μ„€μ •ν•œλ‹€.

μ΄λ•Œ 각 νŒŒλΌλ―Έν„°λ“€μ€ κ°œν–‰μœΌλ‘œ κ΅¬λΆ„ν•˜λ©°, νŒŒλΌλ―Έν„° 이름과 κ°’ μ‚¬μ΄μ—λŠ” 곡백 없이 λ“±ν˜Έλ₯Ό ν•˜λ‚˜ μž…λ ₯ν•œλ‹€.

ν•΄λ‹Ή κ³Όμ •μ—μ„œ μ„€μ •ν•˜λŠ” νŒŒλΌλ―Έν„°μ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

νŒŒλΌλ―Έν„° 이름
μ„€λͺ…
μ΄ˆκΈ°κ°’

Rootless podman ν™˜κ²½μ—μ„œλŠ” NGINX_RESOLVER νŒ¨λŸ¬λ―Έν„° 섀정이 λ³„λ„λ‘œ ν•„μš”ν•˜λ‹€. μ΄λŠ” μ‹œμŠ€λ§ˆμŠ€ν„° 기동 ν›„ κ°œλ³„ μ»¨ν…Œμ΄λ„ˆκ°€ μž¬κΈ°λ™ λ˜λŠ” μƒν™©μ—μ„œμ˜ μž¬μ—°κ²°μ„ μœ„ν•΄ ν•„μš”ν•˜λ©° sysmaster λ„€νŠΈμ›Œν¬μ˜ gateway ip μ£Όμ†Œλ₯Ό μ‚¬μš©ν•œλ‹€. ν•΄λ‹Ή 값은 ν™˜κ²½ / podman κΈ°λ™λ§ˆλ‹€ λ‹¬λΌμ§ˆ 수 μžˆλ‹€.

μ•„λž˜ μ˜ˆμ‹œμ—μ„œ NGINX_RESOLVER=10.89.0.1둜 μ„€μ • ν›„ μ‹œμŠ€λ§ˆμŠ€ν„°λ₯Ό λΆ€νŒ…ν•˜λŠ” 과정을 보여쀀닀.

Podman bridge λ„€νŠΈμ›Œν¬ ν™˜κ²½μ—μ„œ SysmasterDB μ»¨ν…Œμ΄λ„ˆκ°€ 동일 ν˜ΈμŠ€νŠΈμ— μ„€μΉ˜λœ κ΄€μ œ DB에 호슀트 IP(예: 192.168.141.12) 둜 접속을 μ‹œλ„ν•  경우, μ»¨ν…Œμ΄λ„ˆ β†’ 호슀트 λ°©ν–₯의 Hairpin NAT(DNAT loopback) κ°€ 기본적으둜 보μž₯λ˜μ§€ μ•Šμ•„ Connection Refusedκ°€ λ°œμƒν•  수 μžˆλ‹€.

μ΄λŠ” 동일 μ„œλ²„ λ‚΄ ꡬ성이라도 μ»¨ν…Œμ΄λ„ˆμ™€ ν˜ΈμŠ€νŠΈκ°€ μ„œλ‘œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” Podman bridge ꡬ쑰적 μ œμ•½μ΄λ‹€.

μ˜ˆμ‹œλ‘œ, μ»¨ν…Œμ΄λ„ˆμ— μ ‘μ†ν•˜μ—¬ telnet 192.168.141.12 40010을 μˆ˜ν–‰ν•˜λ©΄ Connection refused둜 μ‹€νŒ¨ν•˜κ³ , Host Gateway 경둜 적용 ν›„ telnet host.docker.internal 40010은 정상 μ ‘μ†λ˜λŠ” κ²ƒμœΌλ‘œ 확인할 수 μžˆλ‹€.

해결을 μœ„ν•΄ podman-compose.yml에 Host Gateway 맀핑을 μΆ”κ°€ν•˜κ³ , κ΄€μ œ DB 접속 μ£Όμ†Œλ₯Ό 호슀트 IP β†’ host.docker.internal 둜 λ³€κ²½ν•œλ‹€.

μ•„λž˜ μ˜ˆμ‹œμ²˜λŸΌ μ„œλΉ„μŠ€μ— extra_hostsλ₯Ό μΆ”κ°€ν•œλ‹€.

그리고 μ•„λž˜μ²˜λŸΌ κ΄€μ œ DB IPλ₯Ό host.docker.internal 둜 μ„€μ •ν•˜λ©΄ 동일 ν˜ΈμŠ€νŠΈμ— μ„€μΉ˜λœ κ΄€μ œ DBλ₯Ό 등둝 ν•  수 μžˆλ‹€.


μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ meta.conf, repo.conf νŒŒμΌμ„ 톡해 Meta DB 및 Repository DB νŒŒλΌλ―Έν„° 값을 확인할 수 μžˆλ‹€. ν•΄λ‹Ή conf νŒŒμΌμ€ 기본적으둜 μ œκ³΅λ˜λŠ” 섀정값을 μ‚¬μš©ν•˜λ˜, λ‹€μŒμ—μ„œ μ„€λͺ…ν•˜λŠ” νŒŒλΌλ―Έν„°λŠ” ν•„μš” μ‹œ ꡬ동 ν™˜κ²½μ— 맞게 μ‚¬μš©μžκ°€ 직접 μ„€μ •ν•΄μ€€λ‹€.

νŒŒλΌλ―Έν„° 이름
μ„€λͺ…

collector

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€λ‘œλΆ€ν„° 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” μ„œλ²„

analyzer

μˆ˜μ§‘ν•œ 정보λ₯Ό 가곡해 뢄석 및 μ €μž₯ν•˜λŠ” μ„œλ²„

metadb

UI κ΄€λ ¨ μ„€μ • 정보λ₯Ό μ €μž₯ν•˜λŠ” DB μ„œλ²„

repodb

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μˆ˜μ§‘ 데이터λ₯Ό μ €μž₯ν•˜λŠ” DB μ„œλ²„

zookeeper

Kafka Broker μ„œλ²„μ˜ μƒνƒœ 관리

broker

Kafka Broker μ„œλ²„

schema-registry

Kafka λ©”μ‹œμ§€ ν”„λ‘œν† μ½œ 관리

Admin κ³„μ •μ˜ μ‚¬μš©μž 이름

admin

ADMIN_PASSWORD

Admin κ³„μ •μ˜ μ•”ν˜Έ

admin

COLLECTOR_PORT

μˆ˜μ§‘ λͺ¨λ“ˆ(TPM Agent)이 접속할 포트 번호

[μ°Έκ³ ] κ΄€μ œ DBμ—μ„œ 접속할 수 μžˆλ„λ‘ SysMaster μ„œλ²„μ—μ„œ μ—΄λ € μžˆμ–΄μ•Ό 함

8292

METADB_PORT

Meta DB의 접속 포트 번호

25432

METADB_USER

Meta DB의 슈퍼 μ‚¬μš©μž 이름

sysmaster

METADB_PASSWORD

Meta DB의 슈퍼 μ‚¬μš©μž μ•”ν˜Έ

sysmaster

METADB_PATH

Meta DB의 데이터 파일 경둜

./meta

METADB_CONF_PATH

Meta DB의 μ„€μ • 파일 경둜

./meta.conf

REPODB_PORT

Repository DB의 접속 포트 번호

15432

REPODB_USER

Repository DB의 슈퍼 μ‚¬μš©μž 이름

sysmaster

REPODB_PASSWORD

Repository DB의 슈퍼 μ‚¬μš©μž μ•”ν˜Έ

sysmaster

REPODB_PATH

Repository DB의 데이터 파일 경둜

./repo

REPODB_CONF_PATH

Repository DB의 μ„€μ • 파일 경둜

./repo.conf

RETENTION_DAY

μˆ˜μ§‘ μ •λ³΄μ˜ 보관 μ£ΌκΈ°

7

LOG_PATH

둜그 생성 μœ„μΉ˜

./logs

LOG_RETENTION_DAY

둜그 파일 보관 μ£ΌκΈ°

1

LOG_FILE_SIZE

둜그 파일 ν•˜λ‚˜μ˜ μ΅œλŒ€ 크기

100MB

LOG_TOTAL_SIZE

λͺ¨λ“ˆ 별 μ΅œλŒ€ 둜그 μ €μž₯ μš©λŸ‰

1000MB

LOG_LEVEL

λͺ¨λ“ˆ 별 둜그 레벨

info

CONTAINER_LOG_PATH

μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€ 둜그 경둜 μ„€μ •

/sysmaster/logs

KAFKA_MESSAGE_MAX_BYTES

μΉ΄ν”„μΉ΄ λ©”μ‹œμ§€ μ‚¬μ΄μ¦ˆ μ„€μ •, 1MB ~ 2GB λ²”μœ„λ‘œ μ„€μ • κ°€λŠ₯

20971520 Byte

TIME_ZONE

SysMaster DB μ„œλ²„ Time-Zone μ„€μ •

Asia/Seoul

SQL_FLUSH_THRESHOLD

SQL κ΄€λ ¨ ν•˜λ‚˜μ˜ λ©”μ‹œμ§€κ°€ 담을 수 μžˆλŠ” 정보 개수 μ œν•œ. SQL Plan의 경우 ν•΄λ‹Ή κ°’μ˜ 10배둜 μ œν•œν•œλ‹€.

κ΄€μ œ DB λ‹Ή 100개

SQL_RS_FETCH_SIZE

ν•œ λ²ˆμ— κ΄€μ œ DB λ‘œλΆ€ν„° μ‘°νšŒν•˜λŠ” SQL κ΄€λ ¨ 정보 row 개수

κ΄€μ œ DB λ‹Ή 1000개

SKIP_DB_USER_COUNT_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) κΈ°μˆ˜μ§‘ 데이터 기반 Repository DB의 DB_USER_COUNT ν…Œμ΄λΈ” 데이터 생성 패치 μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  1]을 ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SKIP_DAILY_SEGMENT_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) κΈ°μˆ˜μ§‘ 데이터 기반 Repository DB의 DAILY_SEGMENT ν…Œμ΄λΈ” 데이터 생성 패치 μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  1]을 ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) v8.3.0 μ‹ κ·œ μŠ€ν‚€λ§ˆ 적용 ν…Œμ΄λΈ” λŒ€μƒ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  2]λ₯Ό ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•œ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 쀑 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„). ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  2]λ₯Ό ν™•μΈν•˜κ³  μ„€μ •.

7 (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SDM_HEAP_SIZE_MAX

SDM의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

SDM_HEAP_SIZE_MIN

SDM의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

ANALYZER_HEAP_SIZE_MAX

Analyzer의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

ANALYZER_HEAP_SIZE_MIN

Analyzer의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

COLLECTOR_HEAP_SIZE_MAX

Collector의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

COLLECTOR_HEAP_SIZE_MIN

Collector의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

TBM_HEAP_SIZE_MAX

TBM의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

TBM_HEAP_SIZE_MIN

TBM의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

PERFORMANCE_LOGGING

μ„±λŠ₯ κ΄€λ ¨ 둜그 μž‘μ„± μ—¬λΆ€ [μ°Έκ³ ] 좔가적인 CPU, Diskλ₯Ό μ‚¬μš©ν•˜λŠ” 것이기 λ•Œλ¬Έμ— Y둜 μ„€μ • μ‹œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 있음.

N

LIMIT_SQL_HASH_COUNT

쀑볡 μˆ˜μ§‘ λ°©μ§€λ₯Ό μœ„ν•΄ λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜λŠ” SQL plan hash value + cost μ‘°ν•©μ˜ μ΅œλŒ€ 개수이며, λ™μ‹œμ— SQL text hash value μ΅œλŒ€ 개수

100만개 [μ°Έκ³ ] 총 μ•½ <λ“±λ‘λœ μΈμŠ€ν„΄μŠ€ 개수> * 300MB λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•œλ‹€.

NGINX_RESOLVER

Podman ν™˜κ²½ μ „μš© μ„€μ • NGINXμ—μ„œ DNS 이름을 ν•΄μ„ν•˜κΈ° μœ„ν•΄, Sysmaster λ‚΄λΆ€ DNS λ„€νŠΈμ›Œν¬μ˜ κ²Œμ΄νŠΈμ›¨μ΄ μ£Όμ†Œλ₯Ό μ§€μ •. 이섀정은 Podman ν™˜κ²½μ—μ„œλ§Œ ν•„μš”ν•˜λ©°, Docker ν™˜κ²½ λ“± λ‹€λ₯Έ λŸ°νƒ€μž„μ—μ„œλŠ” λ³„λ„μ˜ 섀정이 μš”κ΅¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

podman network inspect script_sysmaster 둜 확인 κ°€λŠ₯.

log_timezone

Meta DB(λ˜λŠ” Repository DB)의 둜그 μ‹œκ°„ Time-Zone

client

μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €λ₯Ό 톡해 μ ‘μ†ν•˜κ²Œ 될 μ›Ή μ„œλ²„

sdm

μˆ˜μ§‘ 정보λ₯Ό μ‘°νšŒν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈμ™€ ν†΅μ‹ ν•˜λŠ” API μ„œλ²„

tibero-master

CLIENT_PORT=80
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
COLLECTOR_PORT=8292
METADB_PORT=25432
METADB_USER=sysmaster
METADB_PASSWORD=sysmaster
METADB_PATH=./meta
METADB_CONF_PATH=./meta.conf
REPODB_PORT=15432
REPODB_USER=sysmaster
REPODB_PASSWORD=sysmaster
REPODB_PATH=./repo
REPODB_CONF_PATH=./repo.conf
RETENTION_DAY=7
LOG_PATH=./logs
LOG_RETENTION_DAY=1
LOG_FILE_SIZE=100MB
LOG_TOTAL_SIZE=1000MB
LOG_LEVEL=info
CONTAINER_LOG_PATH=/sysmaster/logs
KAFKA_MESSAGE_MAX_BYTES=20971520
TIME_ZONE=Asia/Seoul
SQL_FLUSH_THRESHOLD=100
SQL_RS_FETCH_SIZE=1000
# SKIP_DB_USER_COUNT_MIGRATION_PATCH=true
# SKIP_DAILY_SEGMENT_MIGRATION_PATCH=true
# SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=true
# RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=7
SDM_HEAP_SIZE_MAX=
SDM_HEAP_SIZE_MIN=
ANALYZER_HEAP_SIZE_MAX=
ANALYZER_HEAP_SIZE_MIN=
COLLECTOR_HEAP_SIZE_MAX=
COLLECTOR_HEAP_SIZE_MIN=
TBM_HEAP_SIZE_MAX=
TBM_HEAP_SIZE_MIN=
PERFORMANCE_LOGGING=
LIMIT_SQL_HASH_COUNT=
# NGINX_RESOLVER=127.0.0.11  

CLIENT_PORT

UI 접속 URL의 포트 번호

80

[tibero@smdb-podman ~]$ podman compose up --no-start
[tibero@smdb-podman ~]$ podman network inspect script_sysmaster

[
     {
          "name": "script_sysmaster",
          "id": "e014d8811e9b51f417d578358ab41e2624a465d9026c7916f9ba7e4ce382f699",
          "driver": "bridge",
          "network_interface": "cni-podman1",
          "created": "2025-08-04T22:55:11.345378476-04:00",
          "subnets": [
               {
                    "subnet": "10.89.0.0/24",
                    "gateway": "10.89.0.1"  /// -> 이 μ£Όμ†Œλ₯Ό μ‚¬μš©.
               }
          ],
          "ipv6_enabled": false,
          "internal": false,
          "dns_enabled": true,
          "labels": {
               "com.docker.compose.project": "script",
               "io.podman.compose.project": "script"
          },
          "ipam_options": {
               "driver": "host-local"
          }
     }
]

/// .env νŒŒμΌμ— νŒ¨λŸ¬λ―Έν„° μ„€μ •ν•˜κΈ°
[tibero@smdb-podman ~]$ podman compose up -d
tibero-master:
  image: sysmaster-db-tibero-master:8.3.4
  container_name: tibero-master
  hostname: tibero-master
  environment:
    <<: *common-env
    # (기타 ν™˜κ²½λ³€μˆ˜ μƒλž΅)
  networks:
    sysmaster:
      aliases:
        - tibero-master
  restart: on-failure
  # 이 λΆ€λΆ„ μΆ”κ°€
  extra_hosts:
    - "host.docker.internal:host-gateway"

pg_max_connections

Meta DB(λ˜λŠ” Repository DB)의 μ΅œλŒ€ 컀λ„₯μ…˜ 수

pg_owner_id

ν•΄λ‹Ή DB 데이터 디렉토리 μ ‘κ·Ό κΆŒν•œ 섀정을 μœ„ν•œ Host OS의 μ‚¬μš©μž ID(uid). 호슀트 λ¨Έμ‹ μ˜ νŠΉμ • μœ μ €μ—μ„œ μ»¨ν…Œμ΄λ„ˆ DB λ””λ ‰ν† λ¦¬λ‘œ 직접 μ ‘κ·Όν•˜κ³  싢을 경우 ν•΄λ‹Ή μœ μ €μ˜ μ‚¬μš©μž ID둜 μ„€μ •ν•œλ‹€.

pg_group_id

μ°Έκ³ 

docker images | grep sysmaster λͺ…λ Ήμ–΄λ₯Ό 톡해 μ»¨ν…Œμ΄λ„ˆ 이미지 λͺ©λ‘μ„ 확인할 수 μžˆλ‹€.

2. Docker / Podman μ„œλΉ„μŠ€ μ •μ˜

3. μ„€μΉ˜ νŒŒλΌλ―Έν„° μ„€μ •

μ°Έκ³ 

.env 파일이 μ—†λ‹€λ©΄ vim .env λͺ…λ Ήμ–΄λ₯Ό μ΄μš©ν•΄ μƒμ„±ν•œλ‹€.

μ°Έκ³  1

SKIP_DB_USER_COUNT_MIGRATION_PATCH, SKIP_DAILY_SEGMENT_MIGRATION_PATCH νŒŒλΌλ―Έν„°λŠ” μ‹ κ·œ μ„€μΉ˜ μ‹œμ—λŠ” ν•„μš”ν•˜μ§€ μ•Šκ³ , SysMaster DB v8.1.2 μ΄ν•˜ κΈ°μ„€μΉ˜ ν™˜κ²½μ—μ„œ 버전 μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²½μš°μ—λ§Œ 적용이 ν•„μš”ν•˜λ‹€.

각 νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄, 버전 μ—…λ°μ΄νŠΈ μ‹œ ν•΄λ‹Ή νŒ¨μΉ˜κ°€ μžλ™μœΌλ‘œ μˆ˜ν–‰λ˜λ©΄μ„œ κΈ°μˆ˜μ§‘ 데이터λ₯Ό 기반으둜 DB_USER_COUNT, DAILY_SEGMENT 데이터λ₯Ό μƒμ„±ν•œλ‹€.

μ΄λ•Œ, κΈ°μˆ˜μ§‘ 데이터양에 따라 패치 μˆ˜ν–‰μ— μž₯μ‹œκ°„ μ†Œμš”λ  수 μžˆμœΌλ―€λ‘œ, ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό 톡해 μ‚¬μš©μžκ°€ μ„ νƒμ μœΌλ‘œ ν•΄λ‹Ή 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆλ‹€.

v8.1.3 μ΄μƒμ˜ SysMaster DB μ„œλΉ„μŠ€ 이용 μ‹œ, DB_USER_COUNT, DAILY_SEGMENT λ°μ΄ν„°λŠ” 각각 λ‹€μŒ λ©”λ‰΄μ—μ„œ μ‚¬μš©λœλ‹€.

1. DB_USER_COUNT 데이터 - Analysis > All Session Flow 메뉴

2. DAILY_SEGMENT 데이터 - Analysis > Segment Usage 메뉴

λ”°λΌμ„œ ν•΄λ‹Ή 패치λ₯Ό μƒλž΅ν•˜λ„λ‘ μ„€μ •(각 νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •ν•˜κ³  주석 제거)ν•˜λŠ” 경우, μœ„ 1, 2의 λ©”λ‰΄μ—μ„œ κ³Όκ±°(ν•΄λ‹Ή μ—…λ°μ΄νŠΈ 이전에 μˆ˜μ§‘λœ) 데이터가 μ‘°νšŒλ˜μ§€ μ•ŠλŠ”λ‹€. κ·ΈλŸ¬λ―€λ‘œ κΈ°λ³Έμ μœΌλ‘œλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€.

반면 λ‹€μŒκ³Ό 같은 경우, μ‚¬μš©μžλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거)ν•˜μ—¬ μ•žμ„œ μ„€λͺ…ν•œ 패치λ₯Ό μƒλž΅ν•  수 μžˆλ‹€.

  1. μœ„ 1, 2의 λ©”λ‰΄μ—μ„œ κ³Όκ±°(SysMaster DB v8.1.2 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ) 데이터 μ‘°νšŒκ°€ λΆˆν•„μš”ν•œ 경우

  2. (SysMaster DB μ„œλ²„ μžμ› μ œν•œ λ“±μ˜ 이유둜) ν•΄λ‹Ή 데이터 생성 패치 μ§„ν–‰ μ‹œ μž₯μ‹œκ°„ SysMaster DB μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•΄μ§€λŠ” 상황이 우렀되고, 이λ₯Ό λ°©μ§€ν•΄μ•Όλ§Œ ν•˜λŠ” 경우

μ‚¬μš©μžλŠ” ν•„μš”μ— 따라, ν•΄λ‹Ή 두 νŒŒλΌλ―Έν„° 쀑 μ›ν•˜λŠ” νŒŒλΌλ―Έν„°λ§Œ μ„ νƒμ μœΌλ‘œ μ„€μ •ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€.

μ°Έκ³  2

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λŠ” μ‹ κ·œ μ„€μΉ˜ μ‹œμ—λŠ” ν•„μš”ν•˜μ§€ μ•Šκ³ , SysMaster DB v8.2.1 μ΄ν•˜ κΈ°μ„€μΉ˜ ν™˜κ²½μ—μ„œ 버전 μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²½μš°μ—λ§Œ 적용이 ν•„μš”ν•˜λ‹€.

각 νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄, v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ„ λŒ€μƒμœΌλ‘œ v8.2.1 μ΄ν•˜ λ²„μ „μ—μ„œμ˜ κΈ°μˆ˜μ§‘ 데이터λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” νŒ¨μΉ˜κ°€ μžλ™μœΌλ‘œ μˆ˜ν–‰λœλ‹€.

v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ” λͺ©λ‘μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  • SQL

  • SQL_TEXT

  • SQL_PLAN

  • DB_SESSION

  • SESSION_TEMP

  • SESSION_UNDO

  • LOCK

  • SQL_TRACE

μœ„ ν…Œμ΄λΈ”μ— λŒ€ν•œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 과정은 κΈ°μˆ˜μ§‘ 데이터양에 따라 μž₯μ‹œκ°„ μ†Œμš”λ  수 μžˆλ‹€.

μ‚¬μš©μžλŠ” ν•„μš”μ— 따라, λ‹€μŒκ³Ό 같이 별도 νŒŒλΌλ―Έν„° 섀정을 톡해 μ‚¬μš©μžκ°€ μ„ νƒμ μœΌλ‘œ ν•΄λ‹Ή 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆλ‹€.

  • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    • v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•΄ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •

    • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거) μ‹œ, 패치 λŒ€μƒ ν…Œμ΄λΈ” 전체에 λŒ€ν•œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ μˆ˜ν–‰λ˜μ§€ μ•ŠμŒ.

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 섀정을 톡해 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šμ€ 경우, v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ 데이터가 μ‚­μ œλ˜λ―€λ‘œ 더 이상 μ‘°νšŒλ˜μ§€ μ•ŠλŠ”λ‹€.

κ·ΈλŸ¬λ―€λ‘œ κΈ°λ³Έμ μœΌλ‘œλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€.

반면 λ‹€μŒκ³Ό 같은 경우, μ‚¬μš©μžλŠ” ν•΄λ‹Ή λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μƒλž΅μ„ κ³ λ €ν•  수 μžˆλ‹€.

  1. v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆ 적용 λŒ€μƒ ν…Œμ΄λΈ”μ˜ κ³Όκ±°(SysMaster DB v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ) 데이터 μ‘°νšŒκ°€ λΆˆν•„μš”ν•œ 경우

  2. (SysMaster DB μ„œλ²„ μžμ› μ œν•œ λ“±μ˜ 이유둜) ν•΄λ‹Ή 데이터 생성 패치 μ§„ν–‰ μ‹œ μž₯μ‹œκ°„ SysMaster DB μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•΄μ§€λŠ” 상황이 우렀되고, 이λ₯Ό λ°©μ§€ν•΄μ•Όλ§Œ ν•˜λŠ” 경우

μ΄λ•Œ, μ‚¬μš©μžλŠ” μ•„λž˜ νŒŒλΌλ―Έν„° 섀정을 톡해 (λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 패치λ₯Ό μˆ˜ν–‰ν•˜λ˜,) 패치 μˆ˜ν–‰ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„)λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•  μˆ˜λ„ μžˆλ‹€.

  • RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    • v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•œ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 쀑 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„) μ„€μ •

      • 예λ₯Ό λ“€μ–΄, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό 7둜 μ„€μ •(주석 제거)ν•˜λŠ” 경우, v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ 데이터 쀑 졜근 7일 μ΄λ‚΄μ˜ 데이터에 λŒ€ν•΄μ„œλ§Œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ μˆ˜ν–‰λ¨.

상기 μ„€λͺ…을 μ°Έκ³ ν•˜μ—¬, μ‚¬μš©μžλŠ” 운영 ν™˜κ²½μ— λ§žλŠ” μ μ ˆν•œ νŒŒλΌλ―Έν„° 섀정을 선택, μ μš©ν•  수 μžˆλ‹€.

3.1 Podman ν™˜κ²½μ—μ„œ DNS Resolver μ„€μ •

3.2 Podman ν™˜κ²½μ—μ„œ SysMasterDB μ„œλ²„μ™€ 동일 ν˜ΈμŠ€νŠΈμ— μ„€μΉ˜λœ κ΄€μ œ DB 등둝

μ„€μ • 방법 (YML μ˜ˆμ‹œ + κ΄€μ œ DB 접속 μ£Όμ†Œ λ³€κ²½)

4. Meta DB 및 Repository DB νŒŒλΌλ―Έν„° μ„€μ •

μ°Έκ³ 

Meta DB 및 Repository DB νŒŒλΌλ―Έν„° 변경이 ν•„μš”ν•œ 경우, κ΄€λ ¨ νŒŒλΌλ―Έν„° 섀정은 OpenSQL μ‚¬μš© κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•  수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ κ΄€λ ¨ νŒŒλΌλ―Έν„° 섀정을 μž„μ˜ μˆ˜μ •ν•˜λŠ” 경우, SysMaster DB μ„œλ²„μ˜ 정상 λ™μž‘μ΄ 보μž₯λ˜μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ μœ„ ν‘œμ— λͺ…μ‹œλœ νŒŒλΌλ―Έν„° μ™Έ λ‹€λ₯Έ νŒŒλΌλ―Έν„°λŠ”, κΈ°λ³Έ 제곡 섀정값을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€.

특히 Podman-compose ν™˜κ²½μ—μ„œμ˜ μ„€μΉ˜ μ‹œ, pg_owner_id와 pg_group_id 값을 직접 μ„€μ •(λ³€κ²½)ν•˜λŠ” 경우 정상 λ™μž‘ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€. Podman의 μ»¨ν…Œμ΄λ„ˆλŠ” Rootlessλͺ¨λ“œλ‘œ λ™μž‘ν•˜κ³ , μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ root (owner_id = 0, group_id = 0)κ°€ 호슀트 λ¨Έμ‹ μ˜ μœ μ €μ— λŒ€μ‘λœλ‹€. ν•˜μ§€λ§Œ OpenSQL이 root κΆŒν•œ μƒνƒœμ—μ„œμ˜ μ„€μΉ˜ 및 기동을 ν—ˆμš©ν•˜κ³  μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— κΈ°λ³Έ 섀정값을 μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€.

λ˜ν•œ Podman-compose ν™˜κ²½μ—μ„œλŠ” Host OSμ—μ„œ μ‘°νšŒλ˜λŠ” meta, repo λ””λ ‰ν„°λ¦¬μ˜ μ†Œμœ μžκ°€ pg_owner_id, pg_group_id에 μ„€μ •ν•œ UID/GID에 λŒ€μ‘ν•˜λŠ” μ‚¬μš©μžλͺ…μœΌλ‘œ ν‘œμ‹œλ˜μ§€ μ•Šμ„ 수 μžˆλ‹€.

μ΄λŠ” Podman rootless ν™˜κ²½μ˜ user namespace λ§€ν•‘ 방식에 λ”°λ₯Έ 정상 λ™μž‘μ΄λ‹€. Podman rootless ν™˜κ²½μ—μ„œλŠ” μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ UID/GIDκ°€ Host OS의 UID/GID와 1:1둜 λ™μΌν•œ μ‚¬μš©μžλ₯Ό μ˜λ―Έν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€.

예λ₯Ό λ“€μ–΄ Host OS의 sysmaster μ‚¬μš©μžκ°€ uid=1008이고 pg_owner_idλ₯Ό 1008둜 μ„€μ •ν•˜λ”λΌλ„, μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ uid=1008은 Host OSμ—μ„œ sysmasterκ°€ μ•„λ‹Œ subordinate UID둜 맀핑될 수 μžˆλ‹€. λ”°λΌμ„œ Host OSμ—μ„œ meta, repo 디렉터리λ₯Ό ls -al λͺ…λ ΉμœΌλ‘œ μ‘°νšŒν•  경우 μ†Œμœ μžκ°€ sysmasterκ°€ μ•„λ‹Œ 숫자 UID/GID둜 ν‘œμ‹œλ  수 μžˆλ‹€.

μ΄λŠ” κΆŒν•œ λ³€κ²½ μ‹€νŒ¨λ‚˜ μ œν’ˆ 였λ₯˜κ°€ μ•„λ‹ˆλ©°, μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ—μ„œλŠ” λ§€ν•‘λœ UID/GID κΈ°μ€€μœΌλ‘œ 정상 μ ‘κ·Όλœλ‹€.

Host OSμ—μ„œ 숫자 UID/GID둜 ν‘œμ‹œλ˜λŠ” 데이터 디렉터리λ₯Ό chown λ“±μœΌλ‘œ μž„μ˜ λ³€κ²½ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€. μž„μ˜λ‘œ μ†Œμœ μžλ₯Ό λ³€κ²½ν•  경우, μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ UID/GID λ§€ν•‘κ³Ό 파일 κΆŒν•œμ΄ λΆˆμΌμΉ˜ν•˜μ—¬ Meta DB λ˜λŠ” Repository DBκ°€ 정상 κΈ°λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€.

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μƒνƒœ 확인과 Admin κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” μ„œλ²„

ADMIN_USERNAME

ν•΄λ‹Ή DB 데이터 디렉토리 μ ‘κ·Ό κΆŒν•œ 섀정을 μœ„ν•œ Host OS의 μ‚¬μš©μž κ·Έλ£Ή ID(gid). 호슀트 λ¨Έμ‹ μ˜ νŠΉμ • μœ μ €μ—μ„œ μ»¨ν…Œμ΄λ„ˆ DB λ””λ ‰ν† λ¦¬λ‘œ 직접 μ ‘κ·Όν•˜κ³  싢을 경우 ν•΄λ‹Ή μœ μ €μ˜ κ·Έλ£Ή ID둜 μ„€μ •ν•œλ‹€.

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거)ν•œ 경우, λ³Έ νŒŒλΌλ―Έν„° 섀정은 λ¬΄μ‹œλ¨.

기동 / 둜그 확인 / μ’…λ£Œ / μ΄ˆκΈ°ν™”

Kubernetes ν™˜κ²½μ—μ„œ SysMaster DB λ₯Ό 기동 / 둜그 확인/ μ’…λ£Œ / μ΄ˆκΈ°ν™”ν•˜λŠ” 방법이닀.

1. 기동

μ„€μΉ˜ 파일이 μœ„μΉ˜ν•œ λ””λ ‰ν„°λ¦¬μ—μ„œ μ•„λž˜μ™€ 같은 μˆœμ„œλ‘œ λͺ…령을 μˆ˜ν–‰ν•˜μ—¬ μΏ λ²„λ„€ν‹°μŠ€ 였브젝트λ₯Ό μƒμ„±ν•œλ‹€.

1.1. Namespace, ConfigMap, PVC, Service 생성

kubectl apply -f kubernetes/init

1.2. RepoDB, MetaDB λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ 생성 (λ°μ΄ν„°λ² μ΄μŠ€ 생성이 μ™„λ£Œλœ μƒνƒœμ—μ„œ μ§„ν–‰)

kubectl apply -f kubernetes/db

λ‹€μŒ λ‹¨κ³„λ‘œ μ§„ν–‰ν•˜κΈ° μ „ RepoDB, MetaDBκ°€ μ •μƒμ μœΌλ‘œ λΆ€νŒ… μ™„λ£Œλ˜μ–΄μ•Ό ν•œλ‹€. μ΄λŠ” λ‹€μŒκ³Ό 같은 둜그λ₯Ό 톡해 확인 κ°€λŠ₯ν•˜λ‹€.

λ¨Όμ € 각각 ν•΄λ‹Ή pod의 터미널 좜λ ₯ λ‘œκ·Έμ—μ„œ μ•„λž˜μ™€ 같은 λ©”μ„Έμ§€κ°€ 좜λ ₯λ˜λŠ” 것을 ν™•μΈν•œλ‹€.

[ENTRYPOINT LOG]: INFO: Attempting to start PostgreSQL server...

λ‹€μŒμœΌλ‘œ 각 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‘œκ·ΈνŒŒμΌμ— μ•„λž˜μ™€ 같은 λ©”μ„Έμ§€κ°€ 좜λ ₯λ˜λŠ” 것을 ν™•μΈν•œλ‹€.

LOG: database system is ready to accept connections

μ΄λ•Œ 각 λ°μ΄ν„°λ² μ΄μŠ€μ˜ 둜그 파일 확인 방법은 "2. 둜그 확인"을 μ°Έκ³ ν•œλ‹€.

1.3. Kafka λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ 생성 (Kafka νŒŒλ“œκ°€ running μƒνƒœμ—μ„œ μ§„ν–‰)

kubectl apply -f kubernetes/kafka

1.4. SysMaster λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ 생성 및 λΌμ΄μ„ μŠ€ 파일 μ„ΈνŒ…

kubectl apply -f kubernetes/sysmaster

sysmasterdb8-sdm-containerκ°€ μƒμ„±λ˜λ©΄, ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆ λ‚΄ sysmaster/license 경둜 ν•˜μœ„μ— λ°œκΈ‰λ°›μ€ λΌμ΄μ„ μŠ€ νŒŒμΌμ„ λ°°μΉ˜ν•œλ‹€. λΌμ΄μ„ μŠ€ 파일λͺ…은sysmaster-db-license.xml 이며, λ³€κ²½ λΆˆκ°€λŠ₯ν•˜λ‹€.

λΆ€νŒ…μ΄ μ™„λ£Œλœ 이후에 둜그인과 ν”„λ‘œκ·Έλž¨ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. λΆ€νŒ… μ™„λ£ŒλŠ” SDM λ‘œκ·Έμ—μ„œ μ•„λž˜μ™€ 같은 둜그λ₯Ό 톡해 확인할 수 μžˆλ‹€.


기본적으둜 각 λͺ¨λ“ˆλ“€μ˜ pod λ‚΄ μ»¨ν…Œμ΄λ„ˆμ— μ ‘μ†ν•˜μ—¬ ν•΄λ‹Ή λͺ¨λ“ˆμ˜ log νŒŒμΌμ„ λ³Ό 수 μžˆλ‹€. SysMaster DB λͺ¨λ“ˆλ“€μ€ λ™μΌν•˜κ²Œ 각 μ»¨ν…Œμ΄λ„ˆ λ‚΄ μ•„λž˜ κ²½λ‘œμ— λ‘œκ·Έκ°€ μ μž¬λœλ‹€.

μΆ”κ°€λ‘œ, μ‚¬μš©μžμ˜ 편의λ₯Ό μœ„ν•˜μ—¬ 둜그 확인 μ „μš© μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜μ—¬ ν™œμš©ν•  수 μžˆλ‹€.

배포 파일 ꡬ성에 ν¬ν•¨λœ client-deployment.yaml νŒŒμΌμ— μ •μ˜λœ sysmasterdb8-client-pod 내에, 둜그 확인 μ „μš© μ»¨ν…Œμ΄λ„ˆμΈ sysmasterdb8-log-containerκ°€ μ •μ˜λ˜μ–΄ μžˆλ‹€. μ‚¬μš©μžλŠ” ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆ λ‚΄ 둜그 디렉터리 경둜(/sysmaster/logs)λ₯Ό 톡해 λͺ¨λ“  SysMaster DB λͺ¨λ“ˆμ˜ 둜그λ₯Ό 확인할 수 μžˆλ‹€.


μ„€μΉ˜ 파일이 μœ„μΉ˜ν•œ λ””λ ‰ν„°λ¦¬μ—μ„œ μ•„λž˜μ™€ 같은 μˆœμ„œλ‘œ λͺ…령을 μˆ˜ν–‰ν•˜λ©΄ SysMaster DB κ°€ μ’…λ£Œλœλ‹€. μ΄λ•Œ SysMaster DB λ₯Ό μ’…λ£Œν•΄λ„ Repository DB와 Meta DB의 데이터 νŒŒμΌμ€ μœ μ§€λ˜λ―€λ‘œ, SysMaster DB λ₯Ό λ‹€μ‹œ κΈ°λ™ν•˜λ©΄ 이전에 μ €μž₯ν•œ 데이터λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.


μ•„λž˜μ˜ λͺ…령을 μˆ˜ν–‰ν•˜λ©΄ λͺ¨λ“  데이터가 μ‚­μ œλ˜κ³ , 졜초 μ„€μΉ˜ μƒνƒœμ™€ λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€. 단, 이전에 μ €μž₯ν•œ λ°μ΄ν„°λŠ” μ‚¬μš©ν•  수 μ—†λ‹€.

μ°Έκ³ 

λΌμ΄μ„ μŠ€(κΈ°κ°„ 만료 λ“±μ˜ 이유둜) 파일 ꡐ체가 ν•„μš”ν•œ 경우, ν•΄λ‹Ή 경둜 λ‚΄ κΈ°μ‘΄λΌμ΄μ„ μŠ€ νŒŒμΌμ„ μ‹ κ·œ λΌμ΄μ„ μŠ€νŒŒμΌλ‘œ λ°”κΏ”μ€€ ν›„ SysMasterDB μ„œλΉ„μŠ€λ₯Ό μž¬κΈ°λ™ν•˜λ©΄ λœλ‹€.

2. 둜그 확인

3. μ’…λ£Œ

1.1. SysMaster λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ μ‚­μ œ

1.2. Kafka λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ μ‚­μ œ

1.3. RepoDB, MetaDB λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ μ‚­μ œ

μ°Έκ³ 

1. SysMaster λ””ν”Œλ‘œμ΄λ¨ΌνŠΈμ™€ Kafka λ””ν”Œλ‘œμ΄λ¨ΌνŠΈλŠ” 항상 같이 μ‚­μ œν•œλ‹€.

2. RepoDB, MetaDB λ””ν”Œλ‘œμ΄λ¨ΌνŠΈλŠ” λ°˜λ“œμ‹œ μ‚­μ œν•  ν•„μš”λŠ” μ—†μœΌλ©°, SysMaster μ’…λ£Œ 후에도 RepoDB와 MetaDB에 접속해 데이터λ₯Ό 확인할 수 μžˆλ‹€.

4. μ΄ˆκΈ°ν™”

Started SdmApplication in ... seconds (JVM running for ...)
/sysmaster/logs
kubectl delete -f kubernetes/sysmaster
kubectl delete -f kubernetes/kafka
kubectl delete -f kubernetes/db
kubectl delete -f kubernetes/init

μ„€μΉ˜ 및 νŒŒλΌλ―Έν„° μ„€μ •

Kubernetes ν™˜κ²½μ—μ„œ SysMaster DBλ₯Ό μ„€μΉ˜ν•˜λŠ” 과정이닀.

1. 도컀(Docker) 이미지 λ‘œλ“œ

μ„€μΉ˜ 파일이 μ€€λΉ„λœ λ””λ ‰ν„°λ¦¬μ—μ„œ μ•„λž˜μ˜ λͺ…령을 μˆ˜ν–‰ν•˜μ—¬ 도컀 이미지λ₯Ό λ‘œλ“œν•œλ‹€.

docker load -i sysmaster-db-{version}.tar

μ΄λ•Œ λ‘œλ“œλœ 도컀 이미지 λͺ©λ‘μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  • sysmaster-db-client:{version}

  • sysmaster-db-sdm:{version}

  • sysmaster-db-tibero-master:{version}

  • sysmaster-db-collector:{version}

  • sysmaster-db-analyzer:{version}

  • sysmaster-db-tiberoopensql-postgres:{version}

  • sysmaster-db-schema-registry:{version}

  • sysmaster-db-kafka-loggable:{version}

  • sysmaster-db-zookeeper-loggable:{version}

  • sysmaster-db-alpine-linux:{version}


λ‘œλ“œν•œ 도컀 이미지듀을 ν•΄λ‹Ή ν™˜κ²½μ—μ„œ μ‚¬μš© 쀑인 이미지 λ¦¬ν¬μ§€ν„°λ¦¬λ‘œ ν‘Έμ‹œν•œλ‹€.


μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ kubernetes 디렉터리 μ•ˆμ˜ yaml νŒŒμΌλ“€μ„ ν†΅ν•΄μ„œ 8개의 λ””ν”Œλ‘œμ΄λ¨ΌνŠΈλ“€μ— λŒ€ν•΄ μ •μ˜ν•œλ‹€. 각 λ””ν”Œλ‘œμ΄λ¨ΌνŠΈμ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ
μ„€λͺ…

μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ kubernetes/init/configmap.yaml νŒŒμΌμ„ μ—΄μ–΄ SysMaster DB의 μ„€μΉ˜μ— ν•„μš”ν•œ 계정 정보 및 보관 μ£ΌκΈ° κ΄€λ ¨ νŒŒλΌλ―Έν„° 값을 μ„€μ •ν•œλ‹€.

ν•΄λ‹Ή κ³Όμ •μ—μ„œ μ„€μ •ν•˜λŠ” νŒŒλΌλ―Έν„°μ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

νŒŒλΌλ―Έν„° 이름
μ„€λͺ…
μ΄ˆκΈ°κ°’

μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ kubernetes/init/service.yaml νŒŒμΌμ„ μ—΄μ–΄ SysMaster DB의 μ„€μΉ˜μ— ν•„μš”ν•œ 포트 κ΄€λ ¨ νŒŒλΌλ―Έν„° 값을 μ„€μ •ν•œλ‹€. ν•΄λ‹Ή κ³Όμ •μ—μ„œ μ„€μ •ν•˜λŠ” νŒŒλΌλ―Έν„°μ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

νŒŒλΌλ―Έν„° 이름
μ„€λͺ…
μ΄ˆκΈ°κ°’

μ„€μΉ˜ λ””λ ‰ν„°λ¦¬μ—μ„œ kubernetes/init/configmap.yaml νŒŒμΌμ„ 톡해 Meta DB 및 Repository DB νŒŒλΌλ―Έν„° 값을 확인할 수 μžˆλ‹€. λ‹€μŒμ€ Meta DB에 λŒ€ν•œ νŒŒλΌλ―Έν„° μ„€μ • μ˜ˆμ‹œμ΄λ‹€.

ν•΄λ‹Ή conf νŒŒμΌμ€ 기본적으둜 μ œκ³΅λ˜λŠ” 섀정값을 μ‚¬μš©ν•˜λ˜, λ‹€μŒμ—μ„œ μ„€λͺ…ν•˜λŠ” νŒŒλΌλ―Έν„°λŠ” ν•„μš” μ‹œ ꡬ동 ν™˜κ²½μ— 맞게 μ‚¬μš©μžκ°€ 직접 μ„€μ •ν•΄μ€€λ‹€.

νŒŒλΌλ―Έν„° 이름
μ„€λͺ…

collector

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€λ‘œλΆ€ν„° 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” μ„œλ²„

analyzer

μˆ˜μ§‘ν•œ 정보λ₯Ό 가곡해 뢄석 및 μ €μž₯ν•˜λŠ” μ„œλ²„

metadb

UI κ΄€λ ¨ μ„€μ • 정보λ₯Ό μ €μž₯ν•˜λŠ” DB μ„œλ²„

repodb

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μˆ˜μ§‘ 데이터λ₯Ό μ €μž₯ν•˜λŠ” DB μ„œλ²„

kafka

Kafka ν΄λŸ¬μŠ€ν„°(ZooKeeper, Broker, Schema Registry 포함)

admin

METADB_USER

Meta DB의 슈퍼 μ‚¬μš©μž 이름

sysmaster

METADB_PASSWORD

Meta DB의 슈퍼 μ‚¬μš©μž μ•”ν˜Έ

sysmaster

REPODB_USER

Repository DB의 슈퍼 μ‚¬μš©μž 이름

sysmaster

REPODB_PASSWORD

Repository DB의 슈퍼 μ‚¬μš©μž μ•”ν˜Έ

sysmaster

RETENTION_DAY

μˆ˜μ§‘ μ •λ³΄μ˜ 보관 μ£ΌκΈ°

7

LOG_RETENTION_DAY

둜그 파일 보관 μ£ΌκΈ°

1

LOG_FILE_SIZE

둜그 파일 ν•˜λ‚˜μ˜ μ΅œλŒ€ 크기

100MB

LOG_TOTAL_SIZE

λͺ¨λ“ˆ 별 μ΅œλŒ€ 둜그 μ €μž₯ μš©λŸ‰

1000MB

LOG_LEVEL

λͺ¨λ“ˆ 별 μ΅œλŒ€ 둜그 레벨

info

CONTAINER_LOG_PATH

μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€ 둜그 경둜 μ„€μ •

/sysmaster/logs

KAFKA_MESSAGE_MAX_BYTES

μΉ΄ν”„μΉ΄ λ©”μ‹œμ§€ μ‚¬μ΄μ¦ˆ μ„€μ •, 1MB ~ 2GB λ²”μœ„λ‘œ μ„€μ • κ°€λŠ₯

20971520 Byte

TIME_ZONE

SysMaster DB μ„œλ²„ Time-Zone μ„€μ •

Asia/Seoul

SQL_FLUSH_THRESHOLD

SQL κ΄€λ ¨ ν•˜λ‚˜μ˜ λ©”μ‹œμ§€κ°€ 담을 수 μžˆλŠ” 정보 개수 μ œν•œ. SQL Plan의 경우 ν•΄λ‹Ή κ°’μ˜ 10배둜 μ œν•œν•œλ‹€.

κ΄€μ œ DB λ‹Ή 100개

SQL_RS_FETCH_SIZE

ν•œ λ²ˆμ— κ΄€μ œ DB λ‘œλΆ€ν„° μ‘°νšŒν•˜λŠ” SQL κ΄€λ ¨ 정보 row 개수

κ΄€μ œ DB λ‹Ή 1000개

SKIP_DB_USER_COUNT_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) κΈ°μˆ˜μ§‘ 데이터 기반 Repository DB의 DB_USER_COUNT ν…Œμ΄λΈ” 데이터 생성 패치 μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  1]을 ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SKIP_DAILY_SEGMENT_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) κΈ°μˆ˜μ§‘ 데이터 기반 Repository DB의 DAILY_SEGMENT ν…Œμ΄λΈ” 데이터 생성 패치 μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  1]을 ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) v8.3.0 μ‹ κ·œ μŠ€ν‚€λ§ˆ 적용 ν…Œμ΄λΈ” λŒ€μƒ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μƒλž΅ μ—¬λΆ€. ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  2]λ₯Ό ν™•μΈν•˜κ³  μ„€μ •.

true (주석 처리λ₯Ό ν†΅ν•œ 미적용)

RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

(κΈ°μ„€μΉ˜ ν™˜κ²½ 패치 μ‹œ,) v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•œ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 쀑 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„). ν•„μš” μ‹œ μ•„λž˜ [μ°Έκ³  2]λ₯Ό ν™•μΈν•˜κ³  μ„€μ •.

7 (주석 처리λ₯Ό ν†΅ν•œ 미적용)

SDM_HEAP_SIZE_MAX

SDM의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

SDM_HEAP_SIZE_MIN

SDM의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

ANALYZER_HEAP_SIZE_MAX

Analyzer의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

ANALYZER_HEAP_SIZE_MIN

Analyzer의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

COLLECTOR_HEAP_SIZE_MAX

Collector의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

COLLECTOR_HEAP_SIZE_MIN

Collector의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

TBM_HEAP_SIZE_MAX

TBM의 μ΅œλŒ€ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/4 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

TBM_HEAP_SIZE_MIN

TBM의 μ΅œμ†Œ νž™ 크기

ν˜„μž¬ μ»¨ν…Œμ΄λ„ˆ 전체 λ©”λͺ¨λ¦¬(free λͺ…λ Ήμ–΄μ˜ total mem μ°Έκ³ )의 1/64 이닀.

[μ°Έκ³ ] ν˜„μž¬ docker κΈ°λ³Έ μ΄λ―Έμ§€λŠ” openjdk:17-alpine 이닀.

PERFORMANCE_LOGGING

μ„±λŠ₯ κ΄€λ ¨ 둜그 μž‘μ„± μ—¬λΆ€ [μ°Έκ³ ] 좔가적인 CPU, Diskλ₯Ό μ‚¬μš©ν•˜λŠ” 것이기 λ•Œλ¬Έμ— Y둜 μ„€μ • μ‹œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 있음.

N

LIMIT_SQL_HASH_COUNT

쀑볡 μˆ˜μ§‘ λ°©μ§€λ₯Ό μœ„ν•΄ λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜λŠ” SQL plan hash value + cost μ‘°ν•©μ˜ μ΅œλŒ€ 개수이며, λ™μ‹œμ— SQL text hash value μ΅œλŒ€ 개수

100만개

[μ°Έκ³ ] 총 μ•½ 300MB λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•œλ‹€.

METADB_PORT

Meta DB의 접속 포트 번호

[μˆ˜μ • μœ„μΉ˜] metadata.name=metadb, name="metadb-port"인 ports의 nodePort μˆ˜μ •

25432

REPODB_PORT

Repository DB의 접속 포트 번호

[μˆ˜μ • μœ„μΉ˜] metadata.name=repodb, name="repodb-port"인 ports의 nodePort μˆ˜μ •

15432

client

μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €λ₯Ό 톡해 μ ‘μ†ν•˜κ²Œ 될 μ›Ή μ„œλ²„

sdm

μˆ˜μ§‘ 정보λ₯Ό μ‘°νšŒν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈμ™€ ν†΅μ‹ ν•˜λŠ” API μ„œλ²„

tibero-master

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-sysmaster
  namespace: sysmasterdb
data:
  RETENTION_DAY: "7"
  METADB_USER: sysmaster
  METADB_PASSWORD: sysmaster
  REPODB_USER: sysmaster
  REPODB_PASSWORD: sysmaster
  ADMIN_USERNAME: admin
  ADMIN_PASSWORD: admin
  LOG_RETENTION_DAY: "1"
  LOG_FILE_SIZE: "100MB"
  LOG_TOTAL_SIZE: "1000MB"
  LOG_LEVEL: "info"
  CONTAINER_LOG_PATH: "/sysmaster/logs"
  KAFKA_MESSAGE_MAX_BYTES: "20971520"
  TIME_ZONE: Asia/Seoul
  SQL_FLUSH_THRESHOLD: 100
  SQL_RS_FETCH_SIZE: 1000
  # SKIP_DB_USER_COUNT_MIGRATION_PATCH: true
  # SKIP_DAILY_SEGMENT_MIGRATION_PATCH: true
  # SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=true
  # RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=7
  SDM_HEAP_SIZE_MAX: ""
  SDM_HEAP_SIZE_MIN: ""
  ANALYZER_HEAP_SIZE_MAX: ""
  ANALYZER_HEAP_SIZE_MIN: ""
  COLLECTOR_HEAP_SIZE_MAX: ""
  COLLECTOR_HEAP_SIZE_MIN: ""
  TBM_HEAP_SIZE_MAX: ""
  TBM_HEAP_SIZE_MIN: ""
  PERFORMANCE_LOGGING: ""
  LIMIT_SQL_HASH_COUNT: ""

ADMIN_USERNAME

Admin κ³„μ •μ˜ μ‚¬μš©μž 이름

admin

ADMIN_PASSWORD

CLIENT_PORT

UI 접속 URL의 포트 번호

[μˆ˜μ • μœ„μΉ˜] metadata.name=client, name="client-port"인 ports의 nodePort μˆ˜μ •

80

COLLECTOR_PORT

μˆ˜μ§‘ λͺ¨λ“ˆ(TPM Agent)이 접속할 포트 번호

[μˆ˜μ • μœ„μΉ˜] metadata.name=collector, name="collector-port"인 ports의 nodePort μˆ˜μ •

[μ°Έκ³ ] κ΄€μ œ DBμ—μ„œ 접속할 수 μžˆλ„λ‘ SysMaster μ„œλ²„μ—μ„œ μ—΄λ € μžˆμ–΄μ•Ό 함.

apiVersion: v1
kind: ConfigMap
metadata:
  name: sysmasterdb8-metadb-configmap
  namespace: sysmasterdb
data:
  meta.conf: |
    pg_superuser: "postgres"
    pg_superuser_password: "postgres"
    pg_data: "/pgdata"
    pg_log: "/sysmaster/logs"
    pg_users:
      - name: "sysmaster"
        pass: "sysmaster"
        role_attr_flags: LOGIN
    pg_databases:
      - name: metadb
        owner: sysmaster
    pg_max_connections: 20
    pg_postgres_conf_params:
      - name: "log_filename"
        value: "metadb-%H%M.log"
      - name: "log_timezone"
        value: "Asia/Seoul"
      - name: "log_min_messages"
        value: "INFO"
      - name: "log_rotation_age"
        value: "60"
      - name: "log_rotation_size"
        value: "100MB"
      - name: "log_truncate_on_rotation"
        value: "on"

pg_max_connections

Meta DB(λ˜λŠ” Repository DB)의 μ΅œλŒ€ 컀λ„₯μ…˜ 수

log_timezone

Meta DB(λ˜λŠ” Repository DB)의 둜그 μ‹œκ°„ Time-Zone

2. 도컀(Docker) 이미지 ν‘Έμ‹œ

3. μΏ λ²„λ„€ν‹°μŠ€(Kubernetes) 였브젝트 μ •μ˜

4. μ„€μΉ˜ νŒŒλΌλ―Έν„° μ„€μ • - 계정 정보 및 보관 μ£ΌκΈ°

μ°Έκ³  1

SKIP_DB_USER_COUNT_MIGRATION_PATCH, SKIP_DAILY_SEGMENT_MIGRATION_PATCH νŒŒλΌλ―Έν„°λŠ” μ‹ κ·œ μ„€μΉ˜ μ‹œμ—λŠ” ν•„μš”ν•˜μ§€ μ•Šκ³ , SysMaster DB v8.1.2 μ΄ν•˜ κΈ°μ„€μΉ˜ ν™˜κ²½μ—μ„œ 버전 μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²½μš°μ—λ§Œ 적용이 ν•„μš”ν•˜λ‹€.

각 νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄, 버전 μ—…λ°μ΄νŠΈ μ‹œ ν•΄λ‹Ή νŒ¨μΉ˜κ°€ μžλ™μœΌλ‘œ μˆ˜ν–‰λ˜λ©΄μ„œ κΈ°μˆ˜μ§‘ 데이터λ₯Ό 기반으둜 DB_USER_COUNT, DAILY_SEGMENT 데이터λ₯Ό μƒμ„±ν•œλ‹€.

μ΄λ•Œ, κΈ°μˆ˜μ§‘ 데이터양에 따라 패치 μˆ˜ν–‰μ— μž₯μ‹œκ°„ μ†Œμš”λ  수 μžˆμœΌλ―€λ‘œ, ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό 톡해 μ‚¬μš©μžκ°€ μ„ νƒμ μœΌλ‘œ ν•΄λ‹Ή 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆλ‹€.

v8.1.3 μ΄μƒμ˜ SysMaster DB μ„œλΉ„μŠ€ 이용 μ‹œ, DB_USER_COUNT, DAILY_SEGMENT λ°μ΄ν„°λŠ” 각각 λ‹€μŒ λ©”λ‰΄μ—μ„œ μ‚¬μš©λœλ‹€.

1. DB_USER_COUNT 데이터 - Analysis > All Session Flow 메뉴

2. DAILY_SEGMENT 데이터 - Analysis > Segment Usage 메뉴

λ”°λΌμ„œ ν•΄λ‹Ή 패치λ₯Ό μƒλž΅ν•˜λ„λ‘ μ„€μ •(각 νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •ν•˜κ³  주석 제거)ν•˜λŠ” 경우, μœ„ 1, 2의 λ©”λ‰΄μ—μ„œ κ³Όκ±°(ν•΄λ‹Ή μ—…λ°μ΄νŠΈ 이전에 μˆ˜μ§‘λœ) 데이터가 μ‘°νšŒλ˜μ§€ μ•ŠλŠ”λ‹€. κ·ΈλŸ¬λ―€λ‘œ κΈ°λ³Έμ μœΌλ‘œλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€.

반면 λ‹€μŒκ³Ό 같은 경우, μ‚¬μš©μžλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거)ν•˜μ—¬ μ•žμ„œ μ„€λͺ…ν•œ 패치λ₯Ό μƒλž΅ν•  수 μžˆλ‹€.

  1. μœ„ 1, 2의 λ©”λ‰΄μ—μ„œ κ³Όκ±°(SysMaster DB v8.1.2 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ) 데이터 μ‘°νšŒκ°€ λΆˆν•„μš”ν•œ 경우

  2. (SysMaster DB μ„œλ²„ μžμ› μ œν•œ λ“±μ˜ 이유둜) ν•΄λ‹Ή 데이터 생성 패치 μ§„ν–‰ μ‹œ μž₯μ‹œκ°„ SysMaster DB μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•΄μ§€λŠ” 상황이 우렀되고, 이λ₯Ό λ°©μ§€ν•΄μ•Όλ§Œ ν•˜λŠ” 경우

μ‚¬μš©μžλŠ” ν•„μš”μ— 따라, ν•΄λ‹Ή 두 νŒŒλΌλ―Έν„° 쀑 μ›ν•˜λŠ” νŒŒλΌλ―Έν„°λ§Œ μ„ νƒμ μœΌλ‘œ μ„€μ •ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€.

μ°Έκ³  2

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λŠ” μ‹ κ·œ μ„€μΉ˜ μ‹œμ—λŠ” ν•„μš”ν•˜μ§€ μ•Šκ³ , SysMaster DB v8.2.1 μ΄ν•˜ κΈ°μ„€μΉ˜ ν™˜κ²½μ—μ„œ 버전 μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²½μš°μ—λ§Œ 적용이 ν•„μš”ν•˜λ‹€.

각 νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄, v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ„ λŒ€μƒμœΌλ‘œ v8.2.1 μ΄ν•˜ λ²„μ „μ—μ„œμ˜ κΈ°μˆ˜μ§‘ 데이터λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” νŒ¨μΉ˜κ°€ μžλ™μœΌλ‘œ μˆ˜ν–‰λœλ‹€.

v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ” λͺ©λ‘μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  • SQL

  • SQL_TEXT

  • SQL_PLAN

  • DB_SESSION

  • SESSION_TEMP

  • SESSION_UNDO

  • LOCK

  • SQL_TRACE

μœ„ ν…Œμ΄λΈ”μ— λŒ€ν•œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 과정은 κΈ°μˆ˜μ§‘ 데이터양에 따라 μž₯μ‹œκ°„ μ†Œμš”λ  수 μžˆλ‹€.

μ‚¬μš©μžλŠ” ν•„μš”μ— 따라, λ‹€μŒκ³Ό 같이 별도 νŒŒλΌλ―Έν„° 섀정을 톡해 μ‚¬μš©μžκ°€ μ„ νƒμ μœΌλ‘œ ν•΄λ‹Ή 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆλ‹€.

  • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    • v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•΄ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” 패치 μˆ˜ν–‰ μ—¬λΆ€λ₯Ό μ„€μ •

    • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거) μ‹œ, 패치 λŒ€μƒ ν…Œμ΄λΈ” 전체에 λŒ€ν•œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ μˆ˜ν–‰λ˜μ§€ μ•ŠμŒ.

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 섀정을 톡해 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šμ€ 경우, v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ 데이터가 μ‚­μ œλ˜λ―€λ‘œ 더 이상 μ‘°νšŒλ˜μ§€ μ•ŠλŠ”λ‹€.

κ·ΈλŸ¬λ―€λ‘œ κΈ°λ³Έμ μœΌλ‘œλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€.

반면 λ‹€μŒκ³Ό 같은 경우, μ‚¬μš©μžλŠ” ν•΄λ‹Ή λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μƒλž΅μ„ κ³ λ €ν•  수 μžˆλ‹€.

  1. v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆ 적용 λŒ€μƒ ν…Œμ΄λΈ”μ˜ κ³Όκ±°(SysMaster DB v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ) 데이터 μ‘°νšŒκ°€ λΆˆν•„μš”ν•œ 경우

  2. (SysMaster DB μ„œλ²„ μžμ› μ œν•œ λ“±μ˜ 이유둜) ν•΄λ‹Ή 데이터 생성 패치 μ§„ν–‰ μ‹œ μž₯μ‹œκ°„ SysMaster DB μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•΄μ§€λŠ” 상황이 우렀되고, 이λ₯Ό λ°©μ§€ν•΄μ•Όλ§Œ ν•˜λŠ” 경우

μ΄λ•Œ, μ‚¬μš©μžλŠ” μ•„λž˜ νŒŒλΌλ―Έν„° 섀정을 톡해 (λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 패치λ₯Ό μˆ˜ν–‰ν•˜λ˜,) 패치 μˆ˜ν–‰ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„)λ₯Ό λ³„λ„λ‘œ μ„€μ •ν•  μˆ˜λ„ μžˆλ‹€.

  • RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    • v8.3.0μ—μ„œ μ‹ κ·œ μŠ€ν‚€λ§ˆκ°€ 적용된 ν…Œμ΄λΈ”μ— λŒ€ν•œ v8.2.1 μ΄ν•˜ κΈ°μˆ˜μ§‘ 데이터 쀑 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λŒ€μƒ 데이터 λ²”μœ„(일 λ‹¨μœ„ κΈ°κ°„) μ„€μ •

      • 예λ₯Ό λ“€μ–΄, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό 7둜 μ„€μ •(주석 제거)ν•˜λŠ” 경우, v8.2.1 μ΄ν•˜μ—μ„œ μˆ˜μ§‘λœ 데이터 쀑 졜근 7일 μ΄λ‚΄μ˜ 데이터에 λŒ€ν•΄μ„œλ§Œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ μˆ˜ν–‰λ¨.

상기 μ„€λͺ…을 μ°Έκ³ ν•˜μ—¬, μ‚¬μš©μžλŠ” 운영 ν™˜κ²½μ— λ§žλŠ” μ μ ˆν•œ νŒŒλΌλ―Έν„° 섀정을 선택, μ μš©ν•  수 μžˆλ‹€.

5. μ„€μΉ˜ νŒŒλΌλ―Έν„° μ„€μ • - 포트

6. Meta DB 및 Repository DB νŒŒλΌλ―Έν„° μ„€μ •

μ°Έκ³ 

Meta DB 및 Repository DB νŒŒλΌλ―Έν„° 변경이 ν•„μš”ν•œ 경우, κ΄€λ ¨ νŒŒλΌλ―Έν„° 섀정은 OpenSQL μ‚¬μš© κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•  수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ κ΄€λ ¨ νŒŒλΌλ―Έν„° 섀정을 μž„μ˜ μˆ˜μ •ν•˜λŠ” 경우, SysMasterDB μ„œλ²„μ˜ 정상 λ™μž‘μ΄ 보μž₯λ˜μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ μœ„ ν‘œμ— λͺ…μ‹œλœ νŒŒλΌλ―Έν„° μ™Έ λ‹€λ₯Έ νŒŒλΌλ―Έν„°λŠ”, κΈ°λ³Έ 제곡 섀정값을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€.

κ΄€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μƒνƒœ 확인과 Admin κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” μ„œλ²„

Admin κ³„μ •μ˜ μ•”ν˜Έ

8292

SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH νŒŒλΌλ―Έν„°λ₯Ό true둜 μ„€μ •(주석 제거)ν•œ 경우, λ³Έ νŒŒλΌλ―Έν„° 섀정은 λ¬΄μ‹œλ¨.