[22.12.01] 29일차 [리눅스] ORACLE DB 설치

W·2022년 12월 1일
0

국비

목록 보기
40/119

ORACLE DB 설치하기 (리눅스)

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

LINUX.X64_193000_db_home.zip 다운받기

사전 설치 패키지

[root@serverA ~]# 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@serverA ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')

[root@serverA ~]# SHMMAX=$(expr $MEMTOTAL / 2)

[root@serverA ~]# SHMMNI=4096

[root@serverA ~]# PAGESIZE=$(getconf PAGE_SIZE)

아래의 설정값은 cat ~ EOF 까지 한번에 붙여 넣는다. 마지막에 EOF뒤에 공백들어가지 않도록 주의!

[root@serverA ~]# 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.
  • 커널 설정값 조회
[root@serverA ~]# 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 = 1986756608
kernel.shmall = 124172288
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 ...

Oracle 관리 계정/그룹 추가

[root@serverA ~]# 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@serverA ~]# useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -d /usr/oracle oracle

[root@serverA ~]# passwd oracle

Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

패스워드 안보임 : 'oracle'로 입력함

  • Oracle DB 설치 경로 생성
    [root@serverA ~]# mkdir -p /u01/app/oracle

  • 설치 경로의 소유권을 root → Oracle으로 이전
    [root@serverA ~]# chown -R oracle:oinstall /u01/app

  • 설치 경로의 실행 권한을 조정
    [root@serverA ~]# chmod -R 755 /u01

  • [root@serverA ~]# vi /etc/pam.d/login
    키보드 i 입력 후 아래의 위치를 찾아 하이라이트 부분을 추가해준다.

    pam_selinux.so open should only be followed by sessions to be executed in the user context
    session required pam_selinux.so open
    session required pam_namespace.so
    session required pam_limits.so
    session optional pam_keyinit.so force revoke

    - esc 입력 후 :wq 저장 후 종료

  • [root@serverA ~]# vi /etc/security/limits.d/50-oracle.conf
    키보드 i 입력 후 아래의 내용을 입력해준다.
    ...
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft stack 10240
    oracle hard stack 32768
    ...
    - esc 입력 후 :wq 저장 후 종료

Oracle 계정전환

[root@serverA ~]# su oracle -l

  • 계정 환경변수 설정
  • ~ : 계정의 홈디렉토리 경로
  • .bash_profile : 계정의 환경변수 정보 파일
    [oracle@serverA ~]$ vi ~/.bash_profile

키보드 i 입력 후 하이라이트 부분 추가

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

export PATH

umask 022
export ORACLE_BASE=/u01/app/oracle

esc 입력 후 :wq

  • 계정의 환경 변수 값 다시 읽어오기
    [oracle@serverA ~]$ source ~/.bash_profile
  • 데이터베이스 설치 파일이 위치할 경로 생성
    [oracle@serverA ~]$ mkdir database



  • ip 주소 확인하기

  • 윈도우 → 리눅스로 DB 설치 파일 전송
    원도우 환경에서 설치 파일 있는 경로에서 마우스 오른쪽 버튼 - 터미널 창 열기

scp : SSH 접속 프로토콜로 파일을 전송하는 명령어.
운영체제에 따라서 SSH 서버가 기본 설정되어 있는 경우 바로 사용할 수 있으나 SSH 서버가 없는 경우 서버를 설치 후 사용할 수 있다.

D:\Shared\리눅스>scp LINUX.X64_193000_db_home.zip oracle@192.168.1.167:/usr/oracle/database

The authenticity of host '192.168.1.167 (192.168.1.167)' can't be established.
ECDSA key fingerprint is SHA256:NsNVTwSP7O85wA5WKE5smdNoraM1P4U03zxl2Ws5khE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes (안보임)
Warning: Permanently added '192.168.1.167' (ECDSA) to the list of known hosts.
oracle@192.168.1.167's password: oracle (안보임)
  • 파일 정상 전송 여부 확인
    [oracle@serverA database]$ ls -al ~/database/
total 2987996
drwxr-xr-x. 2 oracle oinstall         42 Dec  1 15:30 .
drwx------. 6 oracle oinstall        174 Dec  1 15:18 ..
-rwx------. 1 oracle oinstall 3059705302 Dec  1 15:32 LINUX.X64_193000_db_home.zip
  • 설치파일 압축풀기
    [oracle@serverA database]$ unzip ~/database/LINUX.X64_193000_db_home.zip

OUI 도구 실행 데이터베이스 도구 설치 프로그램

[oracle@serverA ~]$ ./database/runInstaller

next

next - istall - close

  • 추가 환경 변수 등록
    [oracle@serverA ~]$ vi ~/.bash_profile
    키보드 i 입력 후 아래 하이라이트 부분 추가하기

    export PATH
    umask 022
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/usr/oracle/database
    export PATH=$PATH:$ORACLE_HOME/bin

  • 환경 변수 새로고침
    [oracle@serverA ~]$ source ~/.bash_profile

리스너 설정 (NETCA)

  • 리스너 : 오라클 DB 원격 접속 시 사용하는 접속 요청 프로그램

[oracle@serverA ~]$ netca

next
- 리스너 이름 지정 → 리스너가 하나인 경우 이름은 크게 중요하지 않음
- 리스너가 여럿인 경우 리스너 이름으로 리스너를 관리하므로 구분 할 수 있는 이름을 지정할 필요가 있음.
- 오라클 DB의 기본포트 : 1521(DB 접속 시 사용되는 포트 번호)

방화벽 설정

  • 운영체제에서 보안목적으로 주요 포트를 제외한 포트값들은 기본적으로 닫혀있다.
  • 필요한 서비스의 사용 포트를 방화벽에서 예외처리해야 외부와 통신을 할 수 있다.
  • 방화벽은 시스템 설정이므로 일반 사용자 계정으로 작업이 불가능함
  • 해당 작업은 관리자 계정인 root에서 진행
[oracle@serverA ~]$ su
Password: 1234 (안보임)
  • 오라클 DB 기본 접속 포트 예외처리하기

[root@serverA oracle]# firewall-cmd --add-port=1521/tcp --permanent
success
[root@serverA oracle]# firewall-cmd --reload
success

  • [oracle@serverA ~]$ dbca

0개의 댓글