SAP HANA, express edition은 무료로 SAP HANA를 사용해 볼 수 있습니다. SAP 개발자 센터 를 통해서 바이너리를 다운 받아 설치하는 방법과 도커 허브에서 도커파일을 다운 받아 실행 하는 방법이 있습니다.
이 글에서는 도커 허브에서 HANA, express edition을 받아 실행하는 방법에 대해서 설명하겠습니다.
먼저 docker login
을 실행합니다.
$ sudo docker login
SAP HANA, express edition (database services)
선택
Setup Instruction
버튼 클릭
docker pull
실행
$ sudo docker pull store/saplabs/hanaexpress:2.00.045.00.20200121.1
doker pull
이 완료되면 docker images
로 도커 이미지 확인
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
store/saplabs/hanaexpress 2.00.045.00.20200121.1 aeb6e1b699dc 7 weeks ago 3.58GB
fs.file-max=20000000
fs.aio-max-nr=262144
vm.memory_failure_early_kill=1
vm.max_map_count=135217728
net.ipv4.ip_local_port_range=40000 60999
$ mkdir -p /data/<directory_name>
$ chown <hxeadm userID or name>:<sapsys groupID or name> /data/<directory_name>
예)
$ mkdir -p /data/express_edition
$ chown 12000:79 /data/express_edition
HANA 컨테이너를 실행하기 위해서는 비밀번호를 미리 설정해야 합니다. 도커 실행시에 비밀번호를 지정해주어야 하기 때문입니다.
비밀번호는 json 파일에 저장해야 합니다. 이 파일은 로컬에 위치하거나 URL로 접근 가능한 곳에 위치해야 합니다.
/data
디렉토리 밑에 password.json
을 생성합니다.
{
“master_password: “<password>”
}
또는
{
“system_user_password” : “<password>”,
“default_tenant_system_user_password” : “<second_password>”
}
(예)
{
“master_password: “HXEHana1”
}
Docker Container의 기본 유저가 생성된 파일에 접근 할 수 있도록, 접근 권한을 추가합니다.
sudo chmod 600 /data/<directory_name>/<file_name>.json
sudo chown 12000:79 /data/<directory_name>/<file_name>.json
password.json
파일 생성 후 URL로 접근 가능한 곳에 파일을 올립니다.
(예) 깃헙에 업로드
https://raw.githubusercontent.com/yeongseon/temp/master/password.json
다음 커맨드로 HANA express edition 도커를 실행한다.
$ sudo docker run -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014 -v /data/<directory_name>:/hana/mounts \
--ulimit nofile=1048576:1048576 \
--sysctl kernel.shmmax=1073741824 \
--sysctl net.ipv4.ip_local_port_range='40000 60999' \
--sysctl kernel.shmmni=524288 \
--sysctl kernel.shmall=8388608 \
--name <container_name> \
store/saplabs/hanaexpress:2.00.040.00.20190729.1 \
--passwords-url <file://<path_to_json_file> OR http/https://<url_to_json_file>> \
--agree-to-sap-license
예)
$ sudo docker run -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014 -v /data/express_edition:/hana/mounts \
—ulimit nofile=1048576:1048576 \
—sysctl kernel.shmmax=1073741824 \
—sysctl net.ipv4.ip_local_port_range='40000 60999’ \
—sysctl kernel.shmmni=524288 \
—sysctl kernel.shmall=8388608 \
--name express_edition \
store/saplabs/hanaexpress:2.00.045.00.20200121.1 \
—passwords-url https://raw.githubusercontent.com/yeongseon/temp/master/password.json \
—agree-to-sap-license
Noe: docker run
이 중간에 실패 했을 경우에는 Docker container를 삭제 후에 다시 실행 해야합니다.
$ sudo docker rm <container_name>
위의 커맨드를 실행 후 잠시 후 (몇분 정도 소요) 다음 메시지가 나타납니다.
Ready at: Sun Mar 15 01:42:45 UTC 2020
Startup finished!
docker exec
로 도커 컨테이너의 bash
를 실행합니다.
$ sudo docker exec -it <container_name> bash
(예)
$ sudo docker exec -it express_edition bash
whoami
커맨드로 현재 로그인 사용자 정보를 확인합니다.
$ whoami
(예)
hxeadm@b510f6dc1f06:/usr/sap/HXE/HDB90> whoami
hxeadm
hxeadm로 로그인 되어 있는 것을 알 수 있습니다.
다음으로 HDB info
커맨드를 통해서 HANA 상태를 확인할 수 있습니다.
$ HDB info
(예)
hxeadm@b510f6dc1f06:/usr/sap/HXE/HDB90HDB info
USER PID PPID %CPU VSZ RSS COMMAND
hxeadm 2017 0 0.0 21056 4044 bash
hxeadm 2223 2017 20.0 20252 3292 \_ /bin/sh /usr/sap/HXE/HDB90/HDB info
hxeadm 2254 2223 0.0 43528 3300 \_ ps fx -U hxeadm -o user:8,pid:8,ppid:8
hxeadm 1 0 0.0 21032 4004 /bin/bash /run_hana --passwords-url https://ra
hxeadm 808 1 0.0 359840 52104 hdbdaemon
hxeadm 814 808 29.7 3546352 2647512 \_ hdbnameserver
hxeadm 1152 808 1.3 430364 117124 \_ hdbcompileserver
hxeadm 1153 808 1.4 697036 147472 \_ hdbpreprocessor
hxeadm 1196 808 1.6 1392112 374588 \_ hdbwebdispatcher
hxeadm 1304 808 35.2 4077492 3133340 \_ hdbindexserver -port 39040
hxeadm 941 1 0.0 611836 47556 hdbrsutil --start --port 39001 --volume 1 --v
hxeadm 1395 1 0.0 611832 47560 hdbrsutil --start --port 39040 --volume 2 --v
hdbsql
을 이용하여 System Database에 로그인 합니다.
hdbsql -I 90 -d <system_database> -u SYSTEM -p <password>
(예)
hxeadm@b510f6dc1f06:/usr/sap/HXE/HDB90> hdbsql -i 90 -d HXE -u SYSTEM -p HXEHana1
Welcome to the SAP HANA Database interactive terminal.
Type: \h for help with commands
\q to quit
hdbsql HXE=>
이상으로 SAP HANA, expression edition을 Docker 실행하는 방법에 대해서 살펴보았습니다.
https://developers.sap.com/tutorials/hxe-ua-install-using-docker.html