지난 시간에는 오라클 타임스텐 22.1.x를 다운로드하는 법에 대해서 알아보았습니다. 오늘은 Linux x86-64 시스템에 TimesTen 22.1.x 릴리스를 설치하는 방법을 알아보도록 하겠습니다.
Table Of Contents
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
'IT' 카테고리의 다른 글
오라클 타임스텐 데이터베이스 시작 및 종료와 사용자 생성하기 (22) | 2024.04.01 |
---|---|
우분투 리눅스에서 오라클 타임스텐 데이터베이스 생성 및 기본 명령 수행하기 (0) | 2024.04.01 |
Oracle TimesTen(오라클 타임스텐 22.1.x) DBMS 다운로드 방법 - Oracle Download Manager와 wget.sh (0) | 2024.03.27 |
큐브리드(CUBRID) 로컬 접속시 Permission denied 에러 분석하고 처리하는 방법 (0) | 2024.03.25 |
레디스 오픈소스 종료 발표 - Redis 라이선스 변경 소식 Dual Source-Available Licensing에 대해서 (21) | 2024.03.22 |