⛏️/Mysql | Oracle

[Oracle] CentOS7 및 Oracle 설치

defyuil 2023. 11. 28. 16:21

Oracle

  • OracleDB는 리눅스 환경과 윈도우 환경을 지원한다.
  • 일반적으로 개발환경 구축시에는 어떤 운영체제를 사용해도 상관없으나, 서비스용 데이터베이스 구축 시에는 리눅스 환경으로 구축한다

 

CentOS7 가상머신 생성(Virtualbox)

  • 가상머신의 이름은 별도 제한은 없으나 이름에 게스트 운영체제의 이름을 넣으면 머신 종류가 자동으로 설정된다. 종류가 제대로 설정되지 않으면 가상머신이 정상 구동되지 않으므로 주의!!

 

  • 메모리는 기본값이 2048MB이나 오라클 데이터베이스가 최소 요구하는 값이 4096mb이므로 컴퓨터 사양에 따라 적절하게 4096 이상 녹색바의 범위 내에서 설정한다
  • CPU는 실습 중에는 특별히 조정하지 않아도 문제는 없다

 

  • 자동 파티셔닝으로 운영체제를 설치하기 때문에 스왑 파티셔닝 사이즈에 맞게 적절히 저장공간을 크게 잡는다
  • 가상 HDD의 경우 미리 할당 옵션을 사용하지 않는 경우 가상머신에서 저장하는 만큼 사이즈가 커지는 형태로 동작한다

 

  • 생성한 가상머신의 설정으로 이동한다

 

  • 설치 이미지 선택

 

  • 네트워크는 어댑터에 브리지로 선택
    가상 머신을 호스트 PC와 연결 된 네트워크에 연결한다



  • 언어는 영어로 진행한다

 

  • 머신의 타임 존 설정

 

  • 시간은 네트워크 설정 후 자동으로 잡히므로 그대로 둔다

 

 

  • 파티셔닝은 자동으로 설정한다.
    설정을 바꾸지 말고 그대로 done 눌러서 나온다

 

 

  • 호스트 네임은 여러 서버가 있는 환경에서 주소를 대신할 수 있는 서버의 별명으로 볼 수 있다

 

  • 위의 메뉴를 체크하면 가상머신 시작마다 자동으로 네트워크를 활성화해준다.

 

 

  • 관리자 계정인 root는 기본 활성되는 계정이기 때문에 패스워드를 별도로 초기화 해줘야 한다

 

  • 설치 과정이 끝나면 버튼을 클릭

 

  • 재시작



  • 먼저 계정을 입력 후 패스워드를 입력한다.
  • 패스워드 입력해도 보이지 않으므로 정확하게 입력하고 엔터

 

 

  • 가상머신의 IP 주소 조회
  • virtualbox 가상머신의 기본 네트워크 장비인 enp0s3에서 inet 항목의 IP 주소값을 확인한다.

 

 

IP 주소 수동 설정(NMTUI)

  • 리눅스의 터미널 환경에서 사용하는 네트워크 설정도구는 여럿 있으나 centos는 NMTUI를 기본으로 사용한다

 

 

 

  • 첫번째 메뉴 edit a connection 선택

 

  • enp0s3의 설정을 수정하기 위해 edit으로 방향키를 눌러 이동 후 선택한다.

 

  • IPv4 항목의 automatic을 선택한다

 

  • 수동으로 설정값을 변경

 

 

강사님 캡처
내 설정 캡처

  • addresses : 수동으로 고정할 IP 주소
  • gateway : 게이트웨이 장비의 주소를 적는다. 일반적으로 공유기의 주소
  • dns : ISP의 DNS나 유명 DNS 서버를 입력한다. 어떤걸 적어도 무관

 

  • 그냥 설정값 한번 켜고 끄고 back으로 나온다

 

 

  • 핑으로 신호 오가는 것 체크
  • 중지는 컨트롤 + C

 

 

세션 추가



시스템 업데이트 & GNOME Desktop 설치

[root@oracleDB ~]# yum update -y && yum group install "GNOME Desktop" -y

 

  • yum update -y : 시스템을 최신상태로 업데이트
  • yum group install "GNOME Desktop" -y : 그룹 패키지 GNOME Desktop 서치
  • -y 옵션은 설치 과정에서 확인하는 단계를 생략하는 옵션이다

 

오라클 관련 패키지 사전 설치

  • mobaxterm에서 드래그해서 블록된 내용은 자동 복사된다
  • 붙여넣기 기본설정은 우클릭이다
[root@oracleDB ~]# yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++l7.i686 libstdc++-devel libstdc++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libXtst libXtst.i686 make sysstat

 

 

커널 설정

  • 기본의 리눅스 커널 설정은 일반 사용에는 문제가 없지만 데이터베이스와 같은 대량의 파일을 접근하고 사용하는 환경에는 제약이 있다. 필수는 아니지만 운영목적인 경우 커널의 제한값을 완화시킬 필요가 있다

 

