我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

如何清空oracle文件 oracle删除文件夹

怎么删除oracle的数据文件

一、使用offline数据文件的方法

创新互联建站专注于企业营销型网站、网站重做改版、南漳网站定制设计、自适应品牌网站建设、成都h5网站建设成都做商城网站、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为南漳等各大城市提供网站开发制作服务。

非归档模式使用:alter database datafile '...' offline drop;

归档模式使用: alter database datafile '...' offline;

说明:

1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。

2) 归档模式下offline和offline drop效果是一样的

3) offline后,存在此datafile上的对象将不能访问

4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作

实际使用案例:

直接删除数据文件后无法进入系统的解决方案

正常情况下,删除表空间的正确方法为:

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。

如果直接删除了数据文件

普通用户登录时,则报错:

ORA-01033: ORACLE initialization or shutdown in progress

sys用户可以正常登录

但进行操作时(SELECT count(1) FROM user_tables),则会报错:

ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询

如果执行命令alter database open以打开数据库时,又报如下错:

ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'

说明数据库没找到这个数据文件

因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.

通过以下方法即可解决

解决方法:

sqlplus sys/orcl@orcl as sysdba;

SQL alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;

SQL alter database open;

SQL drop tablespace CTBASEDATA;

二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除:

sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files

2 where tablespace_name='USERS';

FILE_ID FILE_NAME TABLESPACE_NAME

------- -------------------------------------------- ------------------

4 /u01/app/oracle/oradata/orcl/users01.dbf USERS

sys@ORCLalter tablespace users add datafile

2 '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;

Tablespace altered.

sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files

2 where tablespace_name='USERS';

FILE_ID FILE_NAME TABLESPACE_NAME

------- -------------------------------------------- -------------------

4 /u01/app/oracle/oradata/orcl/users01.dbf USERS

9 /u01/app/oracle/oradata/orcl/users02.dbf USERS

sys@ORCLdrop table test;

Table dropped.

sys@ORCLcreate table test tablespace users

2 as

3 select * from dba_objects;

Table created.

sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

2 where file_id=9;

SEGMENT_NAME FILE_ID BLOCKS

------------------------------ ---------- ----------

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 8

TEST 9 128

TEST 9 128

17 rows selected.

sys@ORCLalter table test move tablespace PERFSTAT; --把表移动到其它表空间

Table altered.

sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

2 where file_id=9;

no rows selected

sys@ORCLalter tablespace users drop datafile

2 '/u01/app/oracle/oradata/orcl/users02.dbf';

Tablespace altered.

sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files

2 where tablespace_name='USERS';

FILE_ID FILE_NAME TABLESPACE_NAME

------- -------------------------------------------- ---------------------

4 /u01/app/oracle/oradata/orcl/users01.dbf USERS

三、oracle 10g可以删除临时表空间的文件

alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;

如何彻底清理oracle数据文件

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数据库怎么清空

我觉得还是概念不清析,问题不太明白呀。

所果只是简单的清空表的话,还是很容易的。

drop table TABLE_NAME ; //连表结构都删了。

要是清空内容,留着表结构,就是:

truncate tablename; // 就可以了。

如果是数据库表文件要删的话,就不和你说了。

怎样彻底删除oracle

1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭

2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products-> Universal Installer 卸载oracle

3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application这个里面所有有oracle这个字眼的,删除

4、删除c盘\Program Files\Oracle目录的东西以及oracle安装目录下所有的文件以及文件夹

5、环境变量中删除有关oracle的classpath和path


网站栏目:如何清空oracle文件 oracle删除文件夹
标题链接:http://mswzjz.cn/article/hicgoj.html

其他资讯