如何优雅的删除oracle数据库

做了恢复测试,现在要恢复另外一套库,想要把原来的环境打掉,一直使用暴力的rm删除数据文件,别人提示我连删库都不会,做什么dba

首先将数据库mount到独占模式
startup mount exclusive restrict;

然后修改参数为允许受限的会话模式
alter system enable restricted session;       
       
再进行删除数据库
drop database;

这里执行的时候就是提示删除不了,提示必须在独占模式才能删除,但是想起来这个环境是恢复的rac,但是另个节点没跑起来,猜想是另个节点没有独占模式,怎么办呢?强制把这个恢复环境的只有一个节点的rac改成单实例的那种。
alter system set cluster_database=FALSE scope=spfile;
 然后重启一把,再重新执行上面的命令,做了删除。
 
 但是吧,这个删除不太干净,只删除了数据文件,目录还没有清理,在$ORACLE_BASE/等目录下的一些东西也是需要手动再删除的。

然后在网上找了一个,也大同小异,总之就是删除相关的目录相关的数据文件。

以下参考https://www.cnblogs.com/andy6/p/5913560.html

1.停止监听,防止有新的连接产生,同时,在数据库配置了em的,也需要停止

$ lsnrctl stop listener_name

$ emctl stop dbconsole

2.获得数据文件,日志文件及控制文件的相关信息,包含归档      
      $ sqlplus /as sysdba
       SQL>show parameter control
       获取控制文件的路径 
       SQL>select file_name from dba_data_files;
       获取数据文件的位置
       SQL>select * from v$logfile;
       获取日志文件的位置
       SQL>archive log list; 
       获取归档日志的路径
       SQL>shutdown immediate(abort);
       关闭数据库,反正都要删除了,可以考虑用abort

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

SQL> startup mount exclusive restrict;
       mount数据库到独占模式
       SQL> show parameter instance;
       查看是否是要删除的实例,这一步非常重要,。

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

SQL>alter system enable restricted session;

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

SQL>drop database;

SQL>exit

6.手动清除相关文件

根据第2步查询的结果,删除相应的文件。
       windows可以打开窗口,进入目录删除。linux可以使用rm删除

7.清除监听相关文件
       11G以后,很多是动态注册的,所以不用考虑这一步。如果配置了静态监听的,需要删除listener.ora文件里的配置

8.修改oratab文件以及.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 ARCHDG1 drop directory '+ARCHDG1/asmdb/file_name';             --可以使用方式来删除需要删除的文件

SQL>alter diskgroup DATADG drop directory'+DATADG/asmdb/file_name';

SQL>select name,file_number,group_number,file_incarnation from v$asm_alias;    --验证删除后的结果

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

$ export ORACLE_SID=+ASM1

$ asmcmd

ASMCMD> ls -l

State   Type   Rebal Unbal Name

MOUNTED EXTERN N     N     ARCHDG1/

MOUNTED EXTERN N     N     DATADG/

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 ARCHDG1/

512  4096 1048576     2047    1996               0           1996             0 DATADG/

ASMCMD> cd +ARCHDG1

ASMCMD> ls

ASMDB/

ASMCMD> rm -rf ASMDB

ASMCMD> ls

ASMCMD> cd +DATADG

ASMCMD> pwd

+DATADG

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 ARCHDG1/

512  4096 1048576     2047    1996               0           1996             0 DATADG/

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

5.清除其它文件
   --$ORACLE_HOME/dbs/与该实例相关的文件;
   --trace文件,这个根据版本不同,路径也不相同。11g为$ORACLE_BASE/diag/rdbms/sid_name 相关的实例目录
      
   6.执行文件系统数据库清除步骤7-8步

