상황
oracle database 19c 를 centos 7에 설치 후
- @설치 참고: https://oracle-base.com/articles/19c/oracle-db-19c-installation-on-oracle-linux-7
잘 사용하다가 docker 를 설치하기 위해 시스템을 재부팅했더니 oracle 이 꺼져있었다.
따라서 위 설치 참고 링크에서
installation 이 완료 된 후 database 및 listener 를 실행하기 위한 start_all.sh 를 만들어서 실행 시켰다.
방법
모든 작업은 oracle 을 설치할때 생성한 oracle 계정으로 실행되었다.
1. /home/oracle/scripts 에
설치했을 때의 ~/.bash_profile 을 참고하여 setEnv.sh 파일을 생성하고,
- setEnv.sh
cat > /home/oracle/scripts/setEnv.sh
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=ol7-19.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=cdb1
export PDB_NAME=pdb1
export DATA_DIR=/u02/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
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
2. start_all.sh, stop_all.sh 파일을 생성 한 후 실행권한을 주었다.
- start_all.sh
cat > /home/oracle/scripts/start_all.sh
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart $ORACLE_HOME
- stop_all.sh
cat > /home/oracle/scripts/stop_all.sh
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut $ORACLE_HOME
- 실행 권한 주기
chown -R oracle:oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh
3. ORACLE_HOME 이 잘 세팅되어있는지 확인해보고, 값이 없으면 bash_profile을 다시 적용해주었다.
> echo $ORACLE_HOME
설정해 두었던 /u01/app/oracle/product/19.0.0/dbhome_1 이 나오지 않는 경우
> source ~/.bash_profile
4. /etc/oratab 파일을 listener 와 database 를 실행하도록 확인 후 수정해주었다.
SOLARIS 제외한 UNIX platform 에선 ORATAB=/etc/oratab 이며,
$ORACLE_SID:$ORACLE_HOME:<N|Y|W>
example> main:/usr/lib/oracle/emagent_10g:Y
W 는 dbstart 가 ASM 인스턴스가 돌아간 후에 database 가 자동 시작되게 하는 거라고 한다.
5. 확인작업으로
ps -ef | grep pmon 을 통해 oracle database 가 돌 때 같이 도는 oracle process monitor 가 작동중인지 확인했으며,
lsntctl status 를 통해 리스터의 현 상태를 확인해 볼 수 있다.
sqlplus / as sysdba 로 접속해볼 수도 있다.
상황
oracle 은 동작하는데 DBeaver client 에서 접속이 안될때,
- @oracle 접속 안되는 이유: https://jhnyang.tistory.com/entry/DB-Sql-developer-%EC%97%90%EB%9F%AC-The-Network-Adapter-could-not-establish-the-connection-%EC%9B%90%EC%9D%B8%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%EB%B2%95
SID, Service Name 설정 및 방화벽 설정을 차례로 체크해보다가 방화벽에 의한 것임을 알고
방화벽에 1521 포트를 열어주었다.
> systemctl status firewalld
> firewall-cmd --permanent --zone=public --add-port=1521/tcp
> firewall-cmd --reload
> firewall-cmd --permanent --zone=public --list-ports
1521/tcp
'DB' 카테고리의 다른 글
[Hibernate, Spring Framework] hibernate.hbm2ddl.auto 설정이 동작하는 시점 (0) | 2023.11.21 |
---|---|
트랜잭션 격리 수준 (0) | 2023.08.24 |
[HikariCP] Configuration (0) | 2022.03.25 |