MDF数据文件个数问题 有关MSSQLSERVER数据库的问题:书上说主要数据文件只能有一个,但是为什么在数据文件里可以有多个扩展名为MDF的文件啊? ( 在新建数据库后会自带一个扩展名为MDF的文件,但是在添加数据文件时也还可以添加一个扩展名为MDF的数据文件,请专家解释下,谢谢) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个MDF一个LDF多个NDF 在SQL2005和SQL2008中,,,如果需要使用分区表,,,就必须建立多个数据文件(MDF)来存放,,存放的准则是不同的数据文件,放在不同的硬盘上,以提高IO的读写速度。 通常情况一个MDF 一个LDF 特殊情况一个MDF 多个LDF 多个NDF有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息。主文件还可以用来存储数据。每个数据库都包含一个主文件。次要文件保存所有主要数据文件中容纳不下的数据。如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件。而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上。事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为 512 KB。 每个数据库至少有两个文件,一个主文件和一个事务日志文件。尽管 'os_file_name' 可以是任何有效的操作系统文件名,但如果使用以下建议的扩展名,则可以更加清楚地反映文件的用途。文件类型 文件扩展名 主要数据文件 .mdf 次要数据文件 .ndf 事务日志文件 .ldf mdf,ndf和ldf主要是用来更清楚表示哪个物理文件是主,次数据文件及日志文件,如果你不用这些扩展名,或用别的扩展名一样可以创建数据库,这些讲到主要文件是一个,次要的可有一个或多个,日志也可以多个我想应该是从文件物理结构来区分的,而不是从扩展名上 其实我就是不明白为什么一个数据库中可以有多个扩展名为MDF的数据文件,书上讲了主要数据文件只能有有一个的啊,麻烦大家再解释解释。 尽信书则不如无书,书上说的一个应该就是指建立数据库最早的那个mdf文件。 书上只提到了mdf,ndf,ldf,没提到别的扩展名,那是不是别的扩展名就不能创建呢?当然不是(不用扩展名都能创建),这三个扩展名只是让用户用"肉眼"好区分哪是主,哪是次,哪是日志,真正的主,次,日志文件,可以从sysfiles中用fileid来区分,1是"mdf",2是第一个"ldf"再往下就是"ndf","ndf"之后又是"ldf",至于用什么扩展名就不要计较了 楼主应该把主数据文件和mdf文件区分开来理解,主数据文件只能有一个,主数据文件可以用mdf扩展来标识,也可以不用它来标识,只不过mdf是默认的主数据文件扩展名罢了,同理ndf,ldf亦如此]create database teston primary( name=t1, filename='d:\t1'),( name=t2, filename='d:\t2.mdf')log on( name=t3, filename='d:\t3.ldf')看看这个例子,t1是实际的mdf,t2的实际上应是ndf,但扩展名就可以随意 CREATE DATABASE [DBTEST] ON PRIMARY ( NAME = N'DBTEST_data1', FILENAME = N'G:\SQLdb\DBTEST1.mdf'), ( NAME = N'DBTEST_data2', FILENAME = N'G:\SQLdb\DBTEST2.mdf') LOG ON ( NAME = N'DBTEST_log1', FILENAME = N'G:\SQLdb\DBTEST_log1.ldf'), ( NAME = N'DBTEST_log2', FILENAME = N'G:\SQLdb\DBTEST_log2.ldf') 书上也没错,楼主理解有误。一个数据库可以有多个实例,你本机安装了SQL2000,可以新建数据库A,数据库B,数据库C,分别来管理,而对应的也会存在A.MDF、B.MDF、C.MDF。好比一个果盘里只能放一种水果即苹果,但可以放多个苹果。 应该是楼主理解有误,每个库只能有一个,但是有多个库啊,那不就有多个MDF。你装的数据库,是数据库系统,包含多个库文件。 不同数据库查找插入更新,求方法,求大侠指点!谢谢!!! 这个查询为什么不返回结果,只返回受影响的行数 一个表设置主键后,表中记录的顺序变了 16进制如何转换成10进制 怎么写简单的数据库删除命令 我做插表,到37XX条JDBC报错:error establishing socket,求解~~ 大俠救命,碰到了碰零除的sql語句了,如何改?(難題) 从原来SQL SERVER6。5下拷贝出的设备文件TEST。DAT ,怎么在现有6。5下使用??? 长度受限,这个SQL语句怎么写? 根据某列相同值只取一的SQL语句 如何使用BCP工具 晕死啊,这行有什么错呢?
一个LDF
多个NDF
存放的准则是不同的数据文件,放在不同的硬盘上,以提高IO的读写速度。
一个MDF
一个LDF 特殊情况
一个MDF
多个LDF
多个NDF
有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息。主文件还可以用来存储数据。每个数据库都包含一个主文件。
次要文件保存所有主要数据文件中容纳不下的数据。如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件。而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上。
事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为 512 KB。
每个数据库至少有两个文件,一个主文件和一个事务日志文件。尽管 'os_file_name' 可以是任何有效的操作系统文件名,但如果使用以下建议的扩展名,则可以更加清楚地反映文件的用途。文件类型 文件扩展名
主要数据文件 .mdf
次要数据文件 .ndf
事务日志文件 .ldf
create database test
on primary
(
name=t1,
filename='d:\t1'
),
(
name=t2,
filename='d:\t2.mdf'
)
log on
(
name=t3,
filename='d:\t3.ldf'
)看看这个例子,t1是实际的mdf,t2的实际上应是ndf,但扩展名就可以随意
CREATE DATABASE [DBTEST] ON PRIMARY
( NAME = N'DBTEST_data1', FILENAME = N'G:\SQLdb\DBTEST1.mdf'),
( NAME = N'DBTEST_data2', FILENAME = N'G:\SQLdb\DBTEST2.mdf')
LOG ON
( NAME = N'DBTEST_log1', FILENAME = N'G:\SQLdb\DBTEST_log1.ldf'),
( NAME = N'DBTEST_log2', FILENAME = N'G:\SQLdb\DBTEST_log2.ldf')
一个数据库可以有多个实例,你本机安装了SQL2000,可以新建数据库A,数据库B,数据库C,分别来管理,而对应的也会存在A.MDF、B.MDF、C.MDF。
好比一个果盘里只能放一种水果即苹果,但可以放多个苹果。
你装的数据库,是数据库系统,包含多个库文件。