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 ...
[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
[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 저장 후 종료
[root@serverA ~]# su oracle -l
[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
[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
[oracle@serverA ~]$ netca
next
- 리스너 이름 지정 → 리스너가 하나인 경우 이름은 크게 중요하지 않음
- 리스너가 여럿인 경우 리스너 이름으로 리스너를 관리하므로 구분 할 수 있는 이름을 지정할 필요가 있음.
- 오라클 DB의 기본포트 : 1521(DB 접속 시 사용되는 포트 번호)
[oracle@serverA ~]$ su
Password: 1234 (안보임)
[root@serverA oracle]# firewall-cmd --add-port=1521/tcp --permanent
success
[root@serverA oracle]# firewall-cmd --reload
success
[oracle@serverA ~]$ dbca