数据文件
计算机领域术语
在大容量复制操作中,将数据从向外大容量复制操作传输到向内大容量复制操作的文件。在 SQL Server 2000 数据库中,数据文件存放着在数据库中存储的数据。每个 SQL Server 2000 数据库至少有一个主要数据文件,可以有多个次要数据文件以存放不适合在主要数据文件中放置的数据。数据文件比较多,数据的概念也比较广泛图形图像声音数字各种码制都是数据,存储这些数据的文件就是数据文件。
基本介绍
定义
数据文件(一般是指数据库的文件)如:每一个ORACLE数据库有一个或多个物理的数据文件(data file)。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。
特征
一个数据文件仅与一个数据库联系,一个数据库的数据文件包含全部数据库数据。一旦建立,数据文件不能改变大小。一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由 ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。
可以改变已有数据文件的大小的。
重新调整数据文件的大小:
SQL> alter database datafile '/u1/oradata/userdata_001.ora ' resize 50M;  --Unix中
主要数据文件
主要数据文件由主文件组中的初始数据文件组成。文件组是经过命名的数据文件集合。包含所有数据库系统表,以及没有赋给自定义文件组的对象和数据。主要数据文件是数据库的起始点,它指向数据库中的其他文件。每一个数据库都有一个主要数据文件和一个主文件组,主要数据文件的扩展名是.mdf 。
创建文件
on primary -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name='数据库名称_data', -- 主数据文件的逻辑名称
filename='所存位置:\u6570据库名称_data.mdf', -- 主数据文件的物理名称
size=数值mb, --主数据文件的初始大小
maxsize=数值mb, -- 主数据文件增长的最大值
filegrowth=数值%--主数据文件的增长率
)
恢复技术
在进行硬盘数据恢复时,如果每次都从头到尾地进行扫描,需要耗费大量的时间,而且恢复的数据大部分是不需要的。为了节约时间提高效率,应对特定的重要数据文件进行恢复。从硬盘启动及文件读写的原理出发,分析文件被修改或删除时操作系统所做的操作,对比分析文件分配表(FAT)和文件目录表(FDT)在特定文件修改或删除时产生的变化,针对现有的数据恢复技术无法自动恢复不连续簇文件的问题,通过FAT表内连续簇的分布规律来进行特定文件恢复。
文件丢失原因
文件数据丢失的原因主要分两大类,一类是硬盘无法启动或损坏,从硬盘启动到文件读写,这一过程中涉及到五个环节,任何一个环节出问题都可能导致文件数据丢失,可以针对每一个环节进行恢复,确保文件能够读写成功。另一类是人为地误操作导致。
硬盘无法读取文件的分析与恢复
硬盘从启动到读取其中的文件,这一过程涉及到五个环节:读取主引导扇区(Boot Sector)、读取操作系统引导记录(DBR)、读取文件目录表(FDT)、读取文件分配表(FAT)、 读取文件数据存储区。其过程如从硬盘启动到文件读写的流程如图1:从硬盘启动到文件读写的流程图所示:
在开机加电自检后,CPU 从内在地址 0ffff:0000 处开始执行,将硬盘第一个扇区(0面0磁道1扇区)读入内存地址 0000:7c00 处,然后执行 MBR中的程序,即在主分区表(DPT)中搜索活动分区,找到 DBR 进行操作系统引导,从 DBR 中找到 BPB 中记录的本分区的起始扇区、结束扇区、文件存储格式、根目录等等信息,并进入系统,在成功进入操作系统后,读写某一个文件时,需要先从文件目录表(FDT)中找到该文件的目录项,获取该文件的起始簇号,并通过文件分配表(FAT)中的相应簇号信息找到下一簇号,直至文件结束,然后到数据存储区按这一系列簇号进行数据读写。这个过程中的任何一个环节出问题,都会导致文件读取失败,因此,可以针对每一个环节对硬盘进行恢复。
误操作丢失文件的分析与恢复
针对一个特定的文件,当出现误操作致使文件丢失时,如误删除、格式化等,文件的数据并没有丢失,只是修改了 FDT 和 FAT 等地方的相关项,所以,只要采取相应的措施, 就可以将误操作丢失的文件恢复。这里对文件的新建、修改和删除操作进行实验,通过 winhex 实时观察硬盘在上述文件操作时发生的变化,并分析如何对文件进行恢复。当文件内容被修改时,比如内容扩充,系统会自动地从 FAT 中找到没有使用的簇,并将其填入扩充的内容,同时在 FAT表里进行标记,先将原文件的最后一个簇用扩充的内容填满,然后链接至剩余新内容的第一个簇,并在文件结束时标记为结束簇,以此维持该文件的链式结构。而在 FDT 目录项中,除了文件大小和修改时间等信息发生变化外,其他信息如起始簇号信息不变。
针对不连续簇文件的恢复
在实验过程中我们发现,当文件较大,利用的硬盘空间不连续时,用一般的数据恢复软件如EasyRecovery,FinalData 等进行恢复,往往得不到完整的文件,原因在于它们都只是从 FDT 项中读取到起始簇号和文件大小,然后去数据区对应的起始簇开始复制与文件大小相同的长度的数据,并没有考虑文件的簇没有连在一起的情况。而这种情况目前尚没有统一的解决方案,本文在实验中尝试找到这种文件的簇在分配和删除时的规律,进行一定条件下的文件完整恢复。系统在对文件进行分配空间时,先遵循力争完整的规则,若进行文件扩充时,扩充的新内容也力争完整地放在一块区域,因此,对于扩充的文件,其对应的 FAT 表也是由不同的整块整块区域组成的。在数据密度较大的硬盘区域,当删除一个不连续簇的文件时(以两个簇块儿的文件为例),FAT 表里对应的表项就会很有规律地清零。
3D打印中的应用
3D 打印中的数据文件格式主要分为 2 类:CAD 三维数据文件格式和二维层片文件格式。CAD 三 维 数 据 文 件 格 式 包 括:STL(stereolithography)、STEP(standard for the exchange ofproduct modal data )、 IGES ( initialgraphicsexchange specification )、 LEAF( layer exchangeASCII format )、RPI( rapid prototypinginterface)、LMI(layer manufacturing interface)等;二维层片文件格式包括:SLC(stereo lithographycontour)、CLI(common layer interface)、HPGL(Hewlett-Packard graphics language)等。 其中 STL是最早用于 CAD与CAPP间数据交换的文件格式,并且得到了广泛的应用。目前,3D 打印系统大部分都是基于 STL 格式设计的。
参考资料
最新修订时间:2022-08-25 12:26
目录
概述
基本介绍
参考资料