Oracle中手动删除数据库教程

在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库。对此,可以借助drop database命令来实现,下面的描述中给出手动删除数据库。

的具体步骤,包含文件系统数据库以及ASM数据库。环境:Oracle Enterprise Linux 5.4 + Oracle 10g R2 .
 
一、手动删除文件系统数据库
 
    1.停止监听与OEM

代码如下:

$ lsnrctl stop listener_name
        $ emctl stop dbconsole

2.获得数据文件,日志文件及控制文件的相关信息,包含归档

代码如下:

$ sqlplus / as sysdba
        SQL> select status,name from v$controlfile;   --获取控制文件的位置信息
        SQL> select * from v$dbfile;                  --获取数据文件的位置信息
        SQL> select * from v$logfile;                 --获取日志文件的位置信息
        SQL> archive log list;                        --查看归档的sequence及位置信息
        SQL> shutdown abort;                          --因数据不再需要,直接shutdown abort

3.启动到 mount 状态(使用exclusive restart)

代码如下:

SQL> startup mount exclusive restrict;

4.修改参数为允许受限的会话模式

代码如下:

SQL> alter system enable restricted session;

5.使用drop database命令来清除数据库

代码如下:

SQL> drop database;
        SQL> exit

6.手动清除相关文件

代码如下:

$ echo $ORACLE_SID    --确认当前的ORACLE_SID
        $ rm -rf $ORACLE_BASE/admin/$ORACLE_SID         --删除oracle base目录下的$ORACLE_SID的所有内容
        $ rm -rf $ORACLE_BASE/oradata/$ORACLE_SID       --oradata下的数据文件,根据前面的查询,注意要删除不同路径下的数据文件
        $ rm -rf $ORACLE_BASE/arch/$ORACLE_SID          --清除归档日志,注意归档路径的正确性
        $ rm -rf $ORACLE_BASE/flash_recovery_area/$ORACLE_SID   --清除闪回区的内容
        $ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID*                 --清除参数文件     */

7.清除监听相关文件(建议)

代码如下:

$ rm $TNS_ADMIN/*.ora    --如果设定了$TNS_ADMIN变量,否则删除默认路径下的监听文件   */
        $ rm $ORACLE_HOME/network/admin/*.ora            */

8.修改oratab文件以及.bash_profile
     

代码如下:

$ vi /etc/oratab        --去掉实例相关的设置
        $ vi ~/.bash_profile    --去掉实例相关的设置

二、清除ASM数据库

对于ASM数据库的删除与文件系统数据库的不同之处在于数据文件,控制文件,日志文件,参数文件等都是存放在ASM系统中,因此需要在ASM实例中做相应
    的动作来彻底清除数据库。
  
    1.执行文件系统数据库清除步骤3-4步(先要shutdown)
  
    2.使用drop database命令来清除数据库(该命令将清除数据文件,日志文件,temp文件)
     

代码如下:

SQL> drop database;
        SQL> exit

3.连接到ASM实例
 

代码如下:

$ export ORACLE_SID=+ASM
        $ sqlplus / as sysdba

4.清除残余文件

代码如下:

SQL> select name,file_number,group_number,file_incarnation from v$asm_alias; --查看文件,注意group_number表示位于不同的磁盘组
        SQL> alter diskgroup DG1 drop directory '+DG1/asmdb/file_name';              --可以使用方式来删除需要删除的文件
        SQL> alter diskgroup REV drop directory '+REV/asmdb/file_name';
        SQL> select name,file_number,group_number,file_incarnation from v$asm_alias;     --验证删除后的结果

也可以使用下面的方式(asmcmd命令)来删除残余文件
        

代码如下:

$ export ORACLE_SID=+ASM
        $ asmcmd
        ASMCMD> ls -l
        State    Type    Rebal  Unbal  Name
        MOUNTED  EXTERN  N      N      DG1/
        MOUNTED  EXTERN  N      N      REV/
        ASMCMD> ls -s
        Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
           512   4096  1048576      3067     2974                0            2974              0  DG1/
           512   4096  1048576      2047     1996                0            1996              0  REV/
        ASMCMD> cd +DG1
        ASMCMD> ls
        ASMDB/
        ASMCMD> rm -rf ASMDB
        ASMCMD> ls
        ASMCMD> cd +REV
        ASMCMD> pwd
        +REV
        ASMCMD> ls
        ASMCMD> cd +  
        ASMCMD> ls -s
        Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
           512   4096  1048576      3067     3016                0            3016              0  DG1/
           512   4096  1048576      2047     1996                0            1996              0  REV/

对于直接位于磁盘组下的文件则同样可以使用rm命令来直接删除文件

5.清除其它文件

尽管数据文件,归档日志,联机日志,临时文件,参数文件都存放在ASM磁盘中,但dump文件,告警日志依然位于磁盘,需要手动清除
       
      

代码如下:

$ echo $ORACLE_SID    --确认当前的ORACLE_SID
        $ rm -rf $ORACLE_BASE/admin/$ORACLE_SID         --删除oracle base目录下的$ORACLE_SID的所有内容
        $ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID*         --清除参数文件          */

