본문 바로가기

wif LiNoUz/Oracle,Sql

오라클 설치


패키지 설치 

sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1

wget "http://launchpadlibrarian.net/100815432/libdb4.8_4.8.30-11ubuntu1_amd64.deb"

wget "http://launchpadlibrarian.net/59033014/liblzma2_5.0.0-2_amd64.deb"

wget "http://launchpadlibrarian.net/64397680/lsb-rpm_4.8.1-6ubuntu1_amd64.deb"

sudo dpkg -i libdb4.8_4.8.30-11ubuntu1_amd64.deb liblzma2_5.0.0-2_amd64.deb lsb-rpm_4.8.1-6ubuntu1_amd64.deb






sudo bash -c "echo 'deb http://ftp.daumkakao.com/ubuntu precise main universe' >> /etc/apt/sources.list.d/extra.list"

sudo bash -c "echo 'deb http://ftp.daumkakao.com/ubuntu trusty main universe' >> /etc/apt/sources.list.d/extra.list"


sudo apt-get update


sudo apt-get -y install alien autoconf automake autotools-dev binutils doxygen \

elfutils expat gawk gcc gcc-multilib g++-multilib libstdc++6:i386 ksh less libtiff4 \

libtiff4-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 \

libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 \

libpthread-stubs0 libpth-dev libstdc++5 lsb-cxx make \

pdksh openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev x11-utils \

zlibc libglapi-mesa:i386 libglu1-mesa:i386 libqt4-opengl:i386 \

libpthread-workqueue0 libpthread-workqueue-dev libzthread-2.3-2 libzthread-dev \

libpthread-stubs0-dev



apt-get install alien autoconf automake autotools-dev binutils doxygen \

elfutils expat gawk gcc gcc-multilib g++-multilib libstdc++6:i386 ksh less libtiff5 \

libtiff5-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 \

libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 \

libpthread-stubs0 libpthread-stubs0-dev libpth-dev libstdc++5 lsb-cxx make \

pdksh openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev x11-utils \

zlibc libglapi-mesa:i386 libglu1-mesa:i386 libqt4-opengl:i386 \

libpthread-workqueue0 libpthread-workqueue-dev libzthread-2.3-2 libzthread-dev



해당 게시글은 http://ioriy2k.pe.kr/archives/815 에서 퍼왔습니다.

참고 했던 게시물중 가장 정확한 게시물 이였습니다. 문제시 삭제 하도록 하겠습니다.


Oracle Database는 Oracle에서 개발한 관계형 Database로 금융권과 일반 기업, 공공기관, 심지어 우리나라에서는 초등학교 학내전산망에까지 사용됩니다. (초등학교에 얼마나 많은 DB 처리량이 필요하길래.. 대표적인 예산 낭비 행정이죠. ㅎㅎ Mysql로도 충분한 것을..) 뛰어난 안정성과 Performance로 가장 널리 사용되는 Database인 Oracle은 Windows, Linux, Unix 계열 Server에서 사용할 수 있습니다.

Oracle Database에서 공식적으로 지원하는 Linux 배포판은 Asianux Server, Red Hat Enterprise Linux(RHEL), SUSE Linux Enterprise Server입니다. 최신 Release인 Oracle 11g Release 2에서 지원하는 배포판을 자세히 열거하면 아래와 같습니다.

  • Asianux Server 3 SP2
  • Oracle Enterprise Linux 4 Update 7
  • Oracle Enterprise Linux 5 Update 2
  • Red Hat Enterprise Linux 4 Update 7
  • Red Hat Enterprise Linux 5 Update 2
  • SUSE Linux Enterprise Server 10 SP2
  • SUSE Linux Enterprise Server 11

물론 공식적으로 지원하지 않는 Linux 배포판이라도 설치 및 구동이 가능합니다. 이번 Post에서는 Ubuntu에서 Oracle 11g Relase 2를 설치하는 방법을 알아보도록 하겠습니다.

Table of Contents [Show]

1. 필수 Package 설치

Oracle Database를 설치하기 위해서 사용되는 필수 Package를 설치합니다.

내 설치본 

1.1. Natty Narwhal 11.04 이하의 배포판의 경우

Terminal에서 다음과 같이 입력합니다.

1
sudo apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1

1.2. Oneiric Ocelot 11.10의 경우

