如何删除数据文件

2018-02-18 20:23:55 jazdbmin1639整理 数据文件 数据文件

删除数据文件

Q1: 如何从表空间中“删除”数据文件

1.查看数据文件:
SQL> select name from v$datafile;
NAME
+DATA/orcl/system01.dbf
+DATA/orcl/undotbs01.dbf
+DATA/orcl/sysaux01.dbf
+DATA/orcl/users01.dbf
+DATA/orcl/undotbs02.dbf
/oracle/u01/app/oracle/oradata/orcl/SMS.dbf
/oracle/u01/app/oracle/oradata/orcl/WEBDB.dbf
7 rows selected.
2.查看数据文件状态
SQL> select file#,status,name from v$datafile where name like '%SMS%';
FILE# STATUS
NAME
6 ONLINE
/oracle/u01/app/oracle/oradata/orcl/SMS.dbf
1 rows selected.
3.确认操作系统上SMS数据文件已经不存在,u01文件夹都没有
[oracle@db1 ~]$ ll /oracle/
总计 6778872
drwxr-xr-x 2 oracle oinstall4096 12-16 17:07 bak
-rw-rw-r-- 1 oracle oinstall170 12-19 15:41 IMPORT.LOG
4.此时查看数据文件状态,状态没有异常
sec@ora10g> select file#,status,name from v$datafile where name like '%SMS%';
FILE# STATUSNAME
6 ONLINE/oracle/u01/app/oracle/oradata/orcl/SMS.dbf
5.手工将误删除的文件offline drop,成功
SQL> alter database datafile '/oracle/u01/app/oracle/oradata/orcl/SMS.dbf' offline drop;
Database altered.
6.此时,该文件的状态为“RECOVER”
SQL> select file#,status,name from v$datafile where name like '%SMS%';
FILE# STATUSNAME
6 RECOVER /oracle/u01/app/oracle/oradata/orcl/SMS.dbf
7.演示删除表空间,成功。
SQL> alter database datafile '/oracle/u01/app/oracle/oradata/orcl/SMS.dbf' offline drop;

Database altered.
8.最后确认,删除得很彻底。
SQL>select file#,status,name from v$datafile where name like '%SMS%';
no rows selected
SQL> select name from v$datafile;
NAME
+DATA/orcl/system01.dbf
+DATA/orcl/undotbs01.dbf
+DATA/orcl/sysaux01.dbf
+DATA/orcl/users01.dbf
+DATA/orcl/undotbs02.dbf
/oracle/u01/app/oracle/oradata/orcl/WEBDB.dbf
6 rows selected.

Q2: oracle如何删除数据文件

分为几种情况,最简单的情况可以在删除表空间的同时including contents and datafiles

WWW.JI‖ZHUBa.cOM

Q3: 如何把已经删除的文件清理干净?

所有文件的删除方法都一样,但普通的删除不一定就是“彻底删除”,如何用魔方、360之类的都可以恢复,专业的用成都易我(EaseUS Data Recovery Wizard,恢复时容易卡,所以恢复时尽量不要进行其他操作,扫描过程也比较慢,但是恢复效果是很不错的),更难办的就得找专业的数据恢复公司去恢复了。

(1)何为删除,删除的原理

删除: 指将已经不需要了的文件从系统的目录清单中删掉,以腾出磁盘空间给别的操作。在计算机中的大部分“彻底”删除就是将其从列表除名,并可以被其他文件覆写。

存储在硬盘中的每个文件都可分为两部分:文件头和存储数据的数据区。文件头用来记录文件名、文件属性、占用簇号等信息,文件头保存在一个簇并映射在FAT表(文件分配表)中。而真实的数据则是保存在数据区当中的。平常所做的删除,其实是修改文件头的前2个代码,这种修改映射在FAT表中,就为文件作了删除标记,并将文件所占簇号在FAT表中的登记项清零,表示释放空间,这也就是平常删除文件后,硬盘空间增大的原因。而真正的文件内容仍保存在数据区中,并未得以删除。要等到以后的数据写入,把此数据区覆盖掉,这样才算是彻底把原来的数据删除。如果不被后来保存的数据覆盖,它就不会从磁盘上抹掉。

(2)彻底删除的方法[u盘的也一样,我以]

由文件删除的原理可知,要彻底删除数据,只有把删除文件所在的数据区完全覆盖掉。绝大部分彻底删除工具所使用的就是这个道理:把无用的数据反复写入删除文件的数据区,并进行多次地覆盖,从而达到完全删除文件的目的。

具体的可以用魔方、360等的文件粉碎之类的,这里我用魔方的说明,

【操作】

打开软媒文件大师之后在文件粉碎里可以添加文件(如果设置了把这些功能添加到右键菜单,找到文件直接右键)

 如何把已经删除的文件清理干净?

添加好之后点击“粉碎”即可。

 如何把已经删除的文件清理干净?

(3)“删除文件”的百科里也列举了很多常用的删除方法,很详细

参考链接:http://baike.baidu.com/link?url=VuyS50o2iH5Y0r08nGEof4Z7Q6ZUELDSZm2eC0rbwa5ee3eaWfBeIJ7djyDcLzMzhrMgOjCHiSnG47P0wh_kAK#1

Q4: 运用C语言如何删除文件中的某条数据

比如
#include
#include
int main()
{
FILE *fp;
char *insert = "EE,EE,EE,", tmp[256]={0};
int pos, i;
/*test.txt文件内容:01,00,00,00,0E,00,00,00,00,00,00,E1,E2,00,00,00,00*/
fp = fopen("test.txt", "r+");
/*1、等长覆盖*/
fseek(fp, 12, 1);
fprintf(fp, "0F");/*直接写入等长度的数据就可以完成覆盖*/
/*2、E2后插入“EE,EE,EE,” */
fseek(fp, 25, 1);
pos = ftell(fp);/*插入位置*/
fgets(tmp, 256, fp);/*把后面的数据缓存*/
fseek(fp, pos, 0);/*移动到插入位置*/
fprintf(fp, insert); /*插入,就是写入数据*/
fprintf(fp, tmp);/*把原来的数据再写回来, 完成*/
/*3、01读取后++两次,并重新写回文件*/
rewind(fp);
fscanf(fp, "%x", &i);/*读取数据*/
i = i+2;/* +2 */
fseek(fp, -2, 1);/*调整指针*/
fprintf(fp, "%02x", i);/*写文件*/
fclose(fp);
system("PAUSE");
return 0;
}

Q5: 如何彻底删除数据库文件

没有关系亲,不用担心。。。

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

数据文件 推荐文章:
推荐不满意?点这里  ››  

数据文件