oracle中如何删除数据库


删除oracle软件和实例步骤:

1、oracle用户登陆sqlplus停止数据库:shutdown

2、oracle用户停止监听服务:lsnrctl stop

3、root用户
 删除/tmp下ora*文件
 删除/opt下OR*文件
 删除/etc下oraInst.loc和oratab文件
 (这两个文件是安装oracle时执行$ORACLE_HOME/root.sh脚本产生的)
 删除/usr/local/bin下coraenv、dbhome、oraenv
 (这三个文件是安装oracle时执行$ORACLE_BASE/oraInventory/orainstRoot.sh脚本产生的)

 删除$ORACLE_BASE下admin、flash_recovery_area、oradata、oraInventory
 (记住这里不要删除oracle用户默认目录,下次重新安装oracle软件时还要使用oracle用户呢)

 特别注意的是不要删除$ORACLE_BASE下oracle用户默认目录,下次重新安装oracle软件时还要使用oracle用户。

          B


删除oracle实例,不删除oracle软件

1、dbca,删除实例

DBCA之后 ¥ORACLE_HOME 下剩下

admin  flash_recovery_area  oradata  oraInventory  product

admin  flash_recovery_area  oradata  这个三个文件分别 cd进去 rm -rf  

oraInventory  product  不要管(脚本目录) 其中product等会要用的 

[oracle@mult3 oracle]$ dbca

-bash: /u01/app/oracle/product/10.2.0.1/db/bin/dbca: No such file or directory

删除上面的2个文件 admin oradata可以 但是删除了 product 文件就不可以了 DBCA命令就不能够用了!
















Oracle提供了删除数据库的指令:drop database

需要数据库处于mount状态,然后alter system enable restricted session;,网上有帖子说还需要exclusive,由于我是VM装的,用户只有我一个,所以不用可以。由于当前处于open状态,需要改为mount,执行:
SQL> alter database close;
alter database close
*
ERROR at line 1:
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
原因是有个session仍连接,退出后再次执行,
SQL> alter database close;
Database altered.

SQL> select status from v$instance;
STATUS
------------
MOUNTED

SQL> alter system enable restricted session;
System altered.

SQL> select status from v$instance;
STATUS
------------
MOUNTED

SQL> drop database;
Database dropped.

此时alert.log记录信息:
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
Create Relation INC_METER_IMPT_DEF
Create Relation INC_METER_PK_IMPTS
USER (ospid: 8748): terminating the instance
Instance terminated by USER, pid = 8748
Deleted Oracle managed file /opt/app/ora11g/oradata/BISAL/controlfile/o1_mf_9x4fgq77_.ctl
Deleted Oracle managed file /opt/app/ora11g/flash_recovery_area/BISAL/controlfile/o1_mf_9x4fgypb_.ctl
Completed: drop database
Shutting down instance (abort)
License high water mark = 2
Fri Jul 25 19:09:26 2014
Instance shutdown complete

到oradata路径下看已经没有任何文件了,那么认为这个数据库已经被删除。
但再次执行dbca,企图创建相同实例的库时报错:


虽然和bisal实例关联的数据文件、日志文件等已经物理删除了,但和这实例相关的配置文件没有删除,因此不能再次创建相同实例的库。

此时需要手工删除实例相关的配置
1、删除$ORACLE_BASE/admin/$ORACLE_SID所有目录。
2、删除$ORACLE_HOME/dbs下和SID相关的文件和参数文件,包括hc_bisal.dat,init.ora,lkBISAL,orapwbisal。
3、删除/etc/oratab中和实例相关的部分。
4、可以在$ORACLE_HOME中执行find . -name bisal,删除所有和实例相关的文件。

再次执行dbca,就可以创建相同实例名称的数据库了




查看oracle中数据库服务器字符编码


原因:你的oracle服务器的字符集和你客户端的字符集不一致
服务器查看字符集:
select * from v$nls_parameters
客户端(win7)就是查看注册表了
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ORADB10G_HOME1
双击NLS_LANG修改成和服务器一样的字符集

如果是在服务端产生的,
export NLS_LANG="Simplified Chinese_china".ZHS16GBK 
或者
vi .bash_profile NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG 
source .bash_profile 
就可以了
追问

oracle中如何删除数据库_第1张图片

服务端的查询结果,这里应该是正确的吧?

这里应该是正确的吧
追答

是的

oracle中如何删除数据库_第2张图片





你在看一下你的注册表中的字符集。。

你用pl/sql上操作的,也就是在客户端上操作

客户端显示出来的字体乱码,确认一下客户端字符集

重新启动PL/SQL

追问

oracle中如何删除数据库_第3张图片

服务端的查询结果,这里应该是正确的吧?

这里应该是正确的吧

你可能感兴趣的:(数据库)