数据库文件有哪些主要的组织形式

数据库文件有哪些主要的组织形式,第1张

一、数据文件类型:

每个sql server 2000数据库都有一个主数据文件,能有多个辅数据文件,后者只能供该数据库使用。

二、数据文件命名:

每个数据文件都是个独立的 *** 作系统文件。主数据文件通常以.mdf为文件后缀(该后缀不是必须的,但对于文件的识别比较有用)。主数据文件将数据存储在表格或索引中,他包含数据库的启动信息。他还包含一些系统表格,这些表格记载数据库中的对象,如数据库中所有的其他文件(辅数据文件和事务处理日志文件)的位置信息。

每个辅助数据文件通常都以.ndf为文件后缀(该后缀也不是必须的)。辅数据文件主要在一个数据库跨多个硬盘驱动器时使用。

每个数据文件(主文件和辅文件)都有一个逻辑文件名,在transact_sql语句中使用,及一个物理文件名,供windows *** 作系统使用。逻辑文件名必须对于特定的数据库都是唯一的,并且必须遵守sqlserver的标识符规则。

三、数据文件存储:

sql server 2000将所有的数据库记录在两个位置上:主数据库和该数据库的主文件。非常多时候,数据库引擎使用在主数据库中找到的文件位置信息。当然也有例外,比如,当你执行的某些 *** 作,使得数据库引擎使用主文件位置信息,初始化主数据库中的文件位置输入,就是个特例。这些 *** 作正从sql server 7.0升级到sql server 2000,恢复主数据库,并使用sp_attach_db系统存储过程将一个数据库添加到sql server 2000中。

四、数据文件空间分配:

在sql server 2000的表格或索引中存储信息之前,必须在一个数据文件内部分配一些自由空间给那个对象。分配给表格和索引的自由空间的每个单位称为“扩展盘区”(extent)。一个扩展盘区为64kb,由8个连续的页面组成,每个页为8k。共有两种类型的扩展盘区:混合扩展盘区和统一扩展盘区。

每次创建一个新表格或索引时,sql server 2000寻找一个带自由空间的混合扩展盘区,然后将该自由页分配给该新建对象。一个页面只包含一个对象的数据。当某个对象需要额外的空间时,sql server 2000将混合扩展盘区中的自由空间分配给该对象,直到他一共使用了8个页面为止。在这以后,sql server 2000分配一个统一扩展盘区给那个对象。如果所有的数据文件上都没有自由空间,且启动了“自动增长”选项的话,那么sql server 2000将以循环算法增长这些数据文件。

oracle中分配表空间实际就是告诉系统你的数据要存到哪个数据文件中,创建用户时如果不特别指定,该用户默认就存到system表空间(安装oracle时系统创建),其他对象会默认存到所属用户所对应的表空间中。oracle方面不建议用户数据存到system表空间,因为这样会引起用户的访问进程和oracle系统进程磁盘资源争用而影响系统性能。表空间在创建时可以指定是自增(满了自己增加)或手动增加。

如果重新分配磁盘会破坏原先的文件系统,会丢失数据,如果要重新分配磁盘,必须做下数据备份和数据迁移。

其实最简单一种方法就是做个nfs挂载到数据库的那个目录给数据库用。

或者利用dd出一个文件给数据库用,具体 *** 作如下:

假设我们需要512M的系统空间,我们就dd出一个512M的文件。

# dd if=/dev/zero of=/disk_file bs=1M count=512

将文件格式化成ext3文件系统。

# mkfs.ext3 /disk_file

手动挂载一下。

# mount -o loop /disk_file /db

加入到fstab中,方便以后开机自动挂载。

# grep disk_file /etc/fstab

/disk_file              /db                     ext3    loop,default    0 0

# mount -a

查看空间使用状态

# df -Th | grep disk

/disk_file    ext3    496M   19M  452M   4% /db


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10090621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存