DB (데이터베이스)/Oracle (오라클)

[ORACLE] 리눅스(CentOs7)에 오라클 11g 설치

뜽배 2022. 5. 20. 10:09
728x90
반응형

 1. 의존 라이브러리 설치 (root계정으로 설치)

yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel
yum -y install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel
yum -y install libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel
yum -y install unzip
yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel​

 

 

2. 파라미터 값 설정

[root@localhost ~]# vi /etc/sysctl.conf

 

아래 코드를 맨 아랫줄에 추가해 준다.

 

 

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 10523004
kernel.shmmni = 4096
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

 

 

3. 유저 자원 사용 제한값 설정

 

[root@localhost ~]# vi /etc/security/limits.conf

 

아래 코드를 맨 아랫줄에 추가해 준다.

 

oracle soft nproc 2048
oracle hard nproc 65536
oracle soft nofile 1024
oracle hard nofile 65536

 

4. SELINUX 설정을 해제한다.

 

[root@localhost ~]# vi /etc/selinux/config

 

아래와 같이 ‘SELINUX=disabled’ 추가

 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

 

5. 유저 생성

[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g dba oracle
[root@localhost ~]# passwd oracle

 

6. 디렉토리 생성 및 권한 부여

 

[root@localhost ~]# mkdir -p /home/oracle
[root@localhost ~]# chown -R oracle:dba /oracle
[root@localhost ~]# chmod -R 775 /oracle

 

 

7. 환경변수 설정

 

7-1. oracle계정으로 접속

[root@localhost ~]# su - oracle
[oracle@localhost ~]$ vi .bash_profile

 

7-2. 환경변수 설정

 

.bash_profile에 해당 코드를 추가한다.

 

export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin

 

8. oracle 설치

 

오라클 11g 설치파일을 filezilla를 통해 서버로 옮긴다.

 

이후 압축을 해제한다.

 

[oracle@localhost ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@localhost ~]$ unzip linux.x64_11gR2_database_2of2.zip

 

영어설정

 

[oracle@localhost ~]$ export LANG=C

 

압축 해제 후 설치

 

[oracle@localhost ~]$ cd /home/oracle/database
[oracle@localhost database]$ ./runInstall

 

 

9. 설치 과정

 

9-1. I wish to reveive security updates via.... 체크해지

9-2. insall database software only 선택

9-3. single instance database installation 선택

9-4. Korean 선택 > 추가

9-5. Enterprise Edition 선택

9-6. 넘기고

9-7. oraInventory 디렉터리가 없다면 생성해서 oracle:dba 권한을 부여한 후 next를 누른다.

9-8. 넘겨준다

9-9. Ignore All에 체크를 해주고 넘긴다.

9-10. 확인하고 finisth

9-11. 설치 중 84%에서 발생한 error대처

 

Error in invoking... 이라는 error메시지가 나오는데 여기서 나오는 error의 경로를 따라가서 vi로 열어준다..

 

[oracle@localhost ~]$ cd /mnt/data/oracle/product/11.2.0/dbhome_1/ctx/lib
[oracle@localhost ~]$ vi ins_ctx.mk

아래와 같은 구문을 찾는다.

 

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

 

찾아서 아래와 같이 변경한다.

 

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

 

Retry버튼을 누른다.

 

 

이후 비슷한 애러가 나오는데 해당 경로로 이동한다.

 

[oracle@localhost ~]$ cd /mnt/data/oracle/product/11.2.0/dbhome_1/system/lib
[oracle@localhost ~]$ vi ins_emagent.mk

 

아래와 같은 구문을 찾는다

 

 

$(SYSMANBIN) emdctl:
$(MK_EMAGENT_NMECTL)

 

 

다음과 같이 변경한다.

 

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

 

Retry버튼을 누른다. 마지막에 쉘 스크립트를 실행하라는 안내 창이 뜬다.

root계정에서 실시해야 한다.

 

[root@localhost ~]# /mnt/data/oracle/oraInventory/orainstRoot.sh
[root@localhost ~]# /mnt/data/oracle/product/11.2.0/dbhome_1/root.sh

 

Enter the full pathname of the local bin directory:..[ENTER]키 입력

 

설치가 완료되면 orcale계정으로 돌아가 환경변수를 적용한다.

 

[oracle@localhost ~]$ source .bash_profile

 

10. 리스너 설정

 

아래의 명령어로 리스너를 생성한다.

 

[oracle@localhost database]$ netca

10-1 Listener configuration

10-2. 최초 구성이므로 Add

10-3.부터 쭉 NEXT 하고 Finish

 

11. 데이터베이스 생성

 

아래의 명령어로 데이터베이스를 생성한다.

 

[oracle@localhost ~]$ dbca

11-1. next

11-2. create

11-3. next

11-4. oracle_siddatabase이름을 설정한다.

11-5. next

11-6. password를 설정하는데 관리자 전체 게정에 동일 패스워드를 사용한다는 옵션 체크하고 password를 설정한다.

11-7. memory sizing설정 까지 전부 next

11-8. Memory 탭에서 memory size를 설정한다.

Character Sets 탭에서 Choose from the list of chacter set부분을 선택한 뒤 WIN949로 설정

아래쪽에 National Character Set -> UTF8 / Default Language -> Korean / Default Territory -> Korea

로 설정한다.NEXT

11-9. 나머지 전부 NEXT한다.

 

12. 데이터베이스 및 리스너 실행

 

아래의 명령어로 sqlplus를 실행시킨다

 

[oracle@localhost ~]$ sqlplus “/as sysdba”

 

아래의 명령어로 DB를 가동한다

 

SQL > shutdown immediate
SQL > startup
SQL > exit

 

 

그리고 아래의 명령어로 리스너의 상태를 확인한다.

 

[oracle@localhost ~]$ lsnrctl status

 

13. 외부에서 접속을 할 수 있도록 방화벽을 열어준다.

 

(루트 계정으로)

 

[root@localhost ~]# firewall-cmd --zone=public --permanent --add-port=1521/tcp

 

포트 리로드

 

[root@localhost ~]# firewall-cmd --reload

 

포트 열기는 아래 포스트에서도 확인할 수 있다.

2021.03.31 - [OS (운영체제)/리눅스] - [LINUX] 리눅스 포트 열기

 

[LINUX] 리눅스 포트 열기

보통 리눅스 서버에 DB를 설치하고 해당 DB port를 열어야 하는 작업을 해야한다. 포트열기 # firewall-cmd --zone=public —permanent --add-port=<포트번호>/tcp 포트 리로드 # firewall-cmd --reload oracle DB..

seungbae-db.tistory.com

 

 

 

728x90
반응형