CentOS 7 설치 및 설정

2020. 1. 27. 23:01CentOS Linux

반응형

OpenJDK 1.8, Oracle 11g 대용량 데이터베이스를

단말서버(CPU 저성능, 메모리 4G 급 기준) 에 설치를 기준으로 한다.


CentOS 7 리눅스 설치 및 설정

언어 : 한국어 선택
소프트웨어 : 그놈 응용 프로그램, 호환성 라이브러리 선택
K덤프 비활성화
보안 정책 비활성화

설치대상 : 하드디스크 클릭 - 파티션 설정(수동) - 완료
왼쪽 하단에 존재하는  파티션들이 있으면 버튼(-)으로 모조리 제거 후 아래의 내용대로 설정

/ : 7000  
     root 로 시스템의 중요한 파일들이 설치되는 공간입니다.  

/boot : 500  
      boot 관련된 중요한 파일들이 설치되는 공간입니다. 

/var : 1000  
      주요 시스템 로그나 메시지 등이 생성되는 공간입니다. 

swap : 8000 
      메모리가 부족할 경우 가상메모리로 사용되며 주로 RAM 의 1.5 배  
      에서 2배 정도 설정합니다. 

/home : 10000 
      일반 사용자의 홈 디렉터리로 각 사용자의 자료가 생성됩니다.  

/app : 나머지  
      이 디렉터리에 오라클이 설치될 예정. 남은 용량 다 이 곳에 몰빵한다. 

 


 기존 설치된 JAVA 삭제  

 

설치된 자바(JAVA) 버전 확인

su root 

rpm -qa | grep java 


설치된 자바(JAVA) 삭제 하기 (*) 위에 나온 목록에 해당하는 자바를 삭제하면 된다

yum remove java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 

yum remove java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64 

JDK 설치 

현재 설치가능한 JDK 버젼 확인 

yum list java*jdk-devel 


JDK 설치 : 위에서 조회된 목록중에서 설치

yum install java-1.8.0-openjdk-devel.x86_64 


JDK 설치 확인

java -version 

javac -version 

 



JDK 환경변수 설정 

JAVAC 명령어 위치 확인 : (심볼릭 링크 위치)

which javac 


JAVAC 원본파일 위치 확인 : 위의 심볼릭 링크의 위치를 지정해서 원본 파일을 추출하는 명령어로 reallink를 사용한다.

readlink -f /usr/bin/javac 

(*) 추출된 원본 파일 위치가 JAVA_HOME 이 될 경로가 된다.

JAVA_HOME 설정 (맨 마지막 줄에 삽입) : bin/ 디렉토리의 앞까지

vi /etc/profile 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64 


수정한 파일 적용

source /etc/profile 



설정된 환경변수 확인 

echo $JAVA_HOME 

$JAVA_HOME/bin/javac -version 

오라클 설치 준비

GUI 모드 설치

sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target


필요 패키지 설치

sudo yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 ksh elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 make sysstat unixODBC unixODBC-devel xclock xterm glibc-static.x86_64 glibc-static.i686 


Kernel parameter 수정 : Comment 처리

sudo vi /usr/lib/sysctl.d/00-system.conf  

 

# Disable netfilter on bridges. 
# net.bridge.bridge-nf-call-ip6tables = 0 
# net.bridge.bridge-nf-call-iptables = 0 
# net.bridge.bridge-nf-call-arptables = 0 


커널 파라미터 설정

sudo vi /etc/sysctl.conf 
net.ipv4.ip_local_port_range = 9000 65500 
fs.file-max = 6815744 
kernel.shmall = 10523004 
kernel.shmmax = 6465333657 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
fs.aio-max-nr = 1048576 



설치계정 및 그룹 생성 : oracle

sudo groupadd -g 200 oinstall 
sudo groupadd -g 201 dba 
sudo useradd -u 440 -g oinstall -G dba -d /home/oracle oracle 
sudo passwd oracle 



Login 수정 : 하단의 # add line start 부분에서 # add line end 까지만 복사해서 해당하는 위치에 복사 

sudo vi /etc/pam.d/login
# 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 
# add line start 
session    required     pam_limits.so 
# add line end 
session    optional     pam_keyinit.so force revoke 
session    include      system-auth 
-session   optional     pam_ck_connector.so 


보안 관련 limit.conf 파일 수정

sudo vi /etc/security/limits.conf 
oracle   soft   nproc    2047 
oracle   hard   nproc    16384 
oracle   soft   nofile   1024 
oracle   hard   nofile   65536



프로파일 수정 : /etc/profile

sudo vi /etc/profile
if [ $USER = "oracle" ]; then 
      if [ $SHELL = "/bin/ksh" ]; then 
           ulimit -p 16384 
           ulimit -n 65536 
      else 
           ulimit -u 16384 -n 65536 
      fi 
fi 


selinux 환경설정 파일 수정

vi /etc/selinux/config
#SELINUX=enforcing 
SELINUX=disabled 


Oracle 환경 설정 폴더 권한 변경 및 유저 추가

sudo mkdir -p /app/oracle 
sudo mkdir /app/oracle/oradata 
sudo chmod -R 755 /app/oracle 
sudo chown -R oracle:oinstall /app/oracle 
chown -R oracle.dba /home/oracle 
chown -R oracle.dba /app 


오라클 유저 프로파일 수정

sudo vi /home/oracle/.bash_profile 

 

umask 022 

export ORACLE_BASE=/app/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/11g 

 오라클 설치 : Oracle 계정으로 로그인 후 작업 실시

Oracle DBMS 압축 해제