Terminal에서 아래의 명령으로 설치합니다.

  • 32bit:
    1
    2
    3
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1
    wget "http://launchpadlibrarian.net/64397544/lsb-rpm_4.8.1-6ubuntu1_i386.deb"
    sudo dpkg -i lsb-rpm_4.8.1-6ubuntu1_i386.deb
  • 64bit:
    1
    2
    3
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1
    wget "http://launchpadlibrarian.net/64397680/lsb-rpm_4.8.1-6ubuntu1_amd64.deb"
    sudo dpkg -i lsb-rpm_4.8.1-6ubuntu1_amd64.deb

1.3. Precise Pangolin 12.04의 경우

Terminal에서 다음과 같이 입럭합니다.

  • 32bit:
    1
    2
    3
    4
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1 libdb4.8
    wget "http://launchpadlibrarian.net/59032965/liblzma2_5.0.0-2_i386.deb"
    wget "http://launchpadlibrarian.net/64397544/lsb-rpm_4.8.1-6ubuntu1_i386.deb"
    sudo dpkg -i liblzma2_5.0.0-2_i386.deb lsb-rpm_4.8.1-6ubuntu1_i386.deb
  • 64bit:
    1
    2
    3
    4
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1 libdb4.8
    wget "http://launchpadlibrarian.net/59033014/liblzma2_5.0.0-2_amd64.deb"
    wget "http://launchpadlibrarian.net/64397680/lsb-rpm_4.8.1-6ubuntu1_amd64.deb"
    sudo dpkg -i liblzma2_5.0.0-2_amd64.deb lsb-rpm_4.8.1-6ubuntu1_amd64.deb

1.4. Quantal Quetzal 12.10 이상의 경우

Quantal Quetzal 12.10, Raring Ringtail 13.04의 경우는 Terminal에서 다음과 같이 입럭합니다.

  • 32bit:
    1
    2
    3
    4
    5
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1
    wget "http://launchpadlibrarian.net/100815189/libdb4.8_4.8.30-11ubuntu1_i386.deb"
    wget "http://launchpadlibrarian.net/59032965/liblzma2_5.0.0-2_i386.deb"
    wget "http://launchpadlibrarian.net/64397544/lsb-rpm_4.8.1-6ubuntu1_i386.deb"
    sudo dpkg -i libdb4.8_4.8.30-11ubuntu1_i386.deb liblzma2_5.0.0-2_i386.deb lsb-rpm_4.8.1-6ubuntu1_i386.deb
  • 64bit:
    1
    2
    3
    4
    5
    sudo apt-get install unzip build-essential x11-utils rpm ksh libaio1
    wget "http://launchpadlibrarian.net/100815432/libdb4.8_4.8.30-11ubuntu1_amd64.deb"
    wget "http://launchpadlibrarian.net/59033014/liblzma2_5.0.0-2_amd64.deb"
    wget "http://launchpadlibrarian.net/64397680/lsb-rpm_4.8.1-6ubuntu1_amd64.deb"
    sudo dpkg -i libdb4.8_4.8.30-11ubuntu1_amd64.deb liblzma2_5.0.0-2_amd64.deb lsb-rpm_4.8.1-6ubuntu1_amd64.deb

2. libstdc++5 설치

libstdc++ Package는 GNU Standard C++ Library로서 GCC와 같은 GNU의 Compiler로 Compile한 Application을 위한 Runtime Library입니다.

Ubuntu의 경우, libstdc++6가 설치되어 있는데 Oracle Database에서는 libstdc++5를 사용합니다.

2.1. Lucid Lynx 10.04의 경우

Repository에서 libstdc++5를 지원하지 않으므로 다음과 같은 방법으로 libstdc++5를 설치합니다.

  • 64bit:
    1
    2
    3
    4
    wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
    $ dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb libstdc++
    sudo cp libstdc++/usr/lib/libstdc++.so.5.0.7 /usr/lib/
    sudo ln -s /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.5
  • 32bit:
    1
    2
    3
    4
    wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
    $ dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
    sudo cp ia32-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib/
    sudo ln -s /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.5

2.2. Maverick Meerkat 10.10부터 Quantal Quetzal 12.10까지의 경우

Quantal Quetzal 12.10, Precise Pangolin 12.04, Oneiric Ocelot 11.10, Natty Narwhal 11.04, Maverick Meerkat 10.10의 경우에는 다음과 같이 입력하면 간단히 설치됩니다.

1
sudo apt-get install libstdc++5

