본문 바로가기
IT

Oracle TimesTen(오라클 타임스텐 22.1.x) DBMS 우분투 리눅스(Ubuntu Linux)에 설치하기

by developer's warehouse 2024. 3. 27.

지난 시간에는 오라클 타임스텐 22.1.x를 다운로드하는 법에 대해서 알아보았습니다. 오늘은 Linux x86-64 시스템에 TimesTen 22.1.x 릴리스를 설치하는 방법을 알아보도록 하겠습니다.

Oracle TimesTen(오라클 타임스텐 22.1.x) DBMS 우분투 리눅스(Ubuntu Linux)에 설치하기 썸네일

1. 계정 생성 및 그룹 설정

저의 경우 Oracle TimesTen을 설치하는 계정을 timesten으로 가져가기로 하였습니다. 그리고, 그룹의 경우에도 timesten으로 동일하게 가져갔습니다.

하지만 다른 계정에서도 timesten에 접근할 일이 있어서 해당 계정을 추가해 주기로 하였습니다.

usermod 명령을 이용해서 timesten 그룹에 mytest라는 계정을 추가해 주는 명령은 아래와 같습니다.

이후에 getent group timesten으로 timesten 그룹에 설정된 내용을 확인할 수 있습니다.

timesten:~/installation_dir$ getent group timesten
timesten:x:1008:
timesten:~/installation_dir$ sudo usermod -a -G timesten mytest
timesten:~/installation_dir$ getent group timesten
timesten:x:1008:mytest

2. Oracle TimesTen 설치 디렉토리 생성 및 다운로드한 오라클 타임스텐 압축 해제

이전에 다운로드한 Oracle TimesTen 압축파일은 V1041380-01.zip입니다. 다운로드 방법을 확인하시려면 아래 링크를 참고하세요.

오라클 타임스텐 다운로드 하는법 보러 가기

다운로드가 완료되면 이제 아래와 같이 설치 관련 파일을 한데 넣어놓을 디렉터리를 생성합니다.

timesten:~$ mkdir -p installation_dir
timesten:~$ ls
V1041380-01.zip  installation_dir
timesten:~$ mv V1041380-01.zip installation_dir/
timesten:~$ ls -lR
.:
합계 16
drwxrwxr-x 2 timesten timesten 4096  3월 27 13:41 installation_dir
drwx------ 3 timesten timesten 4096  3월 27 10:47 snap
-rw-rw-r-- 1 timesten timesten 2471  3월 27 10:47 wget.sh
-rw-rw-r-- 1 timesten timesten 2517  3월 27 10:48 wgetlog-03-27-24-10:48.log

./installation_dir:
합계 531832
-rw------- 1 timesten timesten 544590212  3월 27 13:19 V1041380-01.zip
timesten:~$ cd installation_dir/
timesten:~/installation_dir$ ls
V1041380-01.zip

 

installation_dir을 생성한 후 해당 디렉터리로 이동하여 zip 파일 압축을 해제해야 합니다. 리눅스에서 zip 파일의 압축을 풀기 위해서는 unzip을 사용합니다.

아래와 같이 unzip 명령을 통해 다운로드한 zip 파일의 압축을 풀면 다시 timesten2211220.server.linux8664.zip 파일이 나옵니다.

이 파일도 동일하게 unzip으로 압축을 해제해 주어야 드디어 timesten 설치를 위한 파일들이 나타납니다.

timesten:~/installation_dir$ unzip V1041380-01.zip
Archive:  V1041380-01.zip
  inflating: README.html
 extracting: timesten2211220.server.linux8664.zip

