The Pursuit of Happyness

현재 Oracle 홈페이지에서 다운로드 가능한 XE 의 버전은 11이라서 상당히 오래되었지만,


조만간 출시될 Oracle 18 버전을 준비하며, 테스트용으로 간단히 설치해 보았습니다.


(참고로 클라우드 버전은 이미 출시했고, autonomous 하다고 해서 Oracle DBA 들 사이에서 논란이 많았었습니다..)


XE 버전은 상용서비스도 가능하지만 최대 11GB 까지의 데이터 저장이 가능하며, 최대 1GB 메모리만 사용하고, 하나의 CPU만 사용한다고 되어 있습니다.  


--------------------------------------


설치 환경 : Windows 10 Pro 1709 (64bits)


@ 다운로드


오라클 홈페이지에서 XE 버전을 다운로드 합니다.


http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html


약관이용에 동의하고 로그인한 후에 Windows x64 버전을 다운로드 합니다.


@ 설치


압축파일을 풀고 DISK1 폴더에 setup.exe 파일을 실행해서 설치를 합니다.


설치 위치를 지정하고, SYS / SYSTEM 계정의 비밀번호를 설정하고 설치를 합니다.


@실행


윈도우의 경우 Installer를 통해서 설치하면, Oracle 이 설치된 경로가 자동으로 Path로 지정이 됩니다.


윈도우키를 누르고, cmd 를 입력해서, 명령 프롬프트를 실행합니다.


명령 프롬프트에서 sqlplus 를 입력합니다.


user-name 에 SYSTEM 을 입력하고, password 에는 설치시 입력한 비밀번호를 입력합니다.


@ 사용자 등록


create user [username] identified by [password];


@ 권한 부여


접속 권한

grant connect to [username];


DB 권한

grant resource to [username];


그 외의 권한은 아래 링크 참조

https://docs.oracle.com/cd/E17781_01/admin.112/e18585/toc.htm


exit 명령어로 sqlplus 종료


sqlplus를 다시 실행해서 새로 생성한 계정 테스트


@ 개발 테스트


XE는 설치시 TNS 정보에 서비스명 XE로 등록이 됩니다.


TNS 정보는 설치 경로에 \app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora 파일에서 확인이 가능합니다.


ex) node.js 연결 정보

var config = {

  user : [username],

  password : [password],

  connectString : "localhost/XE"

};


Comment +0

예전에 node.js에서 Oracle DB를 연결해서 사용하는 프로젝트를 해봤었는데, Oracle 이 node.js 를 제대로 지원하지 못한다는 느낌을 강하게 받았었습니다.


그때는 node.js oracledb 모듈을 설치할 때, 컴파일 과정이 들어가면서 의존성이 있었기 때문에 은근히 번거로웠었는데, oracledb 2.0 부터는 그러한 과정들이 필요 없게되어서 상당히 편리해졌습니다.


다만 새로운 모듈의 특성상 Oracle 혹은 instant client 을 설치하고, 라이브러리 경로를 설정해 줘야지만 제대로 동작합니다. node.js oracledb 와 Oracle 혹은 instant client 의 설치순서는 상관이 없습니다. 런타임 시점에 라이브러리 경로만 인식되면 됩니다.


또 다른 장점으로는 상당히 많은 수정을 통해서 메모리 관리 등에서 훨씬 안정적인 모듈이 되었다는 것입니다.


--


이쯤에서 node.js oracledb 모듈을 설치해 보겠습니다.


테스트 환경은 CentOS 7.4.1708 , node.js 6.12.3 입니다.


1. 적당한 폴더를 생성합니다.

# mkdir test 


2. 폴더에서 node 프로젝트를 생성합니다. 프로젝트 정보는 적당히 입력합니다.

# npm init 


3. 다음 명령어로 oracledb 모듈을 설치합니다.

# npm install --save oracledb 

현재 2.0.15 버전으로 설치가 됩니다.


4. instant client 를 설치합니다. Oracle 다운로드 페이지에서 적당히 다운로드 받습니다.

http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

아래 명령어로 설치를 합니다.

# rpm -ivh  oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

혹은 yum install 명령어를 이용해도 설치가 됩니다.


5. 환경변수를 설정합니다.

# vi /etc/environment


다음의 두줄을 추가합니다 원래 instant client 만 설치할 경우 "/usr/lib/oracle/12.2/client64/network/admin" 경로는 존재하지 않는데, XE 등을 설치시의 tns 설정경로와 비슷하게 하기 위해서 "network/admin" 폴더를 생성해 주었습니다.

TNS_ADMIN=/usr/lib/oracle/12.2/client64/network/admin

LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib


6. tnsnames.ora 파일을 생성합니다.

# touch /usr/lib/oracle/12.2/client64/network/admin/tnsnames.ora 

생성한 파일을 편집해서 tns 정보를 입력합니다.


7. oracledb에 연결해서 테스트하는 예제들 입니다.

https://github.com/oracle/node-oracledb/tree/master/examples


webapp.js 나 webapppromises.js 파일을 참조하시면 pool 설정 등에 대한 예시를 볼 수 있습니다.



Comment +0

테스트 환경

Ubuntu 16.04.2 LTS


Oracle DB를 이용할 일이 생겨서 Ubuntu에 Oracle XE를 설치해 보았습니다.


설치하는데 아래 링크를 참조했습니다.

http://www.gokhanatil.com/2016/04/how-to-install-oracle-11gr2-xe-on-ubuntu.html


먼저 설치 패키지를 아래 링크에서 다운로드 합니다. 

(2017년 3월 30일 현재 2014년에 배포한 11gR2 가 최신버전 입니다.)

http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html


