database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 15754 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 15754
[자료] RedHat 7.3 에서 Oracle 8i 설치하기 - 개정판
작성자
문태준(taejun)
작성일
2003-09-30 20:41ⓒ
2003-09-30 20:41ⓜ
조회수
10,208

기존에 DSN에 이와 비슷한 자료들이 많이 있습니다. 그렇지만 왜 또 이런 자료를 올리느냐는 아래 설명을 읽어보시기 바랍니다.

 

 

redhat 7.3 에 Oracle 8i 설치하기

 

작성자 : 문태준

http://tunelinux.pe.kr

http://database.sarang.net

 

redhat 7.x 에 오라클 8i를 설치하는 경우에는 glibc 관련한 문제로 약간의 작업이 필요하다. 그런데 기존에 나와있는 자료들은 glibc 2.1 을 받아서 임시로 gcc, ld 등을 바꾸어서 사용하므로 불편한 점이 있다. 이대신 redhat 6.2와의 호환성을 위한 compat 패키지를 이용하면 편리하다. 또한 redhat 7.3이나 8.3, redhat advanced server 에 9i를 설치하는 경우 ctx 관련하여 에러가 나는데 7.3에 8i를 설치하는데도 동일한 문제가 발생하였다. 이에 대한 내용은 왜 자료가 없는지 모르겠다.

 

기본적인 내용은 아래 페이지를 참고하기 바라며 오라클 설치에 대한 경험은 있다고 가정하고 필요한 부분만 이야기를 하겠다.

 

ㅇ 환경 : redhat 7.3 / Oracle 8i(817)

 

ㅇ 필요한 패키지 및 작업

- jdk-1.1.8_v3 - Blackdown Linux port of Sun's Java Development Kit : www.blackdown.org 에서 다운 받으면 된다.

내가 다운받은 것은 jdk118_v3-glibc-2.1.3.tar.bz2 이었다. 이 패키지를 설치하지 않으면 설치화면 자체가 뜨지 않았다. 설치프로그램 자체에서 glibc 2.1 용 jdk를 요구해서 그런 것 같다.

이 패키지를 /usr/local 에 풀고 /usr/local/java로 심볼릭 링크를 해주어야 설치 프로그램에서 jre 의 경로를 제대로 찾을 수 있다. 이를 해주지 않으면 설치화면은 뜨지만 설치 중간에 jre 경로를 찾지 못한다는 에러가 났다. (맞나? 기억이 가물가물..)

 

- Red Hat Linux 6.2 compatibility packages

compat-libstdc++-6.2-2.9.0.16

compat-glibc-6.2-2.1.3.2

compat-libs-6.2-3

compat-egcs-6.2-1.1.2.16

 

다음은 이 패키지에 대한 rpm -qi 에 대한 설명이다.

compat-libstdc++-6.2-2.9.0.16

The compat-libstdc++ package contains compatibility Standard C++ libraries that are used by Red Hat Linux 6.2 C++ binaries and KDE 1.x C++ binaries in the current distribution.

 

compat-glibc-6.2-2.1.3.2

This package contains the version 2.1.3 of the GNU C library for compiling binaries that will run on Red Hat Linux 6.2 and other glibc 2.1.x Linux based systems. This package includes the runtime libraries.

 

compat-libs-6.2-3

This package includes a number of run-time libraries that are compiled on Red Hat Linux 6.2. This package is required if you want to do development for Red Hat Linux 6.2 and other glibc 2.1 based systems.

 

compat-egcs-6.2-1.1.2.16

This package includes a compiler that can be to generate binaries that will run on older Red Hat Linux systems (namely Red Hat Linux 6.2). This package includes the C compiler and required compiler libraries for those systems.

 

 

compatibility packages를 이용하면 복잡하게 이전 glibc를 받아서 임시로 옮겨서 설치하고 다시 원상복구하는 불편한 작업을 하지 않아도 된다. 얼마나 편리한가!

 

- glibc-2.1.3-stubs Patch from Oracle. : http://download.oracle.com/otn/linux/oracle8i/glibc-2.1.3-stubs.tar.gz 에서 받으면 된다.

이 패키지는 otn 사이트에서 받아야하며 dbassist 를 이용하여 db를 생성하기전에 패치를 실행해야 db가 생성된다.

프로그램을 풀면 나오는 README 파일에 보면 왜 패치가 필요한지 나와 있다. 설치시 실행파일들이 glibc-2.1.3에서 컴파일된 아카이브를 이용하여 링크를 해야하기 때문다. 애플리케이션 개발자의 경우 이 안에 주의사항도 들어있으므로 같이 읽어보는 것이 좋다.

 

=================

Patch Description

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

Oracle8i for Linux is shipped with archived objects which were compiled using glibc-2.1.3. The executable components are then linked at install-time using

these archives. Due to compatibility limitations in glibc, if the target system for an installation is based on a later version of glibc, then the executables produced by the linker will not be valid. As a workaround to this limitation, we have created a set of stub libraries which are used at link-time only to mimic the contents of glibc-2.1.3 shared objects. Note that these stub libraries do not contain valid executable code, and therefore