从删库到跑路?!那你也得会正确的删库呀!相关推荐

  1. 从删库到跑路,就是这么迅速!程序员为了报复同事删了公司数据库

    从删库到跑路,就是这么迅速!程序员为了报复同事删了公司数据库 一只有头发的程序猿 2019-08-23 09:38 做过互联网行业的都知道,数据库对公司是至关重要的,存储了大量的数据在里面,要是没有这 ...

  2. mysqldump全量恢复_删库不跑路-详解MySQL数据恢复

    日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA. 相关文章 MySQL备份策略:https://segmentfa ...

  3. Linux 下谨慎使用 rm,避免从删库到跑路的悲剧发生

    我们该如何再次避免删库"跑路"等事件的再次发生? 对此,在企业首先做好权限管理以及多重审核机制的同时,CSDN 也曾教诸多程序员们如何在 Linux 下谨慎使用 rm,避免从删库到 ...

  4. MySQL从删库到跑路(5):in and not

     "哈哈哈哈,看你这几天没来上课,我还以为你去拜什么高人为师了?原来就是这个烂番薯.臭鸟蛋的小卖部大爷学装逼,你逗我玩呢?哈哈哈哈哈"  "哈哈哈哈,一个老屌丝,一个小屌 ...

  5. 手误【删库】 == 跑路,不存在的 ——删瓦辛格

    手误[删库] ==  跑路,不存在的  --删瓦辛格 前言 今天公司服务器的宝塔打不开,让我去修(ps:宝宝委屈) 打开找一下问题所在 问题: 发现是宝塔官方的cdn好像挂掉了 解决思路: (1)本地 ...

  6. mysql高级-15-数据库备份与恢复(删库不跑路)

    mysql高级 前言 1.物理备份与逻辑备份 2.mysqldump实现逻辑备份 2.1 备份一个数据库 2.2 备份全部数据库 2.3 备份部分数据库 2.4 备份部分表 2.5 备份单表的部分数据 ...

  7. MySQL从删库到跑路(2):大爷的SQL私房菜

    大爷的SQL私房菜 夜色如墨,月凉如水,一轮皎洁的圆月高高地挂在夜空之上,平日里鼾声如雷的室友今夜也停止了打鼾,如此静谧的夜晚,李有为却辗转难眠. 时间悄然来到凌晨一点半,他已经在窗边站了53分钟23 ...

  8. 告别从删库到跑路,linux回收站实现

    在linux 下操作时经常需要用到rm -rf,一招不慎轻者从删库到跑路,重者到跑路机会都没有.趁放假,试着结合实际生产环境,实现一下之前一直想的win回收站机制 实现思路 alias 给rm取别名, ...

  9. 智能车竞赛技术报告 | 智能车视觉 - 南京邮电大学 - 栅库砸车跑路队

    学 校:南京邮电大学  队伍名称:删库砸车跑路队 参赛队员:刘乐      孙锐      甘翠      带队教师:江兵      刘烨      第一章 方案设计   本章主要介绍智能汽车系统总体 ...

  10. 删库不跑路,MySQL 数据库恢复教程

    在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回. 在 MySQL 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所 ...

最新文章

  1. 安卓开发环境之 Android Studio
  2. 计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...
  3. JS解密入门——有道翻译
  4. 关于HTML Button点击自动刷新页面的问题解决
  5. PHP项目:如何用PHP高并发检索数据库?
  6. 将当前的Git分支设为主分支
  7. [BZOJ1572] [Usaco2009 Open]工作安排Job(贪心 + 堆)
  8. 骑士cms,骑士cms快速搭建
  9. oracle根据身份证号码 计算年龄、性别
  10. 将字符串数组含有特定字符的值输出{“张三丰“,“张翠山“,“张无忌“,“宋远桥“,“莫声谷“,“俞正声“}
  11. LC-3简易四子棋(深大计系1实验4) 思路+代码+详细注释
  12. 个人总结---微信抢票应用
  13. Linux sdkman使用方法
  14. MySQL——Using Filesort文件排序详解
  15. deepin系统安装惠普打印机驱动
  16. React的核心概念—— Jsx、 Component、 Props、 Refs、 State
  17. 烂笔头 | OpenMMLab 第一讲
  18. 批处理(batch)教程
  19. 【室内定位】常用的机器人定位导航技术及优缺点
  20. bootstrap自学总结不间断更新

热门文章

  1. 全球及中国带显示屏的智能扬声器行业投资分析及前景策略分析报告2022-2028年
  2. zkServer.sh: command not found
  3. AutoCAD .Net 创建多段线Polyline
  4. iOS gitignore文件
  5. mysql 拼音转汉字_Mysql中文汉字转拼音的实现(每个汉字转换全拼)
  6. 10年程序员的酒后真言
  7. rtx3090显卡什么牌子好
  8. 淘宝商品详情采集上架京东店铺(京东商品详情接口,淘宝商品详情接口,无货源商品数据采集接口)接口代码对接教程
  9. 互联网晚报 | 美国监管部门托底,硅谷银行储户可支取所有资金;硅谷银行CEO套现360万美元股票;B站考虑取消前台播放量数据显示...
  10. 端午安康,我们一起欢度端午~