티스토리 뷰

WEB, WAS, DB는 동일하게 CentOS 7 버전을 설치했습니다..


이전에 [Linux] CentOS 5.5 오라클11gR2 설치 성공.. 한것이 있는데..


왜 또 하냐구요?..


SyntaxHighlighter 플러그인 설치한 김에;.. 한번 해보려고 올려봅니다..


해당 부분 올릴때 마다 HTML모드로 변환해야한다는 단점이 있네요;.. 약간 귀찮음이;..



아무튼 새로 오라클 설치 올려봅니다..



오라클 설치 파일이 GUI 를 사용하기 때문에.. GUI를 설치해줍니다.. 그리고 시작..

sudo  yum -y groupinstall "Server with GUI"


서버 GUI 로 설치했기 때문에.. 안해도 될 줄 알았는데.. 뭔가 열심히 설치하더군요;..



그리고 서버 GUI로 설치했기 때문에 부팅시에 GUI 모드로 부팅하는 것은 할 필요가 없으나..

최소 설치하신 분들의 수고를 덜어드리기 위해서.. 해당 부분을 넣었습니다..

sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target


그리고 필수 패키지를 설치해줍니다..

sudo yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 ksh elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 make sysstat unixODBC unixODBC-devel

너무 길게 적혀있는데.. 제가 일부로 그런건 아닙니다..  

해당 부분 출처 - centos7 oracle 11g r2 설치 - 설치준비 (1/5)..



이전에 제가 한 설치 방법에서는 이걸 넣어줬었는데 말이죠..

제가 설치했던걸 install 하면 패키지 몇개를 더 설치하네요..

sudo yum install binutils-2* compat-libstdc++-33* elfutils-libelf* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh* libaio-0.* libaio-devel-0.* libgomp-4.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*


이게 블로그마다 다 틀려서;..

sudo yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 ksh elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 make sysstat unixODBC unixODBC-devel
sudo yum install glibc.i686


그리고 업데이트..

sudo yum update


그리고 커널 파라미터 설정 값들을 추가해줍니다..

sudo vi /etc/sysctl.conf


있으면 패스하고.. 없는것들을 추가해줍니다..

kernel.shmmni = 4096 
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586


설정값을 반영하고..

/sbin/sysctl -p


다음 사용자 계정 Shell Limit 설정을 진행합니다..

vi /etc/security/limits.conf


아래에 해당 내용을 추가해줍니다..

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   1024

옛날에 설치할때만 해도.. 뭣도 모르고 그냥 막 해본거였는데.. 이제는 뭐가 뭔지 눈에 보이네요..

vi /etc/pam.d/login


제일 아랫쪽에 추가해줍니다.. 

중간에 추가해주라는곳도 있는데.. 지금까지 여러번 설치해본결과 상관없는것 같습니다..

session       required    pam_limits.so


해당 파일이 없는 경우도 종종 있는데요.. /usr/lib64/security/ 에 파일들이 있을 수 있으니까 찾아보시면 됩니다..

그때는 경로를 같이 적어주면 됩니다..

auth	   required	/usr/lib64/security/pam_securetty.so


제가 이전에도 CentOS에는 있고 페도라, 우분투에는 없는 부분이라 추가하라고 했던 부분인데요..


SELinux 를 비활성화 합니다..

vi /etc/selinux/config


다른 블로그 보면.. 설치하다가 에러나면.. 그 때 추가해주더군요.. 어짜피 날 에러.. 지금 추가해줍니다..

SELINUX=disabled

예전에도 한번 설명 드렸지만.. 여기까지는 그냥 하면 되는 부분들이고..


오라클 설치 시 가장 어려운 설치계정, 그룹, 권한 부여 그리고 환경변수 설정 부분을 진행하겠습니다..


설치 계정하고 그룹 생성을 할껀데..


이전에는 oper, asmadmin 이란것도 만들었는데요.. 그 당시는 그냥 따라 만든거라 만들어줬는데..


사용을 안하면.. 굳이 안만들어도 되는건데.. 만들필요는 없는건 생략하겠습니다..

sudo groupadd -g 501 oinstall
sudo groupadd -g 502 dba
sudo groupadd -g 503 oper
sudo useradd -u 502 -g oinstall -G dba,oper oracle


-g 명령어로 GID 그룹의 고유번호를 지정해줬습니다.. 안해줘도 특별히 문제되는 부분은 없습니다..


그리고 오라클 계정에 비밀번호를 만들어줍니다..

sudo passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호:
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


오라클을 설치할 폴더를 생성해주고.. 권한도 지정해줍니다..

sudo mkdir -p /data/app/oracle/product/11.2.0/dbhome_1
sudo chown oracle:oinstall -R /data
sudo chmod -R 775 /data


프로파일을 수정합니다..

sudo vi /etc/profile


가장 아래에 해당 부분을 추가해줍니다.. 

if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
           ulimit -p 16384
           ulimit -n 65536
      else
           ulimit -u 16384 -n 65536
      fi
fi


이전에 해놓은거 보니.. 너무 생각없이 따라했다는게 보이네요;.. 붙여넣으라고 했다고..


다음은 PATH 설정을..

sudo vi /home/oracle/.bash_profile


이게.. 어떻게 하면.. 나오고.. 어떻게 하면 안나오고 하더라구요..

해당 부분을 추가해줬습니다..

export TMP=/tmp
export ORACLE_UNQNAME=db11g
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=db11g

PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

umask 022


이제 힘든 세팅은 끝났고.. 설치 준비를 해봅니다..



Oracle Database 11g Release 2.. 을 다운 받아줍니다..

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