unzip ./linux.x64_11gR2_database_1of2.zip 
unzip ./linux.x64_11gR2_database_2of2.zip 


설치

runInstaller -jreLoc /usr/lib/jvm/jre

 


오라클 설치 : DBMS GUI 설치 화면

#전자메일 스킵
#데이터베이스 소프트웨어만 설치(Install database software only)
#단일 인스턴스 데이터베이스 설치
#언어 : 영어, 한국어
#엔터프라이즈 에디션
- 옵션 : Oracle Partitioning만 선택
#설치 위치
- Oracle Base : /app/oracle
- 소프트웨어 위치 : /app/oracle/product/11g
#인벤토리 생성
- /app/oraInventory
- oinstall

#semmni 조건검사 무시하고 진행

에러 대책 : ins_ctx.mk

sudo yum install glibc-static.x86_64 glibc-static.i686 

cd /app/oracle/product/11g/ctx/lib/ 

 

ins_ctx.mk 수정

vi ins_ctx.mk 


[수정 전]

ctxhx: $(CTXHXOBJ) 

    $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 


[수정 후]

ctxhx: $(CTXHXOBJ) 

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

 

ins_emagent.mk 수정

vi $ORACLE_HOME/sysman/lib/ins_emagent.mk 

 

[수정 전]

$(MK_EMAGENT_NMECTL) 


[수정 후]

$(MK_EMAGENT_NMECTL) -lnnz11 


재시도를 선택합니다.


구성 스크립트 실행

터미널에서 Root 권한으로 실행

/app/oraInventory/orainstRoot.sh 

/app/oracle/product/11g/root.sh  



오라클 DBMS 환경설정

vi ~/.bash_profile 

 

export PATH=$PATH:$ORACLE_HOME/bin 

source ~/.bash_profile 

오라클 리스너 설정

LANG=C 
netca 


#Lisener configuration
#Add
#LISTENER
#TCPS/IPC          TCP
#Use the standard port number of 1521
#No
#finish


오라클 데이터베이스 설정

dbca

 
#Create a Database
#General Purpose or Transaction Processing
#Domain
  - Global Database Name : minodb
  - SID : minodb
#Configure Enterprise Manager 체크 해제
#Use the Same Administrative Password for All Accounts 패스워드 설정

#File System : Use Database File Locations from Template
- File Location Variables : 자세한 정보 확인

#Specify Flash Recovery Area : 기본값

#Sample Schemas 체크!

#Memory 탭 - Typical : 기본값
#Character Sets 탭
- Choose from the list of character sets : KO16MSWIN949

#Database Storage : Controlfile, Datafiles, Redo Log Groups 확인

#Create Database

(*) 다이얼로그 창이 | 이렇게 나올 경우가 있는데 상하좌우로 확대시켜서 확인할 것

vi .bash_profile  
export ORACLE_SID=minodb 
source .bash_profile 

(*) bash_profile은 부팅 시에 날라가는 정보이므로, 부팅시에도 항상 적용되게 하려면, /etc/profile에 기재를 해놔야한다

재부팅


오라클 설치 및 설정 확인

오라클 계정에서

 sqlplus / as sysdba 


DB상태 OPEN상태(DB UP 상태)인지 확인

select status from v$instance; 


안되어있으면, 

startup 

 샘플 스키마 LOCK 해제

sqlplus / as sysdba 

alter user scott identified by tiger account unlock; 

conn scott/tiger 

부팅시 오라클 자동 기동 설정

su root 
  
vi /etc/rc.d/rc.local 
su - oracle -c /app/oracle/product/11g/bin/"dbstart" 
su - oracle -c /app/oracle/product/11g/bin/"lsnrctl start" 
chmod 775 /etc/rc.d/rc.local 
vi /etc/oratab 


내용 밑의 파일의 하단 끝 부분에 :N 을 :Y로 바꾸고 재부팅


리눅스 방화벽 해제

방화벽 해제

systemctl stop firewalld 


영구 방화벽 해제

systemctl disable firewalld 


 FTP 서비스 구축

FTP 서비스 구축 여부 확인

ps -ax | grep vsftpd 

yum list installed | grep vsftpd 
su root 
yum -y install vsftpd 

 오라클 설정 오류 해결

SQL Plus

sqlplus / as sysdba 


DB상태 OPEN상태인지 확인

select status from v$instance; 


안되어있으면, 

startup

 


SID의 값
echo $ORACLE_SID 의 값과 일치해야 하며, 보통 소문자로 이루어져 있다.

/app/oracle/product/(SID) 


DB명
DB명은 sid보단 더 큰 개념이며, 보통 대문자로 이루어져 있다.

/app/oracle/oradata/(DB명) 



리스너 컨트롤 리로드 : 리스너 / TNSNAME 적용

lsnrctl reload  

 


유선 네트워크 부팅 시 자동 실행 : /etc/sysconfig/network-scripts

cd /etc/sysconfig/network-scripts

 

vi ifcfg-enp3s0f2

(*) 각 컴퓨터의 유선 네트워크 드라이버 명칭이 다를 수도 있음.

제일 밑 부분의 ONBOOT=no 부분을 ONBOOT=yes 로 수정할 것


리눅스 유저 생성

1) 루트 유저로 접속

su root 



2) 유저 / 유저 홈 디렉토리 생성

useradd -m 사용자명


3) 비밀번호 설정

passwd 사용자명


4) 사용자 정보 확인

cat /etc/passwd 


5) 그룹 정보 확인

cat /etc/group

 
6) 사용자 디렉토리 생성 확인

ls /home/ 











반응형