Oracle92 For Gentoo

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기
Oracle 9.2 For Gentoo


Oracle Installation(Gentoo + Oracle9.2)


Creating Oracle User Accounts

# groupadd dba        # group of users to be granted with SYSDBA system privilege
# groupadd oinstall     # group owner of Oracle files
# useradd -g oinstall -G dba -d /usr/oracle oracle
# passwd oracle


Downgrade binutils

# emerge -pv binutils

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild     U ] sys-devel/binutils-2.14.90.0.8-r1 [2.14.90.0.7-r4] -bootstrap -build +nls  10,777 kB

Total size of downloads: 10,777 kB

# emerge /usr/portage/sys-devel/binutils/binutils-2.13.90.0.18-r1.ebuild
# INSTALL 후에 원래대로 upgrade 한다(# emerge -u binutils)


커널 파라미터 설정

# cat /proc/sys/kernel/shmmax
=>33554432
# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmax
# vi /etc/sysctl.conf (영구적으로 설정)
kernel.shmmax=1073741824


다운 받은 파일 압축 풀기

# gunzip lnx_920_disk1.cpio.gz
# cpio -idmv < lnx_920_disk1.cpio
# disk2,3 도 동일하게 작업한다.


Tomcat의 Port No 변경하기

Tomcat이 설치가 되어 있고 Port No를 8080으로 사용하고 있다면 Port No 를 변경해 주어야 된다.

# vi /opt/tomcat/conf/server.xml
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
    <!-- change port number for oracle http server 8080->8088 by santana -->
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8088" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"


My .bash_profile For Oracle User

export ORACLE_SID=ARIRANG
export ORACLE_BASE=/usr/oracle/db
export ORACLE_HOME=/usr/oracle/db
export ORACLE_TERM=xterm
export TNS_ADMIN=/usr/oracle/db/network/admin
export NLS_LANG=American_America.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORACLE_OWNER=oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/ucblib:/usr/X11/lib:/usr/local/lib
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:/usr/X11/bin:/usr/local/bin:/usr/X11R6/bin:$ORACLE_HOME/dba
#export DISPLAY=:0.0
export LANG=C
export EDITOR=vi
export TMPDIR=/tmp
export TMP=/tmp
export TEMP=/tmp
#export JAVA_HOME=/usr/java/jdk1.3.1_02
export JAVA_HOME=/opt/blackdown-jdk-1.4.1
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

alias ll='ls -la'
alias lx='ls -alxF'
alias oh='cd $ORACLE_HOME'
set -o vi
#PS1='($ORAPRD):/\W $ '
PS1='\[\033[01;32m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'
cd db/


설치 시작

0. 설치전 디스크의 공간

oracle@arirang oracle $ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2              28G  2.2G   24G   9% /
/dev/hda1              99M  9.4M   85M  10% /boot
/dev/hda5              19G  159M   18G   1% /var
/dev/hda6              64G  4.8G   56G   8% /data


1. runInstaller 를 실행한다.

$ /data/Disk1/runInstaller &
$ Initializing Java Virtual Machine from /tmp/OraInstall2004-04-11_10-10-22PM/jre/bin/java.
Please wait... /tmp/OraInstall2004-04-11_10-10-22PM/jre/bin/i386/native_threads/java:
error while loading shared libraries: libstdc++-libc6.1-1.so.2:
cannot open shared object file: No such file or directory 
[1]+  Done                    ./runInstaller


상기와 같은 에러 발생시 아래의 패키지를 설치해야 한다.
# emerge -pv lib-compat

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] sys-libs/lib-compat-1.3   3,076 kB

Total size of downloads: 3,076 kB

# emerge lib-compat


2. 다시 한 번 runInstaller 를 실행한다.

$ Initializing Java Virtual Machine from /tmp/OraInstall2004-04-11_10-20-11PM/jre/bin/java. Please wait...
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]

[1]+  Done                    ./runInstaller


상기와 같은 에러가 나면서 화면의 폰트가 깨어져 보인다면 아래와 같이 한다.

/data/ftp_data/comp/Linux/oracle/Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib 에 있는 font.properties 를 수정한다.(또는 font.properties.ko 파일을 만들어 준다)


가장 확실한 방법은 그냥 영문으로 인스톨하는 것이다.

$ unset LANG
$ unset LC_ALL


3. Next 버튼을 누른다.


4. OK 버튼을 누른다.


5. Unix Group Name에 oinstall 입력 후 Next 버튼을 누른다.


6. root 로 /tmp/orainstRoot.sh 를 실행한 후 Contiune 버튼을 누른다.

# /tmp/orainstRoot.sh
Creating Oracle Inventory pointer file (/etc/oraInst.loc)
Changing groupname of /usr/oracle/db/oraInventory to oinstall


7. Next 버튼을 누른다.


8. Product Languages 버튼을 누른다.


9. Korean 을 추가한 후 OK 버튼을 누른다.


10. Oracle9i Database 9.2.0.1.0을 선택 후 Next 버튼을 누른다.


11. Enterprise Edition (1.74GB)을 선택 후 Next 버튼을 누른다.


12. General Purposef 를 선택 후 Next 버튼을 누른다.


13. Global Database Name과 SID를 입력 후 Next 버튼을 누른다.


14. Database Performace를 위해 Database File의 위치는 다른 Disk로 하는 것이 좋다. 그러나 다른 Disk가 없다면 Next 버튼을 누른다.


