hdbsql 은 SAP HANA DB 에서 명령을 실행하는 Command-line 도구이다.
hdbsql 을 사용하여, Command-line 으로 SQL 문과 DB 프로시저를 실행하고, DB 와 객체에 대한 정보를 쿼리할 수 있다.
SAP HANA 소프트웨어, SAP HANA Client 설치 시, 함께 설치되어 제공되며, 자주는 아니지만 가끔씩 사용할 일이 있으니, 해당 글을 참고하여 필요한 명령어를 조합하면 된다.
기본적으로 hdbsql 을 통해 DB 에 접속하는 명령어는 다음과 같다. (Multitenant Database Container, MDC)
hdbsql -n <Host> -i <Instance_number> -u <Database_user> -p <Database_user_password> -d <Database_name>
또는, 서버에 저장된 hdbusersotre 자격증명을 통해서 DB 유저/패스워드를 입력하지 않고도 로그인할 수 있다.
hdbsql -U <hdbuserstore_KEY>
hdbuserstore 자격증명 KEY 이름은
hdbuserstore list
명령어를 통해서 확인할 수 있다.
hdbsql 에서 추가적인 옵션을 통해 더 자세한 정보를 제공하거나, 입출력 설정을 할 수 있다.
여기서는 많이 사용되고 주요한 옵션에 대해서만 기록한다.
모든 옵션은 아래 SAP Help Portal 에서 확인할 수 있다.
Option | Desc |
---|---|
-d | -d <database-name> MDC 시스템에서 TENANT DB 이름을 지정 |
-i | -i <Instance Number> 시스템 인스턴스 번호 지정 |
-n | -n <Host>[:<Port>] / 기본값 localhost:30015시스템이 설치된 컴퓨터 이름과 포트번호를 지정 |
-u | -u <Database-User> 특정 DB 유저를 지정 |
-p | -p <Database-User Password 특정 DB 유저의 패스워드를 지정 |
-U | -U <User-store-KEY> User Store 자격 증명 지정 |
-r | 기본으로 준비된 명령문을 사용하는 대신 SQL 문을 직접 실행 |
-S | -S <SQL-Mode> SQL 모드 선택 : INTERNAL / SAPR3 |
-stdin | hdbsql 입력에서 표준 입력을 받을 수 있는 옵션 텍스트 파일에 민감 정보를 입력하고, 해당 파일을 입력으로 전달해줄때 사용 ex) ` |
-V | -V <Variable-definition>[,...] [prompt] or [noprompt] 변수 지정 |
-z | AUTOCOMMIT 모드 비활성화 |
Option | Desc |
---|---|
-c | -c <separator> / 기본값 ;파일에서 명령어를 가져올때, 개별 명령을 구분하는 구분자 지정. |
-l | -l <File> 배치 파일에서 명령을 가져오며, 구분자(기본값 ;)를 사용해 개별 명령을 구분한다. |
-m | hdbsql 명령어 입력 시, Multiple-Line Mode 활성화 |
-o | -o <Result-File> 실행 결과를 지정한 파일에 기록 |
-O | -O <Result-File> 실행 결과를 지정한 파일에 추가한다. 파일이 없으면 새 파일을 생성하여 기록 |
-quiet | hdbsql 시작 배너 미표시 |
-resultencoding | -resultencoding <Encoding-Type> 결과 데이터에 대해서 Encoding 설정 (UTF-8/ LATIN1/ AUTO) |
Option | Desc |
---|---|
-A | 정렬된 형식으로 실행 결과를 출력 |
-a | 실행 결과에서 Column(열) 이름 제외 |
-b | -b <maximum-length> or all / 기본값 32byteLOB값 출력 문자 제한, all 지정 시, 전체 바이너리 길이 표시 |
-C | escape 출력 형식 제한 |
-f | 전송된 모든 SQL 문 반환 |
-F | -F <separator> 실행 결과에서 열 사이 구분기호 문자 지정 |
-g | -g <Null-value> / 기본값 ?실행 결과에서 Null 값에 대한 문자 지정 |
Option | Desc |
---|---|
-t | 디버그 정보 출력 |
-T | -T <File> SQLDBC 추적을 활성화하여, Trace 결과를 지정한 파일에 기록 |
-v | SAP HANA hdbsql 프로그램 버전 정보 표시 |
기본적으로 모든 정보와 명령은 hdbsql 을 사용하여 확인할 수 있다.
그러나, 대부분의 경우는 SAP HANA Studio 또는 SAP HANA Cockpit 으로 쉽게 확인할 수 있으며,
이러한 도구의 사용이 제한될 경우에 hdbsql 을 사용하여 정보 조회나 명령 실행이 가능하다.
OS 상에서 BACKUP 구문을 스크립트로 생성하여, HANA DB 백업을 수행할 수 있다.
hdbsql -d SYSTEMDB -i <Instance_number> -u SYSTEM -p <password> "BACKUP DATA USING FILE ('/hana/backup/')"
hdbsql -d <TENANTDB_Name> -i <Instance_number> -u SYSTEM -p <password> "BACKUP DATA USING FILE ('/hana/backup/')"
다음 구문으로, OS 상의 기존재하는 백업 파일을 사용해 hdbsql 로 복구가 가능하다.
hdbsql -d SYSTEMDB -i <Instance_number> -u SYSTEM -p <password> "RECOVER DATABASE FOR <TENANTDB_Name> UNTIL TIMESTAMP '2000-01-01 00:00:00' CHECK ACCESS ALL"
모든 SQL Statement 는 아래 SAP Help Portal 에서 확인할 수 있다.
◼ ALTER DATABASE Statement (Tenant Database Management)
◼ ALTER SYSTEM ... (All ALTER SYSTEM Statements)
◼ ALTER TABLE Statement (Data Definition)
◼ ALTER USER Statement (Access Control)
◼ BACKUP DATA Statement (Backup and Recovery)
◼ CONNECT Statement (Session Management)
◼ CREATE DATABASE Statement (Tenant Database Management)
◼ CREATE TABLE Statement (Data Definition)
◼ CREATE USER Statement (Access Control)
◼ DELETE Statement (Data Manipulation)
◼ DROP DATABASE Statement (Tenant Database Management)
◼ DROP TABLE Statement (Data Definition)
◼ DROP USER Statement (Access Control)
◼ EXPORT Statement (Data Import Export)
◼ GRANT Statement (Access Control)
◼ IMPORT Statement (Data Import Export)
◼ INSERT Statement (Data Manipulation)
◼ RECOVER DATABASE Statement (Backup and Recovery)
◼ RENAME DATABASE Statement (Tenant Database Management)
◼ RENAME TABLE Statement (Data Definition)
◼ REVOKE Statement (Access Control)
◼ SELECT Statement (Data Manipulation)
◼ UPDATE Statement (Data Manipulation)