*must NOT* be included in the library path searched by the dynamic loader (i.e., do not include $ORACLE_HOME/lib/stubs in LD_LIBRARY_PATH).

 

- oracle 환경파일 추가하기

export LD_ASSUME_KERNEL=2.2.5

source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh

 

위의 두가지 내용을 .bash_profile 의 오라클 환경변수에 추가로 해주지 않으면 설치 프로그램이 뜨지 않는다.

 

# cat /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh

# Run `. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh'

# for transparent glibc 2.1.x compatibility build environment.

# Preprocessor will use glibc 2.1.x compatibility headers and

# things will be linked against glibc 2.1.x compatibility libraries.

# This will work both when linking using gcc drivers or standalone ld

# on i386 platform.

export LDEMULATION=elf_i386_glibc21 # This is so that when genclntsh runs

# ld, it first looks at /usr/i386-glibc21-linux/lib

# for libraries

export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/

# This is so that the gcc driver uses

# the compatibility compiler

 

위 두줄은 환경설정을 바꾸어서 gcc와 ld 가 glibc 2.1.3 호환의 헤더와 라이브러리를 찾을 수 있도록 해준다.

 

ㅇ 설치하기

- jdk와 compatibility package 를 먼저 설치하고 오라클 환경변수를 맞추어준다.

- 이제 오라클 설치하는 매뉴얼에 따라 설치를 한다.

** Available Products 에서 8i 엔터프라이즈를 선택하고 나서 Typical을 고르면 설치가 모두 끝난 후 자동으로 demo db를 생성한다. 이것을 막으며련 Custom을 이용하는 것이 좋고 Custom을 이용하여 characterset 을 한글로 바꿀 수 있다.

- 중간에 ctx 에서 에러가 하나 발생한다. 아래의 해당 사이트를 보면 이에 대한 해결책이 나와있는데 9i에서 나오는 에러라고 하지만 redhat 7.3에 8i를 설치하는데도 발견이 되었다.

"Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk"

 

http://www.puschitz.com/InstallingOracle9i.shtml

 

Edit the file $ORACLE_HOME/ctx/lib/env_ctx.mk, go to "INSO_LINK =", and add a "$(LDLIBFLAG)dl" to the line and save it.

 

Here is the full line with the added "$(LDLIBFLAG)dl" flag:

 

INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(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)

 

$(LDLIBFLAG)dl 만 추가를 해주고 다시 시도를 하면 문제가 해결된다.

 

ㅇ db 생성하기

- 프로그램설치가 끝나고 root.sh 를 실행하라는 메시지가 나오면 glibc-2.1.3-stubs 패치를 적용해야 한다. Typical로 설치를 하면 root.sh를 실행한 후 자동으로 demo db를 생성하므로 이 과정을 멈추도록 하거나 아니면 root.sh를 실행하기 전에 패치를 적용하면 된다.

 

$ tar -xvzf glibc-2.1.3-stubs.tar.gz -C $ORACLE_HOME

$ cd $ORACLE_HOME

$ ./setup_stubs.sh

 

** 오라클에서 추가로 제공되는 oracle patchset 을 설치한 후에도 stub-libs 패치를 다시 적용해주어야한다.

 

- root.sh 에 자잘한 버그들이 있다. 그런데 다른 자료들에는 이에 대한 설명이 거의 없는것을 보면 별다른 문제가 생기지는 않는 것 같다. 8i의 root.sh에 대한 버그는 아래의 suse 자료에는 설명이 되어 있다.

ftp://ftp.suse.com/pub/suse/i386/supplementary/commercial/Oracle/docs/817_sles7_install.pdf

 

두가지를 고치면 된다.

RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'` => 원래의 root.sh는 마지막 ` 의 전에 ' 가 빠져있다. 기호를 헷갈리지 말길. `는 숫자판 1 옆에 있는 것을 말하며 '는 자판 오른쪽 가운데 있는 것을 말한다. `` 는 가운데 있는 내용을 실행한 것을 앞에 선언한 변수에서 받기 위한 용도이다.

 

또한가지는 RMF에 대한 설정이 두가지 있는데 하나는 "" 가 빠져있다. ""를 들어가도록 바꾸면 된다.

RMF="/bin/rm -f"

 

** 수세의 SLES7, SLES8에서는 glibc-2.1.3-stubs 패치만 적용하면 되어 간단하다. 또한 오라클 환경변수, init 파일 등도 rpm으로 제공하여 편리하다.

 

 

참고자료 : http://tunelinux.pe.kr/wikix/index.php?display=OracleInstall

[Top]
No.
제목
작성자
작성일
조회
17192RedHat 8 에 Oracle 9i 설치하기
정재익
2004-02-04
11809
16672[참고] 오라클 리스너에서 접속 제한하기
문태준
2003-12-10
8976
16462[참고] 오라클 9I에서 XDB때문에 8080,2100 포트가 자동으로 뜨네요
문태준
2003-11-25
11528
15754[자료] RedHat 7.3 에서 Oracle 8i 설치하기 - 개정판
문태준
2003-09-30
10208
14708Database Storage
정재익
2003-06-19
14731
14707Database Structure
정재익
2003-06-19
12374
14706Database Architecture
정재익
2003-06-19
12258
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다