timesten:~/installation_dir$
timesten:~/installation_dir$ ls
README.html  V1041380-01.zip  timesten2211220.server.linux8664.zip
timesten:~/installation_dir$ unzip timesten2211220.server.linux8664.zip
Archive:  timesten2211220.server.linux8664.zip
   creating: tt22.1.1.22.0/
   creating: tt22.1.1.22.0/oraclescripts/
  inflating: tt22.1.1.22.0/oraclescripts/checkAdminPrivileges.sql
  inflating: tt22.1.1.22.0/oraclescripts/ttCacheADGSiteFailover.sql
  inflating: tt22.1.1.22.0/oraclescripts/README.TXT
  inflating: tt22.1.1.22.0/oraclescripts/grantCacheAdminPrivileges.sql
  inflating: tt22.1.1.22.0/oraclescripts/checkRAC.sql
  inflating: tt22.1.1.22.0/oraclescripts/RAC_README
  inflating: tt22.1.1.22.0/oraclescripts/scaleoutCacheCleanUp.sql
  inflating: tt22.1.1.22.0/oraclescripts/initCacheAdminSchema.sql
  inflating: tt22.1.1.22.0/oraclescripts/cacheInfo.sql
  inflating: tt22.1.1.22.0/oraclescripts/cacheCleanUp.sql
....
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/allclasses-frame.html
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/overview-tree.html
 extracting: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/package-list
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/allclasses-noframe.html
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/index.html
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/packages.html
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/deprecated-list.html
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/doc/api/serialized-form.html
   creating: tt22.1.1.22.0/3rdparty/jms1.1/lib/
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/lib/javax.jms.jar
  inflating: tt22.1.1.22.0/3rdparty/jms1.1/lib/jms.jar
  inflating: tt22.1.1.22.0/3rdparty/apache-zookeeper-3.8.3-bin.tar.gz
  inflating: tt22.1.1.22.0/3rdparty/README-zookeeper.txt
finishing deferred symbolic links:
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libclntsh.so.18.1 -> libclntsh.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libocci.so.18.1 -> libocci.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libocci.so -> libocci.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libocci.so.11.1 -> libocci.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libclntsh.so.10.1 -> libclntsh.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libclntsh.so.12.1 -> libclntsh.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libocci.so.12.1 -> libocci.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libclntsh.so.11.1 -> libclntsh.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libocci.so.10.1 -> libocci.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient_19_19/libclntsh.so -> libclntsh.so.19.1
  tt22.1.1.22.0/ttoracle_home/instantclient -> instantclient_19_19
  tt22.1.1.22.0/lib/libodbc.so -> libtten.so
  tt22.1.1.22.0/lib/ttjdbc21.jar -> ttjdbc8.jar
  tt22.1.1.22.0/lib/libtten.so -> libtten-grid.so
  tt22.1.1.22.0/lib/ttjdbc17.jar -> ttjdbc8.jar
  tt22.1.1.22.0/lib/ttjdbc11.jar -> ttjdbc8.jar
  tt22.1.1.22.0/bin/ttinstancedestroy -> ttInstanceDestroy
  tt22.1.1.22.0/bin/ttinstancecreate -> ttInstanceCreate
  tt22.1.1.22.0/bin/ttversion -> ttVersion
  tt22.1.1.22.0/bin/ttinstallationcheck -> ttInstallationCheck
  tt22.1.1.22.0/bin/ttgridadmin -> ttGridAdmin
  tt22.1.1.22.0/bin/ttcapture -> ttCapture
  tt22.1.1.22.0/PERL/perl -> bin/perl

 

타임스텐 설치파일이 ./installation_dir/tt22.1.1.22.0 디렉터리에 생성됩니다.

 

3. 오라클 타임스텐 설치를 위한 확인

TimesTen ttInstallationCheck 유틸리티를 사용하여 설치를 위한 준비가 다 되었는지 확인합니다.

timesten:~/installation_dir$ tt22.1.1.22.0/bin/ttInstallationCheck
This installation has been verified.

 

위에서 나타난 것 처럼 "This installation has been verified."가 나오면 설치 준비는 문제없는 것으로 보시면 됩니다.

 

4. TimesTen(타임스텐) 인스턴스 생성하기

타임스텐 인스턴스(timesten instance)는 타임스텐 데이터베이스를 생성하고 관리할 수 있는 타임스텐 프로세스와 파일로 구성됩니다. 타임스텐 인스턴스는 설치의 bin 영역에 있는 타임스텐 ttInstanceCreate 유틸리티를 사용하여 생성합니다.

 

1. 타임스텐 인스턴스를 생성하려는 위치에서 인스턴스 디렉터리를 생성합니다.

