삶 가운데 남긴 기록 AACII.TISTORY.COM
CentOS 7 oracle 19c 설치 본문
오라클 데이터베이스 19c 다운로드
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
파일: Linux x86-64
종류: zip
자신의 운영체제에 맞는 zip 파일을 다운로드합니다.
호스트 네임 등록
root 권한을 획득합니다.
su -
호스트 네임을 등록합니다.
vi /etc/hosts
리눅스 서버의 ip 주소(192.168.1.6)에 호스트 네임을 정해줍니다.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.6 ora01
만약 자신의 리눅스 ip주소를 알고 싶으면 아래 명령어로 확인하시기 바랍니다.
ifconfig -a
혹시 selinux를 사용하고 있다면 permissive로 설정을 변경해주셔야 합니다.
vi /etc/selinux/config
SELINUX=permissive
설치 환경
oracle 설치 시 GUI환경이 필요하기 때문에 centos 7을 설치시 GUI 환경으로 설치해야 합니다.
예전에는 일일이 수동으로 세팅해주었으나 오라클에서 자동으로 OS 설치 환경을 세팅해주는 RPM을 제공하고 있습니다.
아래 명령어로 설치하면 필수 패키지 설치 및 OS 커널 파라미터와 자원 제한 설정을 자동으로 실행해 줍니다.
yum install https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
yes/no를 물어보면 y를 입력해 설치하면 환경설정이 자동으로 이루어집니다.
커널 파리 미터 확인이 정상적으로 설정되었는지 확인
cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
# oracle-database-preinstall-19c setting for fs.file-max is 6815744
fs.file-max = 6815744
# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128
# oracle-database-preinstall-19c setting for kernel.shmmni is 4096
kernel.shmmni = 4096
# oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824
# oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104
# oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1
# oracle-database-preinstall-19c setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144
# oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304
# oracle-database-preinstall-19c setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144
# oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576
# oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2
# oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2
# oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576
# oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500
항목들을 확인합니다. 표시되는 숫자는 각자 다를 수 있습니다.
자동으로 설정되어 있기 때문에 수정할 필요는 없습니다.
자원 제한 관련 설정 확인
역시 자동으로 설정되었기 때문에 잘 설정되어있나 확인만 하면 됩니다.
cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
# oracle-database-preinstall-19c setting for nofile soft limit is 1024
oracle soft nofile 1024
# oracle-database-preinstall-19c setting for nofile hard limit is 65536
oracle hard nofile 65536
# oracle-database-preinstall-19c setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle soft nproc 16384
# oracle-database-preinstall-19c setting for nproc hard limit is 16384
oracle hard nproc 16384
# oracle-database-preinstall-19c setting for stack soft limit is 10240KB
oracle soft stack 10240
# oracle-database-preinstall-19c setting for stack hard limit is 32768KB
oracle hard stack 32768
# oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle hard memlock 134217728
# oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle soft memlock 134217728
oracle 그룹 및 oracle 계정 생성 확인
root 계정으로 작업합니다.
su -
위의 환경 설정을 자동으로 하면 oracle 그룹과 oracle 계정이 생성되었을 것입니다.
oracle 그룹이 생성되어 있는지 확인
cat /etc/group
oinstall:x:54321:oracle
dba:x:54322:oracle
oper:x:54323:oracle
backupdba:x:54324:oracle
dgdba:x:54325:oracle
kmdba:x:54326:oracle
racdba:x:54330:oracle
수동 그룹 추가
asmdba 그룹을 수동으로 추가합니다.
groupadd asmdba
oracle 계정 패스워드 설정
passwd oracle
oracle 계정 설정을 변경해줍니다.
usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle
수동 패키지 설치
자동으로 패키지가 설치되지만 데이터베이스 생성 시 에러가 난다면 아래 패키지를 수동으로 설치하십시오.
root 권한으로 작업합니다.
su -
yum install gcc-c++
설치 시 질문이 나오면 y를 입력하십시오.
방화벽 설정
root 계정으로 실행합니다.
su -
방화벽을 설정합니다.
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
oracle 설치 경로 생성 및 권한 설정
root 권한으로 작업합니다.
su -
설치 경로 생성, 경로에 소유권 권한 설정
mkdir -p /app/oracle/product/19.0.0/dbhome_1
chown -R oracle:oinstall /app
chmod -R 775 /app
oracle 계정 환경 설정
oracle 계정으로 접속합니다.
su - oracle
환경 설정 파일을 편집합니다.
vi ~/.bash_profile
아래 설정 값을 추가합니다.
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOMENAME=ora01
export ORACLE_UNQNAME=oracle19
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/app/oraInventory
export ORACLE_SID=ORCL
export DATA_DIR=/app/oradata
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACL_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=KOREAN_KOREA.AL32UTF8
추가한 설정을 적용합니다.
source ~/.bash_profile
oracle 설치 파일 복사
oracle 계정으로 작업합니다.
su oracle
다운로드 한 오라클 설치 파일(zip)을 (/app/oracle/product/19.0.0/dbhome_1)로 옮깁니다.
mv linux.x64_193000_database.zip /app/oracle/product/19.0.0/dbhome_1
그런 다음 해당 경로에 이동하여 압축을 해제합니다.
cd /app/oracle/product/19.0.0/dbhome_1
unzip linux.x64_193000_database.zip
oracle 설치
기존 로그인 계정을 로그아웃 하고 반드시 GUI 환경으로 위에서 생성한 oracle 계정으로 접속합니다.
터미널을 열고 압축을 풀었던 경로(/app/oracle/product/19.0.0/dbhome_1) 에서 ./runInstaller 를 실행합니다.
GUI환경 oracle 계정으로 로그인 하지 않으면 인스톨러 실행시 오류가 발생합니다.
설치
리스너 설정
마찬가지로 oracle 계정으로 작업합니다.
압축을 풀었던 경로 /app/oracle/product/19.0.0/db_home_1/bin/netca 를 실행해서 리스너를 설정합니다.
./netca
종료할 때 터미널 콘솔창에 종료 코드가 0인지 확인합니다.
데이터베이스 설정
oracle 계정으로 작업합니다.
/app/oracle/product/19.0.0/dbhome_1/bin 경로에서 작업한다고 가정합니다.
./dbca
아래 과정을 따라 진행하면서 자신의 환경에 맞도록 설정해야 합니다.
오라클 네트워크 설정
root 계정으로 작업합니다.
su -
설치 경로에서 네트워크 관리자 경로로 이동
cd /app/oracle/product/19.0.0/dbhome_1/network/admin
vim 에디터로 listener.ora 편집
vi listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /app/oracle/product/19.0.0/dbhome_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.6)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
여기서 HOST IP 주소는 오라클이 설치된 IP주소를 입력하시면 됩니다.
SID_NAME과 ORACLE_HOME 경로도 확인해주시고 PORT번호도 편집하거나 확인해줍니다.
vim 에디터로 tnsnames.ora 편집
vi tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.6)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
(SID = ORCL)
)
)
여기서도 HOST의 IP주소와 포트번호를 확인해주시고 SERVICE_NAME과 SID 도 편집하거나 확인해줍니다.
vim 에디터로 sqlnet.ora 편집
vi sqlnet.ora
# sqlnet.ora Network Configuration File: /app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
#ADR_BASE=/app/oracle
scott 계정 생성 및 접속 테스트
oracle 계정으로 작업합니다.
su - oracle
sqlplus
계정은 sys as sysdba 으로 접속합니다. (그냥 sys로 접속 시도하면 안되고 as sysdba를 붙여야 됩니다.)
패스워드는 설치 할 때 설정했던 관리계정 SYS, SYSTEM 계정 패스워드입니다.
create user scott identified by tiger;
grant connect, resource, dba to scott;
exit
이제 sqlplus로 계정 scott 비밀번호 tiger 으로 로그인 해봅니다.
sqlplus scott/tiger@ORCL
리눅스 재부팅 후 수동으로 오라클 구동 테스트
oracle 유저로 작업합니다.
su - oracle
sqlplus / as sysdba
오라클 데이터베이스 구동
startup
sqlplus 종료
exit
리스너 시작
lsnrctl start
이후 DB tool로 SYSTEM 혹은 SYS AS SYSDBA 계정으로 로그인 되는지 확인해봅시다.
오라클 sqlplus startup 오류 시
sqlplus / as sysdba
ORA-01078, LRM-00109 가 나오면서 startup이 안되는 경우
$ORACLE_BASE/admin/ORCL/pfile/
경로에서 init.ora.xxxxxxxx 파일을 initORCL.ora 으로 변경해서 $ORACLE_HOME/dbs 경로로 복사합니다.
그후 다시 sqlplus / as sysdba로 접속하여 startup 합니다.
부팅 시 자동 실행 등록
재부팅하고 수동으로 오라클과 리스너를 구동하는데 성공했다면 재부팅시 오라클과 리스너를 자동 실행하는 서비스를 등록해보도록 합시다.
root 계정으로 실행합니다.
su -
oratab 수정
vi /etc/oratab
아래 내용을
ORCL:/app/oracle/product/19.0.0/dbhome_1:N
아래처럼 수정합니다.
ORCL:/app/oracle/product/19.0.0/dbhome_1:Y
여기서 ORCL은 ORACLE_SID 로 설정했던 값입니다.
설치 경로를 변경했다면 바뀐 경로대로 수정해야 합니다.
파일 생성
아래 파일을 추가해서 설치 시 설정한 SID를 반영해야 합니다.
vi /etc/sysconfig/ORCL.oracledb
아래 내용을 추가합니다.
ORACLE_BASE=/app/oracle
ORACLE_HOME=/app/oracle/product/19.0.0/dbhome_1
ORACLE_SID=ORCL
아래 파일을 또 추가합니다.
vi /usr/lib/systemd/system/ORCL@lsnrctl.service
아래 내용을 추가합니다.
[Unit]
Description=Oracle Net Listener
After=network.target
[Service]
Type=forking
User=oracle
Group=dba
EnvironmentFile=/etc/sysconfig/ORCL.oracledb
ExecStart=/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start
ExecStop=/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop
[Install]
WantedBy=multi-user.target
아래 파일을 또 추가합니다.
vi /usr/lib/systemd/system/ORCL@oracledb.service
아래 내용을 추가합니다.
[Unit]
Description=Oracle Database service
After=network.target lsnrctl.service
[Service]
Type=forking
User=oracle
Group=dba
EnvironmentFile=/etc/sysconfig/ORCL.oracledb
ExecStart=/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/app/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
[Install]
WantedBy=multi-user.target
자동 실행 등록
systemctl daemon-reload
systemctl enable ORCL@lsnrctl
systemctl enable ORCL@oracledb
재부팅 후 접속이 되는지 확인합니다.
systemctl status ORCL@lsnrctl
systemctl status ORCL@oracledb
'DEV&OPS > Linux & Cloud' 카테고리의 다른 글
CentOS7 GitLab ce 설치 (0) | 2022.10.07 |
---|---|
CentOS 7 일반 계정에 sudo 권한 부여 (0) | 2022.10.07 |
RSA 공개키/개인키로 PuTTY SSH 접속 (0) | 2022.07.06 |
CentOS 7 SSH, SFTP 설치 및 포트 변경 (0) | 2022.07.05 |
CentOS 7 firewall 와 SELinux 기본 사용법 (0) | 2022.07.04 |