手工删除linux oracle数据库和软件

来源:互联网 发布:淘宝上怎么卖药品 编辑:程序博客网 时间:2024/05/29 19:15
  • 1手工删库和数据库文件
今天想用热备份的方式重做一次物理standby,发现dbca运行不了,由于默认没有在/ora/etctab里设置,同时redhat还报进程异常,所以只有手工删除数据库了。之前没有安装EM,所以本文不关心EM和iSQLPLUS相关的文件。

  • 1.1关闭监听
[root@localhost ~]# lsnrctl stop
[root@localhost ~]#  sqlplus "/as sysdba"
  • 2确定数据库文件的物理位置
从数据库的物理组成文件来看,包括了控制文件,数据文件,日志文件(在线和归档)。

确定控制文件所在位置:
SQL> select * from v$controlfile;    

STATUS   NAME                                                         IS_ BLOCK_SIZE FILE_SIZE_BLKS
-------- ------------------------------------------------------------ --- ---------- --------------
         /u01/product/oradata/primary/control01.ctl                   NO       16384            612
         /u01/product/flash_recovery_area/primary/control02.ctl       NO       16384            612

确定数据文件所在位置:
 
SQL> select * from v$dbfile;       

     FILE# NAME
---------- ------------------------------------------------------------
         4 /u01/product/oradata/primary/users01.dbf
         3 /u01/product/oradata/primary/undotbs01.dbf
         2 /u01/product/oradata/primary/sysaux01.dbf
         1 /u01/product/oradata/primary/system01.dbf


确定日志文件所在位置:        
SQL> select * from v$logfile;        
    GROUP# STATUS   TYPE     MEMBER                                                                 IS_
------ -------- -------- ---------------------------------------------------------------------- ---
     3          ONLINE   /u01/product/flash_recovery_area/STANDBY/onlinelog/redo03.log          NO
     2          ONLINE   /u01/product/flash_recovery_area/STANDBY/onlinelog/redo02.log          NO
     1          ONLINE   /u01/product/flash_recovery_area/STANDBY/onlinelog/redo01.log          NO
     4          STANDBY  /u01/product/flash_recovery_area/STANDBY/onlinelog/std_redo04.log      NO
     5          STANDBY  /u01/product/flash_recovery_area/STANDBY/onlinelog/std_redo05.log      NO
     6          STANDBY  /u01/product/flash_recovery_area/STANDBY/onlinelog/std_redo06.log      NO
     7          STANDBY  /u01/product/flash_recovery_area/STANDBY/onlinelog/std_redo07.log      NO

7 rows selected.

确定归档文件所在位置:
 
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     110
Next log sequence to archive   0
Current log sequence           111
Current log sequence           111
SQL> show parameter db_recovery

NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
db_recovery_file_dest                string   /u01/product/flash_recovery_area

关闭数据库:
SQL> shutdown abort;
SQL> startup mount exclusive restrict;

drop database自动删除控制文件、数据文件和日志文件,及其FRA文件:
SQL> drop database;  
Database dropped.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
              
SQL> exit

[oracle@localhost ~]$ rm -rf  /u01/product/oradata/primary/* --删除数据库文件所在目录,可能有多个目录
[oracle@localhost ~]$ rm -rf /u01/product/flash_recovery_area/STANDBY/onlinelog/   --删除归档文件所在目录和文件,可能有多个目录
[oracle@localhost ~]$ rm -rf /u01/product/flash_recovery_area/$ORACLE_SID   --删除闪存区目录
[oracle@localhost ~]$  rm -rf $ORACLE_BASE/admin/$ORACLE_SID
[oracle@localhost ~]$  rm $ORACLE_HOME/dbs/*$ORACLE_SID*     --删除密码文件和lk等文件
 
如果有必要,还可以删除listener.ora、tnsnames.ora和sqlnet.ora:
[oracle@localhost ~]$  rm $TNS_ADMIN/*.ora
[oracle@localhost ~]$   rm $ORACLE_HOME/network/admin/*.ora

修改oratab文件和.bash_profile(使用bash的情况下)文件:
[oracle@localhost ~]$   vi /etc/oratab        --去掉实例相关的设置
[oracle@localhost ~]$   vi ~/.bash_profile    --去掉实例相关的设置

现在该库的实例和物理文件都清除干净了,已经和没建库前一样了。
  • 2手工删oracle软件(Linux下)
(1) 删除oraInventory目录,目录位置记录在/etc/oraIns.loc文件中
(2) 删除$ORACLE_HOME目录
(3)  删除其它oracle文件,包括
/usr/local/bin/oraenv
/usr/local/bin/coraenv
/usr/local/bin/dbhome
/etc/oraInst.loc
/etc/oratab
/etc/inittab.cssd
/var/tmp/.oracle目录
(4)  运行 $ORACLE_HOME/bin/localconfig delete

 
 
原创粉丝点击