이 디렉터리는 인스턴스의 최상위 디렉터리 역할을 하며 인스턴스 홈 디렉터리(instance home)라고 부릅니다. 인스턴스를 생성하기 전에 이 디렉터리를 만들어야 합니다.

저의 경우 아래와 같이 $HOME 아래에 tt_instances로 생성하였습니다.

timesten:~$ mkdir -p tt_instances
timesten:~$ ls
installation_dir  snap  tt_instances

 

2. 타임스텐 인스턴스를 생성합니다.

ttInstanceCreate 명령을 통해서 인스턴스를 생성할 때, 다음 두 가지를 고려해야합니다.

  • 인스턴스 이름을 -name 옵션 뒤에 입력합니다. 아래 예제에서는 ttinstance로 지정하였습니다. 아무 이름이나 지정할 수 있습니다.
  • 인스턴스의 위치는 -location 옵션 뒤에 방금 만든 ./tt_instances로 지정하였습니다.
timesten:~$ ls
installation_dir  snap  tt_instances  wget.sh  wgetlog-03-27-24-10:48.log
timesten:~$ ./installation_dir/tt22.1.1.22.0/bin/ttInstanceCreate -name ttinstance -location ./tt_instances/
Creating instance in /home/timesten/tt_instances/ttinstance ...

NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.

The startup script is located here :
        '/home/timesten/tt_instances/ttinstance/startup/tt_ttinstance'

Run the 'setuproot' script :
        /home/timesten/tt_instances/ttinstance/bin/setuproot -install
This will move the TimesTen startup script into its appropriate location.

The 22.1 Release Notes are located here :
  '/home/timesten/installation_dir/tt22.1.1.22.0/README.html'

Instance created successfully.
timesten:~$

 

5. 환경변수 설정하기

오라클 타임스텐을 사용하려면 타임스텐 인스턴스를 생성한 후 특정 환경 변수를 설정해야 합니다. 이러한 환경 변수에는 TIMESTEN_HOME, PATH 및 LD_LIBRARY_PATH가 포함됩니다. Linux에서는 ttenv.sh(bash 쉘의 경우) 또는 ttenv.csh(C 쉘의 경우)를 "source" 명령이나 "."으로 환경 변수를 설정합니다.

인스턴스 디렉터리의 /bin 영역에서 환경 변수를 적용합니다.

저의 경우 bash 쉘을 사용하므로 ttenv.sh을 적용합니다.

아래는 인스턴스 디렉터리로 이동 후 ttenv.sh을 "."을 이용하여 적용한 것을 보여줍니다.

timesten:~$ cd tt_instances/
timesten:~/tt_instances$ ls
ttinstance
timesten:~/tt_instances$ cd ttinstance/
timesten:~/tt_instances/ttinstance$ ls
bin  conf  diag  info  install  plsql  startup
timesten:~/tt_instances/ttinstance$ cd bin/
timesten:~/tt_instances/ttinstance/bin$ ls
README.TXT          ttCacheInfo       ttRepAdmin   ttadmin             ttcrssubscriber   ttreadepochs
setuproot           ttCapture         ttRestore    ttadoptstores       ttcrssubservice   ttrepadmin
ttAdmin             ttCheck           ttSchema     ttbackup            ttcwadmin         ttrestore
ttAdoptStores       ttClientImport    ttSchemaCS   ttbulkcp            ttdaemonadmin     ttschema
ttBackup            ttCreateCerts     ttShmSize    ttbulkcpcs          ttdaemonlog       ttschemacs
ttBulkCp            ttDaemonAdmin     ttSize       ttcacheinfo         ttdestroy         ttshmsize
ttBulkCpCS          ttDaemonLog       ttStats      ttcapture           ttenv             ttsize
ttCRSAgent          ttDestroy         ttStatsCS    ttcheck             ttenv.csh         ttstats
ttCRSactiveservice  ttExporter        ttStatus     ttclientimport      ttenv.sh          ttstatscs
ttCRSapp            ttInstanceModify  ttTail       ttcreatecerts       ttexporter        ttstatus
ttCRSbackupservice  ttIsql            ttThunk      ttcrsactiveservice  ttinstancemodify  tttail
ttCRSdaemon         ttIsqlCS          ttTraceMon   ttcrsagent          ttisql            tttracemon
ttCRSmaster         ttMigrate         ttUser       ttcrsapp            ttisqlcs          ttuser
ttCRSsubscriber     ttMigrateCS       ttVersion    ttcrsbackupservice  ttmigrate         ttversion
ttCRSsubservice     ttPty             ttXactAdmin  ttcrsdaemon         ttmigratecs       ttxactadmin
ttCWAdmin           ttReadEpochs      ttXactLog    ttcrsmaster         ttpty             ttxactlog
timesten:~/tt_instances/ttinstance/bin$ ls ttenv.sh
ttenv.sh
timesten:~/tt_instances/ttinstance/bin$ . ttenv.sh

