Table of Contents | ||
---|---|---|
|
개요
...
본 문서는 Altibase 제품을 설치하고 구동/중지하는 방법에 대해 기본적인 내용을 설명한다.
기본적인 설치 이후 참고해야 하는 내용은 별도의 문서 및 URL로 제공되니 참고하도록 한다.
...
Note |
---|
이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다. 이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다. Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다. |
사전 절차
...
- 서버(시스템) 내에 Altibase 패키지 설치를 위한 OS 사용자 계정이 생성되어 있어야 한다.
- Altibase 패키지 인스톨러를 support.altibase.com 에서 다운로드 받아 시스템에 파일을 업로드 한다.
- 설치를 진행하기에 전에 Altibase Version 정보, OS Type, OS Bit정보, Mac Address 정보를 확인하여 support.altibase.com 에서 임시 라이선스 발급 또는 Altibase 영업부서에 문의하여 계약여부 확인 후 정식 라이선스 발급을 진행한다.
...
Code Block | ||||
---|---|---|---|---|
| ||||
altibase-HDB-server-6.5.1.X.X-LINUX-X86-64bit-release.run altibase-server-7.1.0.X.X-LINUX-X86-64bit-release.run |
Altibase 패키지 설치 및 DB 생성 절차
...
Altibase 의 EOS(End of Service) 정책에 따라 지원되는 버전들의 DB 생성 방법을 설명한다.
이 문서의 작성 시점 기준으로 최신 Altibase 버전은 'Altibase ver. 7' 이며 'Altibase ver. 6' 미만의 버전들은 EOS 대상이다.
Altibase 제품은 DB 생성을 하기 전까지는 구동할 수 없기에 구동 전 아래와 같이 DB 생성을 진행해야 한다.
Altibase 패키지 다운로드 및 설치 방법
...
Altibase 패키지 파일에 실행 권한을 부여한다.
Code Block theme DJango language bash $ ls -al -rw-r--r-- 1 altibase dba 74639019 Jul 30 14:46 altibase-HDB-server-6.5.1.7.1-LINUX-X86-64bit-release.run $ chmod 744 altibase-HDB-server-6.5.1.7.1-LINUX-X86-64bit-release.run $ ls -al -rwxr--r-- 1 altibase dba 74639019 Jul 30 14:46 altibase-HDB-server-6.5.1.7.1-LINUX-X86-64bit-release.run
Altibase 패키지를 실행하고 Installation directory 에 Altibase 엔진 설치를 위해 절대 경로를 설정한다.
Code Block theme DJango language bash $ ./altibase-HDB-server-6.5.1.7.1-LINUX-X86-64bit-release.run ---------------------------------------------------------------------------- Welcome to the ALTIBASE HDB Server 6.5.1.7.1 setup wizard. ---------------------------------------------------------------------------- Installation Directory Please specify the installation directory for ALTIBASE HDB Server 6.5.1.7.1 Installation directory [/home/altibase/]: /home/altibase/altibase_home (설정 값 입력 후 엔터 입력)
DB 생성 방식을 결정한다. (기본값 = 1)
* Full 패키지 설치 및 패치 선택 옵션이며 Altibase 패키지 기본 설치는 Full 옵션을 선택한다.Code Block theme DJango language bash Please select the installation type. Installation type [1] Full installation: full package install [2] Patch: patch package install Please choose an option [1] : 1 (설정 값 입력 후 엔터 입력)
커널 설정값 가이드를 확인할 수 있다. (설치 경로 하위 install 디렉토리의 pre_install.sh 를 통해서도 확인할 수 있다.)
Code Block theme DJango language bash ---------------------------------------------------------------------------- Pre-Installation Requirements for ALTIBASE HDB It is first necessary to set your system environment to ensure that ALTIBASE HDB will run properly. Before installing ALTIBASE HDB, the kernel parameter values must be set using the root user account. The kernel parameter values may be modified after installation; however, they must be set prior to starting ALTIBASE HDB. Please refer to the installation manual and pre_install.sh script file. (pre_install.sh: '$Altibase_install_dir'/install/pre_install.sh) ================ LINUX ================ [ How to modify kernel parameter values ] echo 512 32000 512 512 > /proc/sys/kernel/sem echo 872415232 > /proc/sys/kernel/shmall # shmall If it is desired to use ALTIBASE HDB in shared memory mode, the value of 'shmall' must be set. This value determines the maximum size of an Altibase database. Press [Enter] to continue : These values must be set in order for ALTIBASE HDB to operate properly. They must be set such that they are suitable for the system configuration. ===================================== Press [Enter] to continue : (엔터 입력)
DB Name 을 결정한다. (기본값 = mydb)
* DB Name 은 변경 시 DB 재구성이 필요하다.Code Block theme DJango language bash ---------------------------------------------------------------------------- ALTIBASE HDB Property Settings Step 1: Basic Database Operation Properties Database name [mydb] : mydb (설정 값 입력 후 엔터 입력)
DB PORT 를 설정한다. (기본값 = 20300)
Code Block theme DJango language bash ALTIBASE HDB connection port number (1024-65535) [20300] : 20300 (설정 값 입력 후 엔터 입력)
MEM_MAX_DB_SIZE 값을 결정한다. (기본값 = 2G)
* MEM_MAX_DB_SIZE 는 memory 에 저장할 데이터의 '최대 값'을 의미하며, 미리 할당하는 것이 아니라 제한 값을 의미한다.Code Block theme DJango language bash Maximum size of memory database - MIN value: 16M (K = kB, M = MB, G = GB) [2G] : 2G (설정 값 입력 후 엔터 입력)
버퍼풀의 총 메모리 크기를 결정한다. (기본값 = 128M)
* BUFFER_AREA_SIZE 는 디스크테이블 관련하여 버퍼영역으로 사용할 메모리 크기의 '최대 값'을 의미하며, 미리 할당하는 전체 값을 의미한다.Code Block theme DJango language bash Buffer area size for caching disk-based database pages - MIN value: 1M (K = kB, M = MB, G = GB) [128M] : 128M (설정 값 입력 후 엔터 입력)
DB 생성 여부를 결정한다. (기본값 = YES)
Code Block theme DJango language bash Do you want to create a database after the installation process is complete? [1] YES [2] NO Please choose an option [1] : 1 (설정 값 입력 후 엔터 입력)
DB의 초기 Database 크기를 결정한다. (기본값 = 10M)
Code Block theme DJango language bash ALTIBASE HDB Property Settings Step 2: Database Creation Properties Initial database size - 4M-4G (K = kB,M = MB,G = GB) [10M] : 10M (설정 값 입력 후 엔터 입력)
DB의 아카이브/노아카이브를 설정을 결정한다. (기본값 = No archivelog )
Code Block theme DJango language bash Database archive logging mode [1] No archivelog [2] Archivelog Please choose an option [1] : 1 (설정 값 입력 후 엔터 입력)
DB의 문자셋(Character set) 설정을 결정한다. (기본값 = UTF8)
Code Block theme DJango language bash Database character set [1] UTF-8 [2] MS949 [3] US7ASCII [4] KO16KSC5601 [5] BIG5 [6] GB231280 [7] MS936 [8] SHIFT-JIS [9] EUC-JP [10] MS932 Please choose an option [1] : 1 (설정 값 입력 후 엔터 입력)
...
정상적으로 DB생성 작업이 완료되면 dbs, logs 디렉토리에는 아래와 같이 데이터파일, 체크포인트 이미지파일, 로그앵커파일, 로그파일들이 생성되어야 한다.
Code Block theme DJango language bash $ ls -al $ALTIBASE_HOME/dbs SYS_TBS_MEM_DATA-0-0 SYS_TBS_MEM_DATA-1-0 SYS_TBS_MEM_DIC-0-0 SYS_TBS_MEM_DIC-1-0 dwfile-1.dwf dwfile0.dwf dwfile1.dwf system001.dbf temp001.dbf undo001.dbf $ ls -al $ALTIBASE_HOME/logs loganchor0 loganchor1 loganchor2 logfile0 logfile1 logfile2 logfile3 logfile4 logfile5
정상적으로 DB생성 작업이 완료되면 Altibase 패키지 설치를 진행한 OS 사용자 계정에 대해 자동으로 $ALTIBASE_HOME 설정 및 PATH가 환경변수에 등록된다.
Code Block theme DJango language bash $ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH # ALTIBASE_ENV . /home/altibase/altibase_home/conf/altibase_user.env $ vi altibase_user.env ALTIBASE_HOME=/home/altibase/altibase_home;export ALTIBASE_HOME PATH=${ALTIBASE_HOME}/bin:${PATH};export PATH LD_LIBRARY_PATH=${ALTIBASE_HOME}/lib:${LD_LIBRARY_PATH};export LD_LIBRARY_PATH CLASSPATH=${ALTIBASE_HOME}/lib/Altibase.jar:${CLASSPATH};export CLASSPATH
Altibase 디렉토리 구성 요소
...
Altibase 패키지를 설치하면 아래와 같은 디렉토리가 생성된다.
기본 설치 및 구동에 대한 부분으로 설치 후 사용자가 확인할 주요 디렉토리들만 설명한다. (상세한 것은 매뉴얼을 참고하도록 한다.)
디렉토리 | 설명 |
admin | Altibase 성능뷰를 쉽게 볼 수 있는 예제 SQL 및 View 생성 파일 디렉토리 |
bin | Altibase 실행 파일, 유틸리티(실행파일) 디렉토리 |
include | Altibase 응용 프로그램 개발을 위해 제공되는 헤더파일 디렉토리 |
install | Altibase 응용 프로그램 개발을 위한 makefile을 위한 매크로 설정 예 등등이 포함된 altibase_env.mk 파일과 README 파일 디렉토리 |
lib | Altibase 응용 프로그램 개발을 위해 제공되는 라이브러리 디렉토리 |
sample | Altibase 응용 프로그램을 샘플로 제공한 예제 프로그램 소스(CLI, APRE, JDBC, C/C++ 등등) 디렉토리 |
trc | Altibase 운영 상태 정보가 기록되는 Trace 로그파일 위치 |
conf | Altibase 설정 파일(altibase.properties, aexport.properties)의 위치 및 해당 프로퍼티 예제 파일(sample), 라이선스 파일의 위치 디렉토리 |
logs | Altibase 로그앵커파일과 로그파일이 생성되는 기본 경로 |
dbs | Altibase 데이터파일들이 생성되는 기본 경로 |
arch_logs | Altibase 복구를 위해 로그 파일을 백업하는 백업 디렉토리 |
altiComp | Altibase 데이터베이스간의 이중화 운영시 장애로 인해 발생한 데이터 불일치를 해결하는 유틸리티 디렉토리 |
msg | Altibase 오류 메시지를 수록한 파일들을 포함하는 디렉토리 |
Altibase 패키지 관련 설치시 주의 사항
...
- Altibase는 공식적으로 32비트 패키지 제품을 제공하지 않는다.
단, 클라이언트 제품(클라이언트 서버)에 대해 개발 및 연동을 위한 패키지 제품을 제공한다.
클라이언트의 제품은 패키지 이름 앞에 “altibase-HDB-client-6.5.1.x.x” 라는 이름으로 시작한다.
제품 패키지에는 컴파일러 정보가 포함되기 때문에 예로 gcc/g++ 을 사용할 경우 해당 컴파일러의 버전을 사전에 확인하도록 한다. - Altibase 클라이언트 패키지 사용 여부, 제공 가능한 버전에 대한 내용은 추가적으로 02-2082-1114 또는 support.altibase.com 으로 기술 문의를 통해 자세한 내용을 안내 받으실 수 있다.
Altibase 데이터베이스 생성에 대한 설명
...
- Altibase 데이터베이스 생성 방법에 대한 자세한 내용은 아래의 URL에 구체적으로 기술한다.
25. ALTIBASE 데이터베이스 생성 가이드
Altibase 구동
...
Altibase 패키지를 위와 같이 기본 설치 및 DB생성이 완료되어야 정상적인 구동이 가능하다.
해당 파트에서는 사용자가 DB를 구동하는 방법에 대해 설명한다.
- Altibase 패키지는 설치 및 DB생성까지 완료한 경우 구동을 위해서는 해당 설치된 OS사용자 계정에서 환경변수파일을 실행한다.
환경변수파일은 OS종류마다 다르기에 해당 버젼에 대해 환경변수에 $ALTIBASE_HOME 설정 및 PAHT가 제대로 구성되었는지 확인한다.
Linux를 예를 들어 환경변수 파일에 $ALTIBASE_HOME 설정 및 PATH가 제대로 설정되어 있는지 확인 후 환경파일을 실행한다. ($ . $HOME/.bash_profile 또는 source $HOME/.bash_profile 실행)
Altibase 구동 절차
...
OS계정의 프롬프트창에서 아래와 같이 "server start" 라는 명령어를 수행하여 Altibase 구동이 가능하다. (사용자가 쉽게 구동할 수 있도록 "server" 라는 쉘스크립트를 통해 명령어를 수행하게끔 제공하고 있다.)
Code Block theme DJango language bash $ server start ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = UNIX, SERVER = localhost [ERR-910FB : Connected to idle instance] Connecting to the DB server.... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL TRANSITION TO PHASE : META [SM] Recovery Phase - 1 : Preparing Database : Dynamic Memory Version => Parallel Loading [SM] Recovery Phase - 2 : Loading Database [SM] Recovery Phase - 3 : Skipping Recovery & Starting Threads... Refining Disk Table [SM] Refine Memory Table : ........................................................................... [SUCCESS] [SM] Rebuilding Indices [Total Count:137] ............................................................ [SUCCESS] TRANSITION TO PHASE : SERVICE [CM] Listener started : TCP on port 20300 [IPV4] [CM] Listener started : UNIX [CM] Listener started : IPC [RP] Initialization : [PASS] --- STARTUP Process SUCCESS --- Command executed successfully.
위와 같은 방법 이외에 iSQL로 접속하시어 "startup service" 명령어를 수행하여 Altibase 구동이 가능하다.
Code Block theme DJango language bash $ isql -sysdba ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- Write UserID : SYS ("SYS" 유저 입력) Write Password : MANAGER (기본 패스워드 "MANAGER" 입력) ISQL_CONNECTION = UNIX, SERVER = localhost [ERR-910FB : Connected to idle instance] iSQL(sysdba)> startup service; Connecting to the DB server.... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL TRANSITION TO PHASE : META [SM] Recovery Phase - 1 : Preparing Database : Dynamic Memory Version => Parallel Loading [SM] Recovery Phase - 2 : Loading Database [SM] Recovery Phase - 3 : Starting Recovery Initializing Active Transaction List Redo Refine Disk Table.. Undo [SM] Refine Memory Table : ........................................................................... [SUCCESS] [SM] Rebuilding Indices [Total Count:137] ............................................................ [SUCCESS] TRANSITION TO PHASE : SERVICE [CM] Listener started : TCP on port 20300 [IPV4] [CM] Listener started : UNIX [CM] Listener started : IPC [RP] Initialization : [PASS] --- STARTUP Process SUCCESS --- Command executed successfully.
Altibase 구동 실패에 대한 간단한 예시
Code Block theme DJango language bash 1) 환경변수에 $ALTIBASE_HOME 설정, PATH가 설정되어 있지 않거나 환경변수파일이 수행되어 있지 않을 경우 $ server start -bash: server: command not found $ isql -sysdba [ISQL]ERROR: Could not SQLConnect 2) DB생성을 하지 않은 경우 $ server start ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = UNIX, SERVER = localhost [ERR-910FB : Connected to idle instance] Connecting to the DB server.... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL [FAILURE] The log anchor file does not exist or is not valid. Startup Failed.... [ERR-91015 : Communication failure.] 3) 라이선스를 입력하지 않은 경우 $ server start ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = UNIX, SERVER = localhost [ERR-910FB : Connected to idle instance] Connecting to the DB server...............................Startup Failure. Check Your Environment. $ vi $ALTIBASE_HOME/trc/altibase_boot.log ($ALTIBASE_HOME/trc 디레토리안에는 Trace로그가 기록되며 구동 실패에 대한 로그를 altibase_boot.log에서 확인하실 수 있다.) ========================= 생 략 ========================= [2019/09/01 02:03:35 6][PID:108941][Thread-140685391135488][LWP-108941] No valid license present! ========================= 생 략 =========================
Altibase 중지
...
Altibase 설치가 완료 및 정상적으로 구동되었다면 해당 파트에서는 사용자가 DB를 중지하는 방법에 대해 설명한다.
Altibase 중지 절차
...
OS계정의 프롬프트창에서 아래와 같이 "server stop" 라는 명령어를 수행하여 Altibase 중지가 가능하다. (사용자가 쉽게 종료할 수 있도록 "server" 라는 쉘스크립트를 통해 명령어를 수행하게끔 제공하고 있다.)
Code Block theme DJango language bash $ server stop ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = UNIX, SERVER = localhost Ok..Shutdown Proceeding.... TRANSITION TO PHASE : Shutdown Altibase [RP] Finalization : PASS shutdown immediate success.
위와 같은 방법 이외에 iSQL로 접속하시어 "shutdown immediate" 명령어를 수행하여 Altibase 중지이 가능하다. (shutdown 명령어 수행시 옵션은 abort, immediate, normal 로 종료가 가능)
Code Block theme DJango language bash $ isql -sysdba ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- Write UserID : SYS ("SYS" 유저 입력) Write Password : MANAGER (기본 패스워드 "MANAGER" 입력) iSQL(sysdba)> shutdown abort; iSQL(sysdba)> shutdown immediate; iSQL(sysdba)> shutdown normal;
* 위 shutdown을 진행시 3가지 방법으로 중지가 가능하며 아래의 설명을 참고한다.
옵션
설명
abort
현재 접속된 모든 세션(클라이언트)을 강제 종료시키고 즉시 구동을 중지한다. Altibase를 중지하기 때문에 정상적인 shutdown과정 없이 즉시 종료한다. (이후 구동시 데이터 복구작업을 진행하며 아무런 문제가 없음.)
immediate
현재 접속된 모든 세션(클라이언트)을 강제 종료시키고 정상적인 shutdown과정을 거쳐 중지한다.
normal
현재 접속된 모든 세션(클라이언트)이 정상 종료하기를 대기한 이후에 정상적인 shutdown과정을 거쳐 중지한다.
“normal” 옵션을 사용하는 경우 세션(클라이언트)이 종료하기를 기다려야 하기 때문에 이런 이유를 인지하지 못한 채 Altibase를 중지하면 shutdown과정이 진행되지 않는 것처럼 착각할 수 있음으로 사용에 주의 및 종료여부에 대해 확인을 필요로 한다.
Altibase 구동 및 중지에 대한 설명
...
- Altibase 구동 및 중지에 대한 자세한 내용은 아래의 URL에 구체적으로 기술한다.
43. Altibase 구동/중지 과정의 이해
Altibase 간단한 사용 예시
...
- 본 장에서는 DB사용자의 생성 및 테이블스페이스의 생성이나 테이블의 생성 방법에 대해 간단하게 예시로 설명한다.
- Altibase는 SQL92표준을 준수하기 때문에 다른 DBMS와 구문상의 큰 차이는 없다.
- 자세한 SQL문 사용법에 대해서는 Altibase가 제공하는 매뉴얼을 참조하도록 한다. (메뉴얼은 support.altibase.com 으로 접속 및 로그인하시어 문서 확인 및 다운로드가 가능하다.)
iSQL 명령어
...
Altibase는 사용자가 SQL문을 터미널 및 응용프로그램에서 사용할 수 있도록 제공하는 유틸리티 프로그램이다.
* DB를 생성한 시점에는 “SYS” 라는 DBA권한의 사용자만 존재하기 때문에 $ALTIBASE_HOME/bin/is 만 실행 및 접속이 가능하다. (“is”는 iSQL을 쉽게 접속 및 사용할 수 있도록 만든 쉘 스크립트로 제공한다.)Code Block theme DJango language bash $ is ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = TCP, SERVER = localhost, PORT_NO = 20300 iSQL> select sysdate from dual; SYSDATE --------------- 01-SEP-2019 1 row selected. $ isql -s 127.0.0.1 -u sys -p manager -port 20300 ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300 iSQL> select sysdate from dual; SYSDATE --------------- 01-SEP-2019 1 row selected.
* 각 입력 옵션은 다음과 같다.
입력옵션
설명
-u
DB 사용자의 계정 이름을 입력한다.
-p
DB 사용자의 계정의 비밀번호(패스워드)를 입력한다.
-s
접속하고자 하는 대상 DB가 위치하는 서버의 네트웍 IP 주소를 입력하거나 로컬서버의 경우 127.0.0.1 을 입력한다.
-port
접속하고자 하는 대상 DB에 설정되어 있는 PORT_NO를 입력한다. ($ALTIBASE_HOME/conf/altibase.properties 파일에서 PORT_NO를 확인할 수 있다.
만일, DB문자셋(Character set)을 US7ASCII로 설정하지 않은 경우에는 DB를 생성할 때 지정하였던 문자셋을 환경변수로 설정을 해주어야 한다.
* DB를 생성한 시점에는 문자셋(Character set)을 예로 MS949로 설정하여 생성 및 구동하였을 경우
한글 데이터에 대한 입력 및 출력에 대해서는 접속하는 세션(클라이언트)도 동일하게 MS949로 ALTIBASE_NLS_USE의 문자셋(Character set)을 설정 및 적용하여 접속해야 한다.Code Block theme DJango language bash 예시) $ server create MS949 UTF8 -> Altibase의 DB생성시 문자셋(Character set)을 MS949로 설정 및 구성하였을 경우 $ is ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = TCP, SERVER = localhost, PORT_NO = 20300 iSQL> create table test (c1 varchar(100)); Create success. iSQL> insert into test values ('Altibase'); 1 row inserted. iSQL> insert into test values ('알티베이스'); 1 row inserted. -> Altibase의 문자셋(Character set)을 MS949인 상황에서 임의의 한글데이터를 입력하여 저장 $ is ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = TCP, SERVER = localhost, PORT_NO = 20300 iSQL> set vertical on; iSQL> select * from v$nls_parameters; SESSION_ID : 1 NLS_USE : US7ASCII (접속되어 있는 세션의 경우 US7ASCII의 문자셋으로 접속되어 있음을 확인) NLS_CHARACTERSET : MS949 (Altibase 문자셋은 MS949로 설정되어 있음을 확인) NLS_NCHAR_CHARACTERSET : UTF8 NLS_COMP : BINARY NLS_NCHAR_CONV_EXCP : FALSE NLS_NCHAR_LITERAL_REPLACE : FALSE 1 row selected. iSQL> select * from test; C1 ---------------------------------- Altibase ????? 2 rows selected. -> US7ASCII로 접속된 세션에서 한글데이터 조회시 입력되어 있는 "알티베이스" 데이터가 ?????로 깨져서 출력될 수 있음 $ export ALTIBASE_NLS_USE=MS949 -> Altibase에 접속되는 세션에 대해 MS949의 문자셋으로 접속할 수 있게끔 동적으로 환경변수 설정 및 적용한다. (ALTIBASE_NLS_USE 설정) -> 환경변수에 export ALTIBASE_NLS_USE=MS949 저장 및 실행한다. -> 명시적으로 문자셋을 환경변수에 지정하여야만 한글을 입력/출력하는데 있어 올바르게 처리가 된다. -> 만일, 위 환경변수를 설정했음에도 한글이 깨진 글자체로 보일 경우가 발생하는데 그런 경우는 현재 사용 및 접속하는 터미널의 환경을 한글 사용이 가능하도록 설정하여야 한다. $ is ----------------------------------------------------------------- Altibase Client Query utility. Release Version 6.5.1.7.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- ISQL_CONNECTION = TCP, SERVER = localhost, PORT_NO = 20300 iSQL> set vertical on; iSQL> select * from v$nls_parameters; SESSION_ID : 1 NLS_USE : MS949 (접속되어 있는 세션의 경우 위와 같은 상황에서는 US7ASCII였으나 MS949로 Altibase DB 문자셋과 동일한 값으로 설정 및 적용되어 접속되어 있음을 확인) NLS_CHARACTERSET : MS949 (Altibase 문자셋은 MS949로 설정되어 있음을 확인) NLS_NCHAR_CHARACTERSET : UTF8 NLS_COMP : BINARY NLS_NCHAR_CONV_EXCP : FALSE NLS_NCHAR_LITERAL_REPLACE : FALSE 1 row selected. iSQL> select * from test; C1 ---------------------------------- Altibase 알티베이스 2 rows selected. -> Altibase DB문자셋(Character set)과 동일한 설정으로 접속된 세션에서 한글데이터 조회시 정상적으로 출력됨을 확인
DB 사용자의 계정 생성 및 삭제
...
Altibase 기본적으로 “SYS” 계정이라는 DBA권한을 가진 사용자가 생성되어 있다. 이 계정으로 접속하여 새로운 사용자를 만들 수 있다.
* 해당 파트에서는 신규 사용하고자 하는 유저에 대해 생성 및 삭제하는 명령어를 간단한 예시로 설명한다.Code Block theme DJango language bash 1) 생성 예시 iSQL> CREATE USER new_user IDENTIFIED BY new_user_password DEFAULT TABLESPACE SYS_TBS_DISK_DATA ACCESS SYS_TBS_MEM_DATA ON; Create success. 2) 삭제 예시 iSQL> DROP USER new_user CASCADE; Drop success.
* 사용한 각 입력 부분은 다음과 같다.
입력항목
설명
CREATE USER 이후
Altibase에서 사용할 새롭게 만들 사용자의 이름을 기술한다.
IDENTIFIED BY 이후
사용자의 비밀번호(패스워드)를 지정하기 위해 기술한다.
DEFAULT TABLESPACE 이후
이 부분부터는 기술하지 않아도 사용자는 생성 가능하다. 다만, 접근 가능한 테이블스페이스를 명시해 주는 절이며 “ALTER USER” 구문을 통해 변경이 가능하다.
ACCESS ~ ON
ACCESS ~ ON 사이에 기술된 테이블스페이스에 접근 가능하도록 권한을 부여한다.
테이블스페이스의 계정 생성 및 삭제
...
Altibase 기본적으로 HDB(Hybrid DBMS)이며 메모리 테이블스페이스, 디스크 테이블스페이스를 모두 사용이 가능하다.
* 해당 파트에서는 유저 메모리 테이블스페이스, 유저 디스크 테이블스페이스에 대해 생성 및 삭제하는 명령어를 간단한 예시로 설명한다.Code Block theme DJango language bash 1) 유저 메모리 테이블스페이스 생성 예시 iSQL> CREATE MEMORY TABLESPACE new_tbs_mem SIZE 1G AUTOEXTEND ON NEXT 128M MAXSIZE 2G; Create success. -> 정상적으로 위 구문과 같은 예로 수행하면 “$ALTIBASE_HOME/dbs/NEW_TBS_MEM-X-X”라는 체크포인트 이미지파일이 생성되며 초기 1G부터 시작하여 128M 단위로 사이즈가 증가하며 2G까지 자동 확장되어 사용 가능한 공간으로 설정된다. 2) 유저 디스크 테이블스페이스 생성 예시 iSQL> CREATE DISK TABLESPACE new_tbs_disk DATAFILE 'new_tbs.dbf' SIZE 1G AUTOEXTEND ON NEXT 128M MAXSIZE 2G; Create success. -> 정상적으로 위 구문과 같은 예로 수행하면 “$ALTIBASE_HOME/dbs/new_tbs.dbf”라는 데이터파일이 생성되며 해당 테이블스페이스는 초기 1G부터 시작하여 128M 단위로 사이즈가 증가하며 2G까지 자동 확장되어 사용 가능한 공간으로 설정된다. -> 디스크 테이블스페이스 생성 구문의 경우 CREATE DISK TABLESPACE 또는 DISK를 생략하여 CREATE TABLESPACE 로도 가능하다. 3) 삭제 예시 iSQL> DROP TABLESPACE new_tbs_disk INCLUDING CONTENTS AND DATAFILES; Drop success. -> 해당 구문은 해당 테이블스페이스뿐 아니라 포함된 객체 및 데이터파일까지 삭제한다. 만일, 정상적으로 삭제되지 않는다면 해당 테이블스페이스 접근 및 사용 중인 세션(클라이언트)이 존재하는 경우임으로 해당 세션(클라이언트)을 찾아 정리한 후 삭제 구문을 재수행하면 된다.
테이블 생성 및 삭제
...
Altibase 기본적으로 HDB(Hybrid DBMS)이며 메모리 테이블스페이스, 디스크 테이블스페이스를 모두 사용이 가능하기에 메모리 테이블, 디스크 테이블을 생성할 수 있다.
* 해당 파트에서는 메모리 테이블, 디스크 테이블에 대해 생성 및 삭제하는 명령어를 간단한 예시로 설명한다.Code Block theme DJango language bash 1) 메모리 테이블스페이스, 디스크 테이블스페이스 조회 방법 iSQL> select type, name from v$tablespaces; TYPE NAME --------------------------------------------------------- 0 SYS_TBS_MEM_DIC 1 SYS_TBS_MEM_DATA (기본 생성되는 메모리 테이블스페이스) 3 SYS_TBS_DISK_DATA (기본 생성되는 디스크 테이블스페이스) 7 SYS_TBS_DISK_UNDO 5 SYS_TBS_DISK_TEMP 5 rows selected. 1) 메모리 테이블 생성 예시 iSQL> create table mem_tbl (c1 int, c2 varchar(100), c3 char(100)); Create success. iSQL> desc mem_tbl; [ TABLESPACE : SYS_TBS_MEM_DATA ] (기본 생성되는 메모리 테이블스페이스) [ ATTRIBUTE ] ------------------------------------------------------------------------------ NAME TYPE IS NULL ------------------------------------------------------------------------------ C1 INTEGER FIXED C2 VARCHAR(100) FIXED C3 CHAR(100) FIXED MEM_TBL has no index MEM_TBL has no primary key -> Altibase는 테이블 생성시 테이블스페이스를 지정하지 않으면 기본적으로 메모리 테이블스페이스를 사용하며 메모리 테이블로 생성된다. 3) 디스크 테이블 생성 예시 iSQL> create table disk_tbl (c1 int, c2 varchar(100), c3 char(100)) tablespace SYS_TBS_DISK_DATA; Create success. iSQL> desc disk_tbl; [ TABLESPACE : SYS_TBS_DISK_DATA ] (기본 생성되는 디스크 테이블스페이스) [ ATTRIBUTE ] ------------------------------------------------------------------------------ NAME TYPE IS NULL ------------------------------------------------------------------------------ C1 INTEGER C2 VARCHAR(100) C3 CHAR(100) DISK_TBL has no index DISK_TBL has no primary key -> Altibase는 테이블 생성시 디스크 테이블스페이스를 지정하면 해당 디스크 테이블스페이스를 사용하며 디스크 테이블로 생성된다. 4) 테이블 삭제 예시 iSQL> drop table mem_tbl; Drop success. iSQL> drop table disk_tbl; Drop success. -> 테이블 삭제는 메모리 테이블과 디스크 테이블 모두 동일한 방식으로 삭제할 수 있다.
...