6.执行文件系统数据库清除步骤7-8步

(0)

相关推荐

  • Oracle中手动删除数据库教程

    在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库.对此,可以借助drop database命令来实现,下面的描述中给出手动删除数据库. 的具体步骤,包含文件系统数据库以及ASM数据库.环境:Oracle Enterprise Linux 5.4 + Oracle 10g R2 .   一.手动删除文件系统数据库       1.停止监听与OEM 复制代码 代码如下: $ lsnrctl stop listener_name         $ emctl stop dbcon

  • oracle中添加删除主键的方法

    1.创建表的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int); (2)有命名 create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid)); 2.删除表中已有的主键约束 (1

  • Oracle中的定时任务实例教程

    目录 一.Oracle 中的定时任务的实例 1.1.创建一个测试表,只有一个 DATE 类型字段 1.2.创建一个自定义存储过程 1.3.创建定时任务JOB 1.4.运行JOB (1.3执行成功后,job就已经开始执行了) 1.5.关于JOB的查询操作 1.6.常见的Interval 设置 1.7.编写存储过程的格式样例 补充:Oracle手动执行定时任务 总结 一.Oracle 中的定时任务的实例 1.1.创建一个测试表,只有一个 DATE 类型字段 CREATE TABLE TEST_A(T

  • oracle中如何删除亿级数据

    目录 oracle删除亿级数据 1.drop table ,然后再create table,插入数据 2.使用delete批量删除 3.使用truncate table ,然后再插入数据 oracle数据库亿级数据量清理SQL优化常识 第一种方法就是DELETE 第二种方法就是truncate 删除的第三种方式就是DROP 总结 oracle删除亿级数据 近期遇到一个日志表记录了几年数据,数据量较大(几亿数据),导致查询等操作较慢,为了提高效率,决定删除部分历史数据,想了三种方法如下: 通用步骤

  • oracle中如何获得数据库的DBID信息

    1.查询v$database获得 由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得. 复制代码 代码如下: SQL> alter database mount;Database altered.SQL> select dbid from v$database;      DBID----------3152029224 2.在nomount状态时 如果数据库配置了自动控制文件备份(Oracle9i),并且名称是缺省的,那么我们可以

  • oracle中截断表的使用介绍

    在Oracle中如果删除了表中的某一条数据,还可以通过回滚操作(rollback)进行回滚,假如想清空一张 表的数据,但是又不想使其能进行回滚操作,就可以立刻释放资源,这时就需要使用截断表了.它的主要功能就是彻底删除数据,使其不能进行回滚.这里我打个比方大家就立刻能明了它的作用.大家众所周知,当我们在自己的PC(personcomputer)上删除某一个文件,它并没有彻底删除而是进入了回收站,你要在回收站中再将其删除才算彻底清除.截断表就相当于直接将数据从pc上删除,而不会放入回收站. 截断表格

  • 深入浅析Oracle数据库管理之创建和删除数据库

    Oracle数据库的数据文件(扩展名为DBF的文件)是用于保存数据库中数据的文件,系统数据.数据字典数据.临时数据.索引数据.应用数据等都物理地存储在数据文件中.用户对数据库中数据的操作,例如数据的插入.删除.修改和查询等,其本质都是对数据文件进行操作.所有数据文件占据空间的大小决定了数据库容量的大小. 一.数据库管理概述 在完成Oracle软件安装后,DBA就应该对组织和管理数据库负责任,其主要任务是: (1)启动和关闭数据库: (2)创建数据库: (3)删除数据库: (4)调整初始化参数:

  • Oracle中正则表达式的使用实例教程

    前言 正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境. 本文主要介绍了关于Oracle中正则表达式的使用方法,下面话不多说了,来一起看看详细的介绍. Oracle使用正则表达式离不开这4个函数:regexp_like.regexp_substr.regexp_instr.regexp_replace. regexp_like 该函数只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配 //查询所

  • Oracle 手动创建数据库步骤详解

    下面先给大家列出oracle手动创建数据库步骤如下所示: 1.编写初始化参数文件 2.设置操作系统环境变量 3.创建实例 4.以管理员身份连接数据库 5.启动实例 6.create database 创建数据库 7.运行数据字典脚本 8.Oracle的网络配置 (客户端连接到服务端) 初始化参数文件 从%ORACLE_HOME%\admin\sample\pfile从复制initsmpl.ora文件,并黏贴到$ORACLE_HOME%\database目录下,改名为init<sid>假设改为i

  • ubuntu 14.04 oracle 11g 64位数据库安装图文教程

    一.环境 系统:Ubuntu 14.04.5 LTS(为了贴近生产我装了个Ubuntu14的服务器版本) JDK:jdk-8u121-linux-x64.tar.gz Oracle:linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip 工具:Xshell5. 注:以上软件或者工具自行去相关官网下载 二.安装JDK 解压JDK tar -zxvf jdk-8u121-linux-x64.tar.gz 注:tools这个

随机推荐