LD_LIBRARY_PATH set to /home/timesten/tt_instances/ttinstance/install/lib:/home/timesten/tt_instances/ttinstance/install/ttoracle_home/instantclient

PATH set to /home/timesten/tt_instances/ttinstance/bin:/home/timesten/tt_instances/ttinstance/install/bin:/home/timesten/tt_instances/ttinstance/install/ttoracle_home/instantclient:/home/timesten/tt_instances/ttinstance/install/ttoracle_home/instantclient/sdk:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

CLASSPATH set to /home/timesten/tt_instances/ttinstance/install/lib/ttjdbc8.jar:/home/timesten/tt_instances/ttinstance/install/lib/orai18n.jar:/home/timesten/tt_instances/ttinstance/install/lib/timestenjmsxla.jar:/home/timesten/tt_instances/ttinstance/install/3rdparty/jms1.1/lib/jms.jar:.

TNS_ADMIN set to

TIMESTEN_HOME set to /home/timesten/tt_instances/ttinstance

 

 

6. 오라클 타임스텐 인스턴스 확인하기

타임스텐 인스턴스를 확인하기 위해서는 ttVersion과 ttStatus 명령을 사용하여 확인할 수 있습니다.

바로 이전에 타임스텐 인스턴스의 bin 디렉토리를 PATH에 적용하였기 때문에 다른 디렉터리에서도 이 명령들을 수행할 수 있어야 합니다.

아래는 $HOME 디렉토리로 이동하여 ttVersion 명령을 통해 버전을 확인한 예시입니다.

timesten:~/tt_instances/ttinstance/bin$ cd
timesten:~$ ls
installation_dir  snap  tt_instances  wget.sh  wgetlog-03-27-24-10:48.log
timesten:~$ ttVersion
TimesTen Release 22.1.1.22.0 (64 bit Linux/x86_64) (ttinstance:6624) 2024-03-13T21:59:46Z
  Instance admin: timesten
  Instance home directory: /home/timesten/tt_instances/ttinstance
  Group owner: timesten
  Daemon home directory: /home/timesten/tt_instances/ttinstance/info
  PL/SQL enabled.
timesten:~$

 

다음으로 ttStatus를 수행하면 아래와 같이 TimesTen daemon에 접속할 수 없다는 에러가 나면서, ttDaemonAdmin -start를 수행하라고 합니다.

~$ ttStatus
ttStatus: Could not connect to the TimesTen daemon on port 6624.
If the TimesTen daemon is not running, please start it
by running "ttDaemonAdmin -start".

 

ttDaemonAdmin -start를 수행하고 나서 다시 ttStatus를 수행하면 다음과 같습니다.

timesten@altibase-KVM:~$ ttDaemonAdmin -start
TimesTen Daemon (PID: 743086, port: 6624) startup OK.
timesten@altibase-KVM:~$ ttStatus
TimesTen status report as of Wed Mar 27 15:39:19 2024

Daemon pid 743086 port 6624 instance ttinstance
TimesTen server pid 743093 started on port 6625
------------------------------------------------------------------------
------------------------------------------------------------------------
Accessible by group timesten
End of report

 

여기까지 하셨으면 성공적으로 오라클 타임스텐의 설치를 마쳤습니다.

다음에는 오라클 타임스텐을 이용하기 위해 연결 속성을 설정하고 데이터베이스를 만드는 법을 알아보겠습니다.

 

참고

https://docs.oracle.com/en/database/other-databases/timesten/22.1/install-timesten/index.html

facebook twitter kakaoTalk kakaostory naver band shareLink