删除oracle数据库[转]
--=====================
-- 手动删除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步
三、 快捷参考
有关性能优化请参考
有关ORACLE体系结构请参考
Oracle 联机重做日志文件(ONLINE LOG FILE)
Oracle 实例和Oracle数据库(Oracle体系结构)
有关闪回特性请参考
Oracle 闪回特性(FLASHBACK DATABASE)
Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN)
Oracle 闪回特性(Flashback Query、Flashback Table)
Oracle 闪回特性(Flashback Version、Flashback Transaction)
有关基于用户管理的备份和备份恢复的概念请参考
Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)
有关RMAN的备份恢复与管理请参考
RMAN 备份路径困惑(使用plus archivelog时)
有关ORACLE故障请参考
对参数FAST_START_MTTR_TARGET = 0 的误解及设定
有关ASM请参考
有关SQL/PLSQL请参考
SQL 基础--> 集合运算(UNION 与UNION ALL)
SQL 基础--> 层次化查询(START BY ... CONNECT BY PRIOR)
SQL 基础--> ROLLUP与CUBE运算符实现数据汇总
有关ORACLE其它特性
使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例
日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)
使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)
簇表及簇表管理(Index clustered tables)
ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME
Oracle 补丁全集 (Oracle 9i 10g 11g Path)
删除oracle数据库[转]的更多相关文章
- 删除oracle数据库用户
手工删除ORACLE数据库用户时常会出现会话进程仍在使用导致删除失败的情况.需要查询会话并将会话删除才能成功将数据库用户删除,比较不方便. 适用场景 自动删除oracle数据库用户 基本知识 orac ...
- Linux删除ORACLE数据库用户失败提示ORA-01940解决方法
操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...
- Linux删除oracle数据库
手动的删除ORACLE数据库. 本人的做法: su - root lsnrctl stop kill -9 `ps -ef |grep oracle |grep -v grep |awk '{prin ...
- 手动删除oracle数据库
--===================== -- 手动删除oracle数据库 --===================== 杀掉进程用此方法比较好,能保证杀得干净,而不是用sql 里面的语句ki ...
- cmd怎么删除Oracle数据库中的用户实例
Oracle数据库使用过程中,针对系统都会建立独立的数据库用户,但有些时候处于测试或别的原因需要删除,原来的DB用户,这时我们可以使用下面的办法. 下属操作的前提是——确保数据库服务及监听均处于启动状 ...
- 在不重装系统的情况下撤底删除oracle数据库及oralce的相关软件
先从控制面板删除oracle的相关应用及数据库, 删除系统变量 ORACLE_OEM_CLASSPATH=%JAVA_HOME%\lib\ext\access-bridge-64.jar;%JAVA_ ...
- 如何删除Oracle数据库
1>点击开始找Oracle的目录,-->点击[Universal Installer],打开点击[卸载产品] 2>除了oracle_home1 不点外,其他的都勾选. 3>再点 ...
- 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”
系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...
- linux操作系统下完全删除oracle数据库
1.关掉oracle server 和 background processes ps -ef | grep ora 关掉数据库 shutdown immediate 2.关掉监听 lsnrctl ...
随机推荐
- 2017寒假零基础学习Python系列之 印子
今日为2017年2月6日,据在慕课网上学习廖雪峰Python教程也快一周左右了,完全是零基础入门Python,大一上学期粗浅的接触学习了C语言,早就听说过Python语言的大名,又想把Python的爬 ...
- MVC通过递归+部分视图实现评论
前一个项目里有一个关于评论系统的需求.感觉这个评论的实现还是蛮好玩的,所以记录下这个系统的实现相关内容. 功能需求: 1.用户可以再视屏下方留言. 2.用户可以再别的用户留言下方回复. 3.用户可以删 ...
- 4个小时实现一个HTML5音乐播放器
技术点:ES6+Webpack+HTML5 Audio+Sass 这里,我们将一步步的学到如何从零去实现一个H5音乐播放器. 首先来看一下最终的实现效果:Demo链接 接下来就步入正题: 要做一个音乐 ...
- Java 泛型在实际开发中的应用
java泛型是对Java语言的类型系统的一种扩展,泛型的本质就是将所操作的数据类型参数化.下面我会由浅入深地介绍Java的泛型. 一:泛型出现的背景 在java代码里,你会经常发现类似下边的代码: p ...
- CSS 样式书写规范
可能不同团队都有各自的规范,又或者很多人在写 CSS 的时候还是想到什么就写什么,不存在太多的约束. 我觉得 CSS 代码规范还是有存在的必要的,尤其是在团队配合,多人协作下,规范就显得尤为重要. 本 ...
- 浅谈web服务器的编写之http协议
本书是介绍怎么编写一个Web服务器,而Web服务器是基于HTTP(HyperText Transfer Protocol)协议实现的,所以要实现一个Web服务器就必须了解HTTP协议,本章主要介绍HT ...
- HTML5的应用缓存
HTML5:提供一种应用缓存机制,使得基于web的应用程序可以离线运行.开发者可以使用 Application Cache (AppCache) 接口设定浏览器缓存的数据并使得数据离线有效. 在处 ...
- Java设计模式之模板方法设计模式(银行计息案例)
不知道为什么,这几天对Java中的设计模式非常感兴趣,恰巧呢这几天公司的开发任务还不算太多,趁着有时间昨天又把模板方法模式深入学习了一下,做了一个客户在不同银行计息的小案例,感触颇深,今天给各位分享一 ...
- (转)logback 打印Mybitis中的sql执行过程
场景:在程序开发过程中经常需要跟踪程序中sql语句的执行过程,在控制台打印出sql语句和对应的参数传递就能够更快的定位错误! 原文出处:http://www.cnblogs.com/beiyeren/ ...
- iOS TextView输入长度限制 设置placeholder
textView在使用中通常会有2个功能是最常用的 设置placeholder 限制输入长度 TYLimitedTextView刚好是为了解决这个2个问题而诞生的,下面讲解TYLimitedTextV ...