15. Next 버튼을 누른다.


16. Install 버튼을 누른다.


17. 설치가 시작된다.


18. 설치중 아래와 같은 에러가 나면 다음과 같이 처리한 후 Retry 버튼을 누른다.

$ vi $ORACLE_HOME/ctx/lib/env_ctx.mk를 열어서 1365라인정도에 있는 INSO_LINK에 $(LDLIBFLAG)dl 를 추가합니다.

INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)sc_ca $(LDLIBFLAG)dl $(LDLIBFLAG)sc_fa 
$(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi 
$(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)


19. 아래와 같은 메시지가 나오면 root로 /usr/oracle/db/root.sh를 실행한 후 OK버튼을 누른다 .

# /usr/oracle/db/root.sh
Running Oracle9 root.sh script...
\nThe following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /usr/oracle/db

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

\nCreating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.


실행후에는 /usr/local/bin에 coraenv,dbhome,oraenv 3개의 파일이 생성된다.


20. Oracle Database Configuration Assistant 설치에 실패하였다. (일단 SKIP)

$ vi $ORACLE_HOME/bin/dbca 마지막 부분을 아래와 같이 수정한다.
#if [ -f /etc/rac_on ]; then
# Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
#else
# Run DBCA
#$JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
#fi


21. 설치가 끝났다. Exit 버튼을 누른다.


22. 20번에서 그냥 스킵했을 경우에는 $ORACLE_HOME/bin/dbca dbca를 실행한다.

$ dbca &


23. Next 버튼을 누른다.


24. Create a database를 선택 후 Next 버튼을 누른다.


25. General Purpose를 선택 후 Next 버튼을 누른다.


26. Global Database Name과 SID를 입력 후 Next 버튼을 누른다.


27. Dedicated Server Mode를 선택 후 Next 버튼을 누른다.


28. Archive탭에서 Archive Log Mode로 선택하고 Archive가 저장될 장소를 지정하고 이 외에 메모리나 캐릭터셋이나 DB Sizing을 적당히 조정한 후 Next 버튼을 누른다.


29. Next 버튼을 누른다.


30. Create Database를 선택 후 Finish 버튼을 누른다.


31. Summary 를 보여준다. OK 버튼을 누른다.


32. database 생성을 시작한다.


33. SYS와 SYSTEM 유저의 패스워들를 입력 후 Exit 버튼을 누른다.


34. 설치가 완료되었다. sqlplus로 접속하여 확인하여 보자.

접속전 반드시 뒷부분의 tnsnames.ora 와 listener.ora 파일을 참조하여 2개의 파일의 설정을 확인한다.

$ sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Sun Apr 18 16:30:44 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL>
SQL>
SQL>
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> select sysdate from dual;

SYSDATE
---------
18-APR-04


35. 가장 많은 예제로 쓰이는 EMP, DEPT 테이블 예제를 만들어 본다.

$ cd $ORALCE_HOME/sqlplus/demo
$ sqlplus /nolog
SQL> @demobld.sql
Building demonstration tables.  Please wait.
Demonstration table build is complete.

SQL> select * from emp;
     EMPNO ENAME                JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- --------- ---------- ---------- ----------
      7369 SMITH                CLERK                    7902 17-DEC-80        800                     20
      7499 ALLEN                SALESMAN               7698 20-FEB-81       1600        300         30
      7521 WARD                SALESMAN               7698 22-FEB-81       1250        500         30
      7566 JONES               MANAGER                 7839 02-APR-81       2975                    20
      7654 MARTIN              SALESMAN                7698 28-SEP-81       1250       1400        30
      7698 BLAKE               MANAGER                 7839 01-MAY-81       2850                    30
      7782 CLARK               MANAGER                 7839 09-JUN-81       2450                    10
      7788 SCOTT              ANALYST                  7566 09-DEC-82       3000                    20
      7839 KING                 PRESIDENT                      17-NOV-81       5000                    10
      7844 TURNER              SALESMAN                7698 08-SEP-81      1500          0         30
      7876 ADAMS               CLERK                    7788 12-JAN-83       1100                    20

     EMPNO ENAME                JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- --------- ---------- ---------- ----------
      7900 JAMES                CLERK                    7698 03-DEC-81        950                    30
      7902 FORD                 ANALYST                 7566 03-DEC-81        3000                   20
      7934 MILLER               CLERK                     7782 23-JAN-82       1300                    10

14 rows selected.


36. 설치 후 디스크 공간

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2              28G  7.2G   19G  28% /
/dev/hda1              99M  9.4M   85M  10% /boot
/dev/hda5              19G  187M   18G   2% /var
/dev/hda6              64G  4.8G   56G   8% /data


My tnsnames.ora

# TNSNAMES.ORA Network Configuration File: /usr/oracle/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ARIRANG =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ARIRANG)
    )
  )

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


My listener.ora

# LISTENER.ORA Network Configuration File: /usr/oracle/db/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/oracle/db)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ARIRANG)
      (ORACLE_HOME = /usr/oracle/db)
      (SID_NAME = ARIRANG)
    )
  )


참조 문서


문서 작성자들

  • 최초 작성자: 2004/05/01 조시현
  • 옮긴이: 2013/03/19 GentooKR 작업자


기 타

  • Gentoo에서 오라클 사용하시는 분들의 많은 도움 부탁드립니다. -- 조시현