2.3. Raring Ringtail 13.04의 경우

  • 64bit: Ubuntu Repository에 있는 libstdc++5를 설치할 경우, 설치 다음과 같은 Message가 표시될 수 있습니다.
    1
    2
    3
    Error in invoking target 'install' of makefile '/opt/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'.

    /usr/lib/x86_64-linux-gnu/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

    문제를 해결하기 위해서 libstdc++5를 다음과 같이 입력하여 따로 설치합니다.

    설치시 lsb-rpm 패키지는 다음 패키지에 의존: liblua5.1-0 발생시 liblua5.1-0 설치 진행

          - >    sudo apt-get install liblua5.1-0

      

    1
    2
    3
    4
    5
    wget "http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-25ubuntu1_amd64.deb"
    $ dpkg-deb -x libstdc++5_3.3.6-25ubuntu1_amd64.deb libstdc++
    sudo cp libstdc++/usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7 /usr/lib/x86_64-linux-gnu
    sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7 /usr/lib/x86_64-linux-gnu/libstdc++.so.5
    sudo ldconfig
  • 32bit: Ubuntu Repository의 libstdc++5를 설치하면 됩니다.
    1
    sudo apt-get install libstdc++5

3. Group과 계정 생성하기

Oracle을 설치하고 사용하기 위한 Group과 계정을 생성합니다. 다음과 같이 Terminal에서 입력합니다.

1
2
3
4
5
sudo addgroup oinstall
sudo addgroup dba
sudo useradd -g oinstall -G dba -d /home/oracle -s /bin/bash -m oracle
sudo passwd oracle
sudo chown oracle:dba /home/oracle -R

4. Symbolic Link 설정하기

설치 Program에서 사용하는 일부 Program의 경로가 달라서 문제가 발생할 수 있기 때문에 설치 Program이 인식할 수 있는 Directory로 Symbolic Link를 걸어줍니다.

1
2
3
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename

5. Kernel 변수 설정

Oracle Database는 DB의 안정성과 Performance를 위해서 System의 자원을 많이 사용합니다. 그래서 기본적인 Linux Kernel 설정으로는 DB를 운용하는데 문제가 있기 때문에 다음과 같이 Kernel 변수를 설정해 줍니다.

Ubuntu에서는 Kernel 변수를 설정하는 File을 /etc/sysctl.d에 관련된 Application 별로 저장하고 적용할 수 있습니다. 이렇게 설정해 놓으면 차후 배포판이 Upgrade되거나 관련 Package가 Update될 때 설정이 변경되는 문제를 해결할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo vi /etc/sysctl.d/30-oracle.conf

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65535

sudo service procps start

6. Resource Limit 설정

Oracle DB를 위해서 System의 보안정책으로 묶여있는 자원설정을 변경합니다. oracle 계정에 한하여 최대 Process 수와 최대 열 수 있는 File Descripter 수를 설정합니다.

Ubuntu에서는 /etc/security/limits.d 에서 각 Application에 대한 Limit 설정을 할 수 있습니다. Terminal에서 다음과 같이 입력합니다.

1
2
3
4
5
6
sudo vi /etc/security/limits.d/oracle.conf

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

7. 설치 Directory 생성

Oracle Database가 설치될 Directory를 미리 생성합니다. Oracle 계정에서 해당 Directory를 생성하지 못하기 때문에 Root 권한으로 미리 만들어 놓습니다.

1
2
3
4
sudo mkdir /opt/oracle
sudo chown oracle:dba /opt/oracle
sudo mkdir /opt/oraInventory
sudo chown oracle:oinstall /opt/oraInventory

8. oracle 계정을 위한 환경변수 설정

이제 System 설정의 마지막입니다. Home Directory의 .bashrc에 마지막 부분에 생성한 oracle 계정에 적용할 환경변수를 추가합니다.

1
2
3
4
5
6
7
8
su - oracle
vi ~/.bashrc

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl11
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin

9. 마치면서..

Oracle Database를 설치하기 위한 기본적인 설정 및 필수 Package 설치는 모두 마쳤습니다. 이제 Oracle을 Download 받고 Installer를 사용해서 설치하는 것과 Ubuntu에서 편리하게 Oracle을 사용하기 위한 설정들을 하면 설치는 마무리 될 것입니다. 다음 Post에서는 Oracle을 Installer를 사용해서 설치하는 방법을 알아보겠습니다.