我需要为应用程序创建一个新数据库。我计划将数据文件放在NAS服务器上(Synology 812)。我尝试使用不同的路径创建数据库2天,但没有任何效果。在底部,您可以看到示例路径N'\\10.1.1.5\fileserver\...
我也试过'N\\10.1.1.5\**volume1\fileserver**\payroll.ldf'
因为从synology管理界面属性对话框显示了fileserver共享目录的这条路径。
fileserver
是一个共享文件夹。我可以从文件资源管理器中访问该文件夹。
\\10.1.1.5\fileserver\
我可以使用Windows资源管理器在其中创建新文件或文件夹。但不幸的是,create语句不起作用。
CREATE DATABASE Payroll
ON
( NAME = Payroll_dat,
FILENAME = N'\\10.1.1.5\fileserver\payrolldat.mdf',
SIZE = 20MB,
MAXSIZE = 70MB,
FILEGROWTH = 5MB )
LOG ON
( NAME = 'Payroll_log',
FILENAME = N'\\10.1.1.5\fileserver\payroll.ldf',
SIZE = 10MB,
MAXSIZE = 40MB,
FILEGROWTH = 5MB )
GO
如果有人能解决我的问题,我将非常高兴。
感谢您的时间。
Ferda
答案 0 :(得分:3)
默认情况下,SQL Server不支持UNC路径。请参阅http://support.microsoft.com/kb/304261处的KB - SQL Server中对网络数据库文件的支持说明。
提取物:
Microsoft通常建议您使用存储区域网络 (SAN)或本地连接的磁盘,用于存储Microsoft SQL 服务器数据库文件,因为此配置优化了SQL Server 性能和可靠性。默认情况下,使用网络数据库文件 (存储在联网服务器或网络附加存储器[NAS]上)是 未启用SQL Server。
可以启用它,但您必须确保硬件符合某些严格条件:
但是,您可以配置SQL Server以在a上存储数据库 联网服务器或NAS存储服务器。用于此目的的服务器 必须满足SQL Server对数据写入顺序的要求 直写保证,详见“更多信息” 部分。
[...]
任何软件或硬件组件都无法遵守此协议 在系统发生故障时部分或全部数据丢失或损坏。
[...]
Microsoft不支持NAS上的SQL Server联网数据库文件或联网 存储服务器不符合这些直写和写入顺序要求。
性能也可能受到严重影响:
最简单的形式是,NAS解决方案使用标准网络 重定向器软件堆栈,标准网络接口卡(NIC)和 标准以太网组件。这种配置的缺点是 所有文件I / O都是通过网络堆栈处理的 受网络本身的带宽限制。这个可以 创建性能和数据可靠性问题,尤其是在 需要极高级别文件I / O的程序,例如SQL 服务器。在Microsoft测试的一些NAS配置中,I / O. 吞吐量约为直接连接的三分之一(1/3) 存储解决方案在同一台服务器上在同样的配置中, 通过NAS设备完成I / O的CPU成本大约是 是本地I / O的两倍。
总而言之,如果你不能保证你的硬件支持这些要求,你就会玩火。它可能适用于小型测试环境,但我不会托管像这样的Live数据库,以免数据损坏或性能严重受损。
要启用,请使用KB中描述的跟踪标志1807。
答案 1 :(得分:2)
您需要SQL Server 2008R2或更高版本。从2008R2开始,UNC名称得到支持,但不鼓励(由于Chris提到的所有原因)。具有SMB 3.0能力的环境在解决大多数UNC存储问题方面有很长的路要走。在2008R2之前,跟踪标志1807可以工作,但不是受支持的部署(如果您在任何问题上寻求帮助,CSS可能会拒绝帮助您)。请参阅SQL Server Can Run Databases from Network Shares & NAS。
答案 2 :(得分:0)
我认为您可以做的最好的事情是在您的nas设备中配置一个ISCSI卷,如果您有3个或更多可用磁盘,则创建RAID 5,之后您应该将NAS和您的服务器连接到连接到a的独立VLAN不同的网络设备,甚至是不同的网络设备,以避免因运营流量而对您的LAN造成影响,这样您将使用NAS作为SAN