Oracle 홈페이지에서는 리눅스 용으로는 rpm을 zip으로 압축해서 배포하고 있습니다.


다운로드 완료 후에는 다음 명령으로 압축을 풀어 줍니다.


$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip


압축이 풀리면 Disk1 폴더가 생성되고 그 안에 rpm 파일이 있습니다.


rpm 파일을 Ubuntu 에서 쓰는 deb 파일로 변환을 해 주어야 합니다.


rpm을 deb로 변경할 때는 alien 을 사용하게 됩니다. 


만약 alien 이 설치되어 있지 않다면 다음 명령으로 설치합니다.


$ sudo apt install alien 


그리고 오라클 사용에 필요한 라이브러리를 설치합니다. (사용자의 환경에 따라 이미 설치되어 있을 수도 있습니다.)


$ sudo apt install libaio1


Disk1 폴더에서 아래 명령으로 rpm을 deb로 변경합니다. (시간이 상당히 걸리는 작업입니다.)


$ sudo alien --scripts oracle-xe_11.2.0-1.0.x86_64.rpm


deb 파일을 다음 명령으로 설치를 합니다.


$ sudo dpkg -i oracle-xe_11.2.0-2_amd64.deb


설치 도중에 /sbin/chkconfig 가 없다는 메시지가 나오게 되는데, redhat 계열에서 사용하는 설정인데 무시하셔도 상관 없습니다. 그래도 설정을 하고 싶다면, 아래 링크를 참조하세요.

http://meandmyubuntulinux.blogspot.com/2012/05/installing-oracle-11g-r2-express.html


그리고 설치 후에는 설정을 위해서 스크립트를 실행해야 합니다. 실행시에 발생할 에러를 막기 위해서 아래와 같이 링크를 설정하고 폴더를 생성합니다. (폴더가 이미 존재하는 경우도 있습니다.)


$ sudo ln -s /usr/bin/awk /bin/awk

$ sudo mkdir /var/lock/subsys


그리고 스크립트를 돌려서 초기 설정을 합니다.


$ sudo /etc/init.d/oracle-xe configure


초기 설정을 위해 몇가지 질문을 하는데, 성실히 대답해 주면 됩니다.


아래 명령으로 시작합니다.


$ sudo /etc/init.d/oracle-xe start


아래 명령으로 서버를 종료합니다.


$ sudo /etc/init.d/oracle-xe stop




Comment +0

테스트 환경 

Ubuntu (16.04.2 LTS)


예전에 한번 Ubuntu 에서 JDK 설치하기를 포스팅한 적이 있었는데, 다시 설치하다보니 예전 방법에서는 스크립트 오류가 나서 새로 포스팅을 합니다. (예전 포스트 바로가기)


참고로 예전 방식대로 oracle java 홈페이지에서 rpm파일을 다운로드 받아서 alien 을 이용해서 설치 하게 되면 /usr/sbin/alternatives 를 찾을 수 없다는 에러가 나오면서 스크립트가 중단되는 에러가 발생하며 종료가 됩니다. 


그래서 쉽게 설치할 수 있는 다른 방법을 이용해서 설치해 보겠습니다.


1. 먼저 터미널 창을 엽니다. (Ctrl + Alt + t)


2. 다음과 같이 입력하여 repository 를 추가합니다. 


$ sudo add-apt-repository ppa:webupd8team/java 



3. 설치 스크립트를 업데이트하고 설치합니다.


$ sudo apt update; sudo apt install oracle-java8-installer



(2017년 3월 19일 현재 jdk9 는 정식 릴리즈 되지 않은 상태지만 추후에는 설치 패키지 명을 oracle-java9-installer 로 바꿔주기만 하면 jdk9 도 설치가 가능할거에요..)


4. 추후에 나오는 팝업은 긍정적으로 답변하면 설치가 시작됩니다. (라이센스 동의 등..)


5. 환경변수 등록을 추가하고 싶다면 아래 명령어도 실행해 봅니다.


$ sudo apt install oracle-java8-set-default




ps. 혹시 예전 방법으로 설치하다가 오류가 나서 중간에 막혀있는 경우 아래 방법을 이용해서 해결합니다. 


1. 터미널을 엽니다. (Ctrl + Alt + t)


2. 다음 경로로 이동합니다.


$ cd /var/lib/dpkg/info



3. JDK 설치 관련 파일들을 체크합니다.


$ ls -ltr | grep jdk


jdk 설치 관련 파일들이 화면에 출력됩니다.


4. 설치하던 버전에 맞는 파일들을 삭제합니다. (잘못 삭제하면 다른 문제가 생길 수 있으니 주의!)


5. 다음 명령어로 패키지 삭제를 완료합니다.


$ sudo apt autoremove





Comment +0

1. install apache, mysql, php

sudo apt-get install tasksel

sudo tasksel install lamp-server


2. install oracle

apt-get install alien

alien -i oracle-xe-11.2.0-1.0.x86_64.rpm


3. edit TNS

vi /u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.ora


4. install php-pear

apt-get install php-pear php5-dev build-essential unzip libaio1


5. install oci

alien -i oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm 

alien -i oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm 

pecl install oci8


6. edit environment variable

echo ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe/ >> /etc/environment


7. edit php configuration

echo extension=oci8.so >> /etc/php5/apache2/php.ini

echo extension=oci8.so >> /etc/php5/cli/php.ini


8. edit apache2 envvars

vi /etc/apache2/envvars

# add this line 

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe


9. restart apache

sudo /etc/init.d/apache2 restart

or

sudo service apache2 restart


참고자료

https://help.ubuntu.com/community/ApacheMySQLPHP

https://help.ubuntu.com/community/PHPOracle

http://kogentadono.com/2011/11/02/installing-oci8-on-ubuntu/



Comment +0