[root@oracleDB ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')
[root@oracleDB ~]# SHMMAX=$(expr $MEMTOTAL / 2)
[root@oracleDB ~]# SHMMNI=4096
[root@oracleDB ~]# PAGESIZE=$(getconf PAGE_SIZE)
[root@oracleDB ~]# cat > /etc/sysctl.d/50-oracle.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = $(expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \))
kernel.shmmni = $SHMMNI
kernel.sem = 250 32000 100 128
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 = 1048576
EOF

 

  • 위의 명령어는 cat ~ EOF까지 한번에 복사해서 입력한다.
  • 마지막 EOF 뒤에는 공백같은 필요없는 문자가 붙으면 안된다.
[root@oracleDB ~]# sysctl --system

* Applying /usr/lib/sysctl.d/00-system.conf ...

* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...

kernel.yama.ptrace_scope = 0

* Applying /usr/lib/sysctl.d/50-default.conf ...

kernel.sysrq = 16

kernel.core_uses_pid = 1

kernel.kptr_restrict = 1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.promote_secondaries = 1

net.ipv4.conf.all.promote_secondaries = 1

fs.protected_hardlinks = 1

fs.protected_symlinks = 1

* Applying /etc/sysctl.d/50-oracle.conf ...

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmax = 1986512896

kernel.shmall = 124156928

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

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 = 1048576

* Applying /usr/lib/sysctl.d/60-libvirtd.conf ...

fs.aio-max-nr = 1048576

* Applying /etc/sysctl.d/99-sysctl.conf ...

* Applying /etc/sysctl.conf ...

 

 

사용자 그룹 / 계정 생성

[root@oracleDB ~]# i=54321; for group in oinstall dba oper backupdba dgdba kmdba asmdba asmoper asmadmin racdba; do
groupadd -g $i $group; i=$(expr $i + 1)
done
  • oracle 서비스 관리 그룹 생성
  • 하이라이트 부분을 한번에 복사해서 붙여넣기

 

[root@oracleDB ~]# useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -d /usr/oracle oracle
  • oracle 서비스 관리 계정 생성

 

[root@oracleDB ~]# passwd oracle

Changing password for user oracle.

New password: 1234 (안보임)

BAD PASSWORD: The password is shorter than 8 characters

Retype new password: 1234 (안보임)

passwd: all authentication tokens updated successfully.

 

GUI 환경 활성화

  • GUI 환경을 기본값으로 설정
[root@oracleDB ~]# systemctl set-default graphical.target

Removed symlink /etc/systemd/system/default.target.

Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

 

 

[root@oracleDB ~]# reboot

 

 

환경 변수 설정

  • oracle 계정에 서비스에 필요한 환경변수를 설정한다.

 

[oracle@oracleDB ~]$ su root -l

Password: 1234 (root계정 패스워드)

Last login: Tue Nov 28 16:21:48 KST 2023 from 192.168.7.200 on pts/0

  • root 계정으로 전환

 

오라클 도구 설치 경로 생성 / 설정

[root@oracleDB ~]# mkdir -p /u01/app/oracle
  • 생성된 경로는 root가 생성했기 때문에 root계정의 소유이다
  • oracle 서비스 관리는 oracle 계정으로 해야하기 때문에 원활한 작업을 위해 oracle로 소유권을 바꿔준다

 

[root@oracleDB ~]# chown -R oracle:oinstall /u01/app
  • 설치 경로에 대한 권한을 설정

 

[root@oracleDB ~]# chmod -R 755 /u01

 

 

오라클 설치

 

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

 

Database Software Downloads | Oracle

Run the Oracle Database Enterprise Edition Container Image with Docker Contains Oracle Database Enterprise Edition 21c running on Oracle Linux 7. Ideal for macOS, Linux, and other platforms. Use the following pull command for the latest: docker pull contai

www.oracle.com

 

ZIP -> 수동 설치

RPM -> 자동이지만 커스텀 불가

 

커널 설정값 수정

  • 계정은 root로 로그인

login as: root

root@192.168.7.231's password: 1234

 

[root@oracleDB ~]# nano /etc/pam.d/login

 

  • 파일의 하단에서 아래값의 위치를 찾아 하이라이트 된 부분의 내용을 추가한다.

  GNU nano 2.3.1              File: /etc/pam.d/login                          Modified

 

session    required     pam_selinux.so open

session    required     pam_namespace.so

session    required     pam_limits.so

session    optional     pam_keyinit.so force revoke

session    include      system-auth

session    include      postlogin

-session   optional     pam_ck_connector.so





File Name to Write: /etc/pam.d/login

^G Get Help           M-D DOS Format        M-A Append            M-B Backup File

^C Cancel             M-M Mac Format        M-P Prepend

 

  • 컨트롤 + O(저장) → 엔터 → 컨트롤 + x(종료)

 

[root@oracleDB ~]# nano /etc/security/limits.d/50-oracle.conf
  • 아래 항목의 값들을 작성한다.
  • mobaxterm에서는 우클릭이 붙여넣기

 

oracle   soft   nofile   1024

oracle   hard   nofile   65536

oracle   soft   nproc    2047

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

 

  • 컨트롤 + O(저장) → 엔터 → 컨트롤 + x(종료)

 

Oracle(LINUX) 계정으로 전환

[root@oracleDB ~]# su oracle -l

Last login: Tue Nov 28 17:39:10 KST 2023 from 192.168.7.200 on pts/0

 

oracle 계정 환경 변수 등록

  • 리눅스 환경에서는 파일명 앞에 '.'이 있으면 숨김파일로 인식된다.
  • 홈디렉토리 아래의 .bash_profile은 계정의 환경변수를 저장하는 시스템 파일이다.
  • ORACLE_BASE 환경 변수는 오라클 데이터베이스 도구가 설치되는 경로
[oracle@oracleDB ~]$ nano ~/.bash_profile

 

  • 파일의 가장 아랫부분에 아래의 하이라이트의 내용을 추가한다.

# User specific environment and startup programs

 

PATH=$PATH:$HOME/.local/bin:$HOME/bin

 

export PATH

 

umask 022

export ORACLE_BASE=/u01/app/oracle

 

  • 컨트롤 + O(저장) → 엔터 → 컨트롤 + x(종료)
  • database 경로를 생성한다.
[oracle@oracleDB ~]$ mkdir database
  • mobaxterm에서는 sFTP를 지원한다.
  • scp 명령어와 동일한 방식이다.

 

 

[oracle@oracleDB ~]$ cd database/
[oracle@oracleDB database]$ ls

LINUX.X64_193000_db_home.zip

 

  • 설치 파일 압축 풀기
[oracle@oracleDB database]$ unzip LINUX.X64_193000_db_home.zip
  • 작업 완료 후 확인
[oracle@oracleDB database]$ ls

addnode      dmu            LINUX.X64_193000_db_home.zip  perl           sqldeveloper

apex         drdaas         md                            plsql          sqlj

assistants   dv             mgw                           precomp        sqlpatch

bin          env.ora        network                       QOpatch        sqlplus

clone        has            nls                           R              srvm

crs          hs             odbc                          racg           suptools

css          install        olap                          rdbms          ucp

ctx          instantclient  OPatch                        relnotes       usm

cv           inventory      opmn                          root.sh        utl

data         javavm         oracore                       root.sh.old    wwg

dbjava       jdbc           ord                           root.sh.old.1  xdk

dbs          jdk            ords                          runInstaller

deinstall    jlib           oss                           schagent.conf

demo         ldap           oui                           sdk

diagnostics  lib            owm                           slax

 

[oracle@oracleDB database]$ exit

logout

[root@oracleDB ~]# exit

logout

 

OUI(Oracle Universal Installer)

  • 데이터베이스 설치 도구
  • 기존 접속을 종료하고 oracle 계정으로 재접속한다.

login as: oracle

oracle@192.168.7.231's password: 1234

 

[oracle@oracleDB ~]$ cd database/
[oracle@oracleDB database]$ ./runInstaller

 

  • 데이터베이스 툴만 설치를 진행한다.
  • 데이터베이스 생성은 별도로 진행할 예정

  • 데이터베이스의 구성은 인스턴스와 데이터베이스가 1:1인 구성으로 진행한다.

 

 

 

  • summary로 넘어가기전 Prerequisite Checks 페이지가 나오는 경우 앞선 설정 과정에서 누락되거나 잘못된 설정이 들어가 있을 수 있다.
  • 항목에서 수정 가능한 경우 자동, 수동 방식으로 문제점을 fix할 수 있으나 fix가 불가능한 경우에는 운영체제부터 다시 시작해야 할 수 있다. (대부분 파티션 관련 문제가 많음.)
  • swap 파티션 관련 문제인 경우 ignore로 무시하고 진행해도 크게 문제는 없음.

 

 

  • root 자격증명을 사용하기 전 팝업. yes를 선택하고 이어 진행한다.

 

  • 오라클 관련 도구 설치 완료!

 

환경 변수 추가2

  • ORACLE_HOME 환경변수는 데이터베이스의 생성 경로를 가리킨다.
  • ORACLE_BASE 도구가 설치된 경로를 가리킨다.
[oracle@oracleDB ~]$ nano ~/.bash_profile

 

  • 파일의 가장 아랫부분에 다음의 하이라이트 부분의 내용을 추가해준다.

export PATH

 

umask 022

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/usr/oracle/database

export PATH=$PATH:$ORACLE_HOME/bin

 

  • 컨트롤 + O, 엔터, 컨트롤 + X
[oracle@oracleDB ~]$ source ~/.bash_profile
  • 터미널 설정값을 다시 읽어서 터미널에 적용하는 명령어.