반응형
/********************************************************************************************
-- Title : [ORA10g] 오라클 데이터베이스 삭제 - ver.dBRang
-- Reference : cafe.naver.com/foryouweb
-- Key word : db삭제 db 삭제 데이터베이스 삭제 디비삭제 오라클 제거 오라클 삭제
********************************************************************************************/


--▶ DROP DATABASE문을 사용하기 위한 RESTRICT모드 + 배타모드로 MOUNT.
SQL> STARTUP RESTRICT MOUNT;

--▶ 데이터베이스 파일 삭제 쿼리
SELECT 'rm -f ' || a.filename AS filename
FROM (SELECT name AS filename FROM v$datafile UNION ALL
      SELECT name AS filename FROM v$tempfile UNION ALL
      SELECT member AS filename FROM v$logfile UNION ALL
      SELECT name AS filename FROM v$controlfile) a;
     
--▶ 아카이브 로그 파일 위치
SQL> ARCHIVE LOG LIST;
SQL> show parameter log_archive_dest;

SELECT name, 'rm -f ' || value || '/*' "value"
FROM v$parameter
WHERE name = 'log_archive_dest';

--▶ 덤프 파일 위치
SELECT name, 'rm -f ' || value || '/*' "value"
FROM v$parameter
WHERE name like '%dump_dest%';

--▶ Trace, Alert 파일 삭제
> rm -f $ORACLE_BASE/admin/<DB_NAME>/adump/*
> rm -f $ORACLE_BASE/admin/<DB_NAME>/dpdump/*

--▶ 감시 파일, Flush Recovery영역
-- 위치 : $ORACKE_BASE/flash_recovery_area
SELECT name, 'rm -f ' || value || '/*' "value"
FROM V$parameter
WHERE name in ('db_recovery_file_dest', 'audit_file_dest');

--▶ 리스터, TNS 엔트리 삭제(자동 생성되는 지는 모르겠다.)
> rm -f $ORACLE_HOME/network/admin/listener.ora
> rm -f $ORACLE_HOME/network/admin/tnsnames.ora

--▶ oratab 엔트리 삭제
-- 다음 OS파일중에 인스턴스명이 기술되어 있는 행을 삭제
/etc/oratab (/var/opt/oracle/oratab)
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
ORCL:/home/oracle/product/10.2.0/db_1:N   <<-- 요기

--▶ pfile/spfile 삭제
spfile : SQL> SHOW PARAMETER spfile;
pfile : $ORACLE_HOME/dbs/spfile<SID>.ora | init<SID>.ora}

SELECT name, 'rm -f ' || value "value"
FROM V$parameter
WHERE name in ('pfile', 'spfile');

--▶ 패스워드 파일 삭제
-- 위치 : ORACLE_HOME/dbs/orapw<SID>
> rm -f $ORACLE_HOME/dbs/orapw<SID>

--▶ 컨트롤 파일의 스냅샷, Lock file, 관리 파일 삭제
> rm -f $ORACLE_HOME/dbs/sncf<SID>.ora  
          /* SNapshot Control File (RMAN), $ORACLE_HOME/dbs/lk<SID> */
> rm -f $ORACLE_HOME/dbs/lk<SID>
> rm -f $ORACLE_HOME/dbs/hc_<SID>.dat
> rm -f $ORACLE_HOME/dbs/core_<SID>~.log

--▶ 소프트웨어(Oracle Engine) 삭제하는 경우
/u01/app/oracle
/etc/oratab
/etc/oraInst.loc
/usr/local/bin/coreenv

--▶ 사용자 및 그룹 제거
userdel oracle
groupdel dba
groupdel oinstall 

rm -rf /home/oracle  # oracle 홈디렉토리 삭제 
반응형

+ Recent posts