오라클 계정이 있어야만 다운되더군요;.. 하나 만들었습니다;..



Oracle Database 12c Release 2 로 받고 싶었으나..

꼭 11g.. 로 해야겠다고 요청한 사람이 있어서;.. 나중에 12c로 해봐야겠습니다..



리눅스 서버니까 리눅스로 받으면 되고..


Linux x86-64 File 1, File 2 (2GB) See All  파일이 2개 있는데 2개 다 받으면 됩니다..


파일명칭은 다운 받아보니.. 이렇네요..

linux.x64_11gR2_database_1of2.zip..

linux.x64_11gR2_database_2of2.zip..



용량이 크기 때문에.. 못 올립니다.. 오라클 들어가서 다운받으세요..


FTP프로그램을 이용해서 /home/oracle 밑에 해당 파일을 넣고.. 압축을 풀어줍니다..

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip


Xshell 같은 프로그램으로는 안되더군요;.. 그래서 가상 서버에서 직접 해줍니다..


오라클 계정으로 바꾸고.. 또는 오라클 계정으로 로그인합니다..

su - oracle


압축을 풀은 /home/oracle 로 들어가서 설치파일을 실행해줍니다..

./database/runInstaller
Oracle Universal Installer 시작 중...

임시 공간 확인 중: 120MB 이상이어야 합니다..   실제 46466MB    성공
스왑 공간 확인 중: 150MB 이상이어야 합니다..   실제 2047MB    성공
모니터 확인 중: 최소 256 색상을 표시하도록 구성되어 있어야 합니다.
    >>> /usr/bin/xdpyinfo 명령을 사용하여 디스플레이 색상에 대한 자동 검사를 실행할 수 없습니다. 
        DISPLAY 변수가 설정되어 있는지 확인하십시오.    실패 <<<<

일부 요구 사항 검사를 실패했습니다. 설치를 계속하기 전에 이러한

요구 사항이 충족되어야

계속하겠습니까? (y/n) [n]


Xshell 로 작업을 하다 보니.. DISPLAY 설정이 안되서 충족하지못해 실패가 나오더군요..


그래서 이부분은 귀찮지만.. 가상서버에 직접들어가서 하기로;..


터미널을 부르고.. 

./database/runInstaller

실패란 말 없이 설치 화면이 나오는데..


한글이 다 깨져서 나옵니다;..


귀찮으신  분은.. 어짜피.. 한글이 안보일 뿐이니까;.. 그냥 화면 보고.. 따라서 치셔도 됩니다;..


"아니다!.. 난 한글로 나오는걸 꼭 봐야겠다!".. 하시는 분들은 다시 루트 계정으로..

vi .bash_profile


해당 부분을 추가해줍니다..
export LANG=C


jdk가 설치되어있다면.. 기본적으로 셋팅을 안했는데.. 기본으로 깔렸다면..  이라고 실행해줍니다..

./database/runInstaller -jreLoc /usr/lib/jvm/jre

jre 경로가 틀리면 해당 경로에 맞춰서 뒤를 수정해줍니다..


한글이 정상적으로 표시가되고.. My Oracle Support 해제 하시고..


전자메일 주소로 안받겠다 예!..


데이터베이스 생성 및 구성으로 설치하겠습니다.. 데이터베이스 생성 및 구성 선택!..


서버로 만들거니까 서버 클래스 선택!..


단일 인스턴스 선택!..


표준 설치 선택!..


OSDBA를 orcl 에서 ora11 로 변경했습니다..

관리비밀번호는 대문자, 소문자, 숫자가 포함되어야 합니다..


다음이요..


모두 무시를 선택하고.. 진행합니다..


모두 무시가 싫다는 분들은 각각의 실패 원인을 인터넷에서 확인 후 처리하시면 됩니다;..

대부분 버전 오류기 때문에 무시하고 진행하셔도됩니다..



완료를 누르면 설치를 진행합니다..


설치가 진행중입니다..



설치하면서 2번은 에러가 꼭 발생합니다..


첫번째 에러 발생!..


root 계정으로 변경 후.. 

[oracle@localhost ~]$ su -
암호:


해당 경로를 찾아가서 수정해줍니다..

cd /data/app/oracle/product/11.2.0/dbhome_1/ctx/lib/
vi ins_ctx.mk


해당 부부분을..

ctxhx: $(CTXHXOBJ)
    $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

아래와 같이 변경해줍니다..

ctxhx: $(CTXHXOBJ)
	-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a


변경하셨으면 재시도로.. 설치를 다시 진행합니다..



두번째 에러 발생!..


다시 root 계정으로 해당 부분을 찾아가서 수저을 해줍니다..

cd /data/app/oracle/product/11.2.0/dbhome_1/sysman/lib
vi ins_emagent.mk


해당 부분을 찾아서..

#===========================
#  emdctl
#===========================

$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL)

-lnnz11 을 뒤에 추가해줍니다..

#===========================
#  emdctl
#===========================

$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL) -lnnz11

이 번에도 재시도로.. 설치를 진행해줍니다..



대충 95% 정도 가면 창이 하나 뜨는데..

가끔.. 창이 찌그러져 나올때가 있는데.. 그냥 기다리시면 넘어갑니다..



해당 부분에서 오류 나면.. 오류 내용이 나오니까 그냥 계속 기다리시면 됩니다..



구성 스크립트를 실행해줍니다..

/data/app/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/dbhome_1/root.sh


그럼 설치 완료!..




참고 블로그 - centos7 oracle 11g r2 설치 - 설치준비 (1/5)..