我正在尝试使用两个原始分区(即未格式化的分区)创建数据库。
Microsoft Docs声明您可以执行此操作,您只需要指定原始分区的驱动器号即可,如下所示:
CREATE DATABASE DirectDevice
ON (NAME = DirectDevice_system, FILENAME = 'S:')
LOG ON (NAME = DirectDevice_log, FILENAME = 'T:')
但是,SQL Server 2017返回此错误:
消息5170,级别16,状态4,第1行
无法创建文件'S:',因为它已经存在。更改文件路径或文件名,然后重试该操作。
消息1802,级别16,状态4,第1行
CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。
文档的相关部分指出:
如果文件位于原始分区上,则os_file_name必须仅指定现有原始分区的驱动器号。每个原始分区上只能创建一个数据文件。
是的,驱动器S:和T:都是我系统中确实存在的未格式化原始分区:
DISKPART>详细分区 分区4 类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 隐藏:否 必填:否 属性:0000000000000000 字节偏移量:999934656512 卷### Ltr标签Fs类型尺寸状态信息 ---------- --- -------------- ----- ---------- ------- ---- ----- -------- *第6卷T RAW分区127 MB健康 DISKPART>选择分区3 现在,分区3是所选分区。 DISKPART>详细分区 分区3 类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 隐藏:否 必填:否 属性:0000000000000000 字节偏移量:1000067825664 卷### Ltr标签Fs类型尺寸状态信息 ---------- --- -------------- ----- ---------- ------- ---- ----- -------- *第7卷S RAW分区129 MB正常
如FILENAME = 'S'
和中所示FILENAME = 'T'
,从驱动器号中删除冒号将导致:
消息5105,级别16,状态2,第1行
发生文件激活错误。物理文件名“ S”可能不正确。诊断并纠正其他错误,然后重试该操作。
消息1802,级别16,状态1,第1行
CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。
SQL Server 2000文档在该CREATE DATABASE
部分下显示了以下示例:
H.使用原始分区
本示例使用原始分区创建一个名为Employees的数据库。执行该语句时,原始分区必须存在,并且每个原始分区上只能有一个文件。
USE master
GO
CREATE DATABASE Employees
ON
( NAME = Empl_dat,
FILENAME = 'f:',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'g:',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
但是,以上示例显示了SIZE
,MAXSIZE
和FILEGROWTH
参数,这些参数显然对于RAW分区上存储的SQL Server数据文件不是必需的。
SQL Server 2000文档中的更多详细信息,特别是有关原始驱动器的信息:
使用原始分区
Microsoft®SQL Server™2000支持使用原始分区来创建数据库文件。原始分区是未使用Microsoft WindowsNT®文件系统格式化的磁盘分区,例如FAT和NTFS。在某些情况下,使用在原始分区上创建的数据库可能会比NTFS或FAT产生轻微的性能提升。但是,对于大多数安装,首选方法是使用在NTFS或FAT分区上创建的文件。在原始分区上创建数据库文件时,无需指定组成数据库的文件的物理名称;您仅指定应在其上创建数据库文件的磁盘的驱动器号。如果使用的是MicrosoftWindows®2000 Server,则可以创建装入的驱动器以指向原始分区。当您将本地驱动器挂载到一个空文件夹时,Windows 2000为驱动器分配驱动器路径,而不是驱动器号。已安装的驱动器不受驱动器号对26个驱动器的限制。因此,您可以使用无限数量的原始分区。在已安装的驱动器上创建数据库文件时,必须在驱动器路径的末尾加上反斜杠(),例如E:\ Sample name。有关创建已安装驱动器的信息,请参见Windows 2000 Server文档。使用原始分区时,有几个限制要考虑:
在每个原始分区上只能创建一个数据库文件。逻辑分区必须配置为单个数据库文件,因为原始分区上没有文件系统。标准文件系统操作(例如复制,移动和删除)不能与原始分区一起使用。
原始分区上的数据库文件无法使用Windows NT备份实用程序进行备份。但是,仍然可以创建SQL Server数据库或事务日志备份。
原始分区上的数据库文件无法自动扩展。最初以完整大小创建数据库,或者手动扩展数据库文件。有关更多信息,请参见扩展数据库。
只能使用字母分区,例如E:或已安装的驱动器,例如E:\ Sample name \。编号的设备无法使用。
原始分区不提供诸如坏块替换之类的文件系统服务。
这是受Brent Ozar关于SQL Server 6.5的帖子启发的,该帖子确实支持原始分区。