1. CentOS7
[ ORACLE 19c 서버 ]
※ 서버의 메모리를 4GB 이상으로 설정하지 않을 경우 설치 되지 않음
ORACLE_SERVER_IP=$(ifconfig | grep -A 2 ens | grep "inet " | awk '{ print $2 }')
# 오라클 설치 폴더 생성
mkdir -p /app/dbms/oracle/product/19.0.0/dbhome_1
# 다운로드 받은 LINUX.X64_193000_db_home.zip 파일을 이동
mv LINUX.X64_193000_db_home.zip /app/dbms/oracle/product/19.0.0/dbhome_1
# 오라클은 툴 내부에서 호스트 이름을 통해 IP를 조회하기 때문에
# 호스트 이름과 서버의 아이피를 매핑시켜주어야 함
cat <<HOST_SETTING > /etc/hosts
${ORACLE_SERVER_IP} ora01
HOST_SETTING
yum -y install bc binutils compat-libcap1 compat-libstdc++ elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio
yum -y install libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make net-tools nfs-utils
yum -y install gcc-c++ python python-configshell python-rtslib python-six targetcli smartmontools sysstat
# oracle dba 그룹 생성
groupadd -g 1100 oradba
# oracle install 그룹 생성
groupadd -g 1101 oinstall
# oracle 유저 생성 기본 그룹은 dba 그룹이고 oinstall 그룹에도 속하도록 설정
useradd -g oradba -G oinstall oracle
cat <<ORACLE_SETTING > /etc/sysctl.conf
# 오라클을 사용하기 위해서는 시스템 전체에서 열 수 있는 파일 갯수가 6815744 개 이상이어야 한다.
fs.file-max = 6815744
# 순서대로 SEMMSL, SEMMNS, SEMOPM, SEMMNI(배열당 최대 세마포어 수, 시스템 전체 최대 세마포어 수, 최대 배열 수)
# 세마포어 : 공유 메모리와 같은 공유 리소스 사용과정에서 프로세스 동기화를 위해 사용되는 카운터
# 오라클 권고 사항에 맞게 설정
# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128
# 공유 메모리 세그먼트 수 설정
kernel.shmmni = 4096
# 시스템에서 사용할 수 있는 총 공유 메모리 양 설정(byte단위)
kernel.shmall = 1073741824
# 공유 메모리 세그먼트의 최대 크기 정의
# 현재 4GB 로 설정되어 있기 때문에 시스템 메모리가 최소 4GB 이상이 아닐경우 에러가 발생
kernel.shmmax = 4398046511104(byte단위)
# 커널 패닉시 리부팅 설정
kernel.panic_on_oops = 1
# tcp 수신 버퍼 기본값 설정
net.core.rmem_default = 262144
# tcp 수신 버퍼 최대값 설정
net.core.rmem_max = 4194304
# tcp 전송 버퍼 기본값 설정
net.core.wmem_default = 262144
# tcp 전송 버퍼 최대값 설정
net.core.wmem_max = 1048576
# 모든 인터페이스에서 들어오는 패킷에 대해 reply를 하여 들어오는 인터페이스로 나가지 못하는 패킷을 거부
net.ipv4.conf.all.rp_filter = 2
# 디폴트 reply를 하여 들어오는 인터페이스로 나가지 못하는 패킷을 거부
net.ipv4.conf.default.rp_filter = 2
# 허용가능한 동시발생 트랜잭션의 최대 값을 설정
fs.aio-max-nr = 1048576
# 새로운 접속에서 사용할 수 있는 포트의 사용가능 범위
net.ipv4.ip_local_port_range = 9000 65500
ORACLE_SETTING
mkdir -p /etc/security/limit.d/
cat <<ORACLE_SETTING > /etc/security/limit.d/oracle-database-preinstall-19c.conf
# oracle 사용자에 대한 셸 제한 설정
# nproc : User당 사용할 수 있는 프로세스 최대 개수
# nofile : User당 오픈할 수 있는 파일 개수
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
# oracle stack 사이즈 설정
oracle soft stack 10240
oracle hard stack 32768
# oracle memory lock 사이즈 설정
oracle hard memlock 134217728
oracle soft memlock 134217728
# oracle 데이터 제한 무제한으로 설정
oracle soft data unlimited
oracle hard data unlimited
ORACLE_SETTING
# 방화벽 포트 허용
firewall-cmd --zone=public --add-port=1521/tcp --add-port=5500/tcp --add-port=5520/tcp --add-port=3938/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
chown -R oracle:oinstall /app/dbms/oracle
su - oracle
sed -i "s/export TMP.*//g" /home/oracle/.bash_profile
sed -i "s/export ORA.*//g" /home/oracle/.bash_profile
sed -i "s/export DATA_DIR=.*//g" /home/oracle/.bash_profile
sed -i "s/export PATH=$ORACLE_HOME.*//g" /home/oracle/.bash_profile
sed -i "s/export LD_LIBRARY_PATH=.*//g" /home/oracle/.bash_profile
sed -i "s/export CLASSPATH=.*//g" /home/oracle/.bash_profile
sed -i "s/export NLS_LANG=.*//g" /home/oracle/.bash_profile
sed -i "/^$/d" /home/oracle/.bash_profile
cat <<ORACLE_SETTING >> /home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=ora01
export ORACLE_UNQNAME=oracle19
export ORACLE_BASE=/app/dbms/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/app/dbms/oracle/oraInventory
export ORACLE_SID=ORCL
export DATA_DIR=/app/dbms/oracle/oradata
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=KOREAN_KOREA.AL32UTF8
ORACLE_SETTING
source /home/oracle/.bash_profile
unzip /app/dbms/oracle/product/19.0.0/dbhome_1/LINUX.X64_193000_db_home.zip -d /app/dbms/oracle/product/19.0.0/dbhome_1/
rm -rf /app/dbms/oracle/product/19.0.0/dbhome_1/LINUX.X64_193000_db_home.zip
sed -i "s/oracle.install.option=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/UNIX_GROUP_NAME=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/INVENTORY_LOCATION=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/ORACLE_HOME=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/ORACLE_BASE=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.InstallEdition=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.OSDBA_GROUP=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.OSBACKUPDBA_GROUP=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.OSDGDBA_GROUP=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.OSKMDBA_GROUP=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.OSRACDBA_GROUP=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.rootconfig.executeRootScript=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/oracle.install.db.rootconfig.configMethod=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
# 오라클 소프트웨어 설치 파일 공백 줄 삭제
sed -i "/^$/d" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
cat <<ORACLE_INSTALL_SETTING >> /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/app/dbms/oracle/oraInventory
ORACLE_HOME=/app/dbms/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/app/dbms/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=oradba
oracle.install.db.OSBACKUPDBA_GROUP=oradba
oracle.install.db.OSDGDBA_GROUP=oradba
oracle.install.db.OSKMDBA_GROUP=oradba
oracle.install.db.OSRACDBA_GROUP=oradba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT
ORACLE_INSTALL_SETTING
# 오라클 소프트웨어 설치
echo -e "P@ssw0rd"'!'"\n" | /app/dbms/oracle/product/19.0.0/dbhome_1/runInstaller -silent -responseFile /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
# 오라클 리스너 설치
/app/dbms/oracle/product/19.0.0/dbhome_1/bin/netca -silent -responseFile /app/dbms/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp
# 오라클 리스너 시작
/app/dbms/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start;
/app/dbms/oracle/product/19.0.0/dbhome_1/bin/lsnrctl status;
sed -i "s/gdbName=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/sid=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/createAsContainerDatabase=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/numberOfPDBs=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/pdbName=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/useLocalUndoForPDBs=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/pdbAdminPassword=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/templateName=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/sysPassword=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/systemPassword=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/datafileDestination=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/storageType=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/characterSet=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/nationalCharacterSet=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/listeners=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/databaseType=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/sampleSchema=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
sed -i "s/totalMemory=.*//g" /app/dbms/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
# 오라클 데이터배이스 기본 구조 설치파일 설정
cat <<ORACLE_INSTALL_SETTING >> /app/dbms/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
gdbName=ORCL.GLOBAL.COM
sid=ORCL
createAsContainerDatabase=false
# numberOfPDBs=1
# pdbName=ORCLPDB
# useLocalUndoForPDBs=TRUE
# pdbAdminPassword=******
templateName=General_Purpose.dbc
sysPassword=P@ssw0rd!
systemPassword=P@ssw0rd!
datafileDestination=/app/dbms/oracle/oradata
storageType=FS
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
listeners=LISTENER
databaseType=MULTIPURPOSE
sampleSchema=TRUE
totalMemory=4096
ORACLE_INSTALL_SETTING
# 오라클 데이터배이스 기본 구조 설치
/app/dbms/oracle/product/19.0.0/dbhome_1/bin/dbca -silent -createDatabase -responsefile /app/dbms/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
[ 윈도우 클라이언트 ]
※ DBeaver 설치는 DBeaver 설치 링크 참조
'Operating Systems > Linux' 카테고리의 다른 글
[ Linux ] Quota 활용 (0) | 2021.10.02 |
---|---|
[ Linux ] LVM 활용 (0) | 2021.10.01 |
[ Linux ] GIT 서버 설치 (0) | 2021.09.26 |
[ Linux ] NFS 서버 설치 (0) | 2021.09.25 |
[ Linux ] VNC 서버 설치 (0) | 2021.09.23 |