2

我需要为应用程序创建一个新数据库。我计划将数据文件放在 NAS 服务器(Synology 812)上。我尝试使用不同的路径创建数据库 2 天,但没有任何效果。在底部,您可以看到一个示例路径N'\\10.1.1.5\fileserver\...

我也尝试过'N\\10.1.1.5\**volume1\fileserver**\payroll.ldf',因为从 Synology 管理界面属性对话框中显示了文件服务器共享目录的此路径。

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

如果有人能解决我的问题,我会很高兴。

感谢您的时间。

费尔达

4

3 回答 3

3

默认情况下,SQL Server 不支持 UNC 路径。请参阅位于http://support.microsoft.com/kb/304261的 KB - SQL Server 中对网络数据库文件的支持说明

提取物:

Microsoft 通常建议您使用存储区域网络 (SAN) 或本地连接的磁盘来存储 Microsoft SQL Server 数据库文件,因为此配置可优化 SQL Server 性能和可靠性。默认情况下,不为 SQL Server 启用网络数据库文件(存储在联网服务器或网络附加存储 [NAS] 上)的使用。

它可以启用,但您必须确保您的硬件满足一些严格的条件:

但是,您可以将 SQL Server 配置为将数据库存储在联网服务器或 NAS 存储服务器上。用于此目的的服务器必须满足 SQL Server 对数据写入顺序和直写保证的要求,详见“更多信息”部分。

[...]

如果发生系统故障,任何软件或硬件组件未能遵守此协议都可能导致部分或全部数据丢失或损坏。

[...]

Microsoft 不支持不满足这些直写和写入顺序要求的 NAS 或网络存储服务器上的 SQL Server 网络数据库文件。

性能也可能受到严重影响:

最简单的 NAS 解决方案使用标准网络重定向器软件堆栈、标准网络接口卡 (NIC) 和标准以太网组件。这种配置的缺点是所有文件 I/O 都是通过网络堆栈处理的,并且受到网络本身的带宽限制。这可能会产生性能和数据可靠性问题,尤其是在需要极高级别文件 I/O 的程序中,例如 SQL Server。在 Microsoft 测试的某些 NAS 配置中,I/O 吞吐量约为同一服务器上直接连接存储解决方案的三分之一 (1/3)。在相同的配置中,通过 NAS 设备完成 I/O 的 CPU 成本大约是本地 I/O 的两倍。

所以总而言之,如果你不能保证你的硬件支持这些要求,你就是在玩火。它可能适用于小型测试环境,但我不会像这样托管实时数据库,以免数据损坏或性能严重受损。

要启用,请使用 KB 中描述的跟踪标志 1807。

于 2013-05-13T07:18:03.580 回答
2

You need SQL Server 2008R2 or later. Starting with 2008R2 the UNC names are supported, although not encouraged (for all the reasons Chris mentions). An SMB 3.0 capable environment goes a long way into solving most of UNC storage problems. Prior to 2008R2 the trace flag 1807 would work, but was not a supported deployment (CSS could refuse to help you if you asked for help on any issue). See SQL Server Can Run Databases from Network Shares & NAS.

于 2013-05-13T08:00:35.750 回答
0

我认为您可以做的最好的事情是在您的 NAS 设备中配置一个 ISCSI 卷,如果您有 3 个或更多可用磁盘,则创建一个 RAID 5,之后您应该将您的 NAS 和服务器连接到连接到不同网络设备的独立 VLAN 中甚至在不同的物理网络中,以避免由于操作流量而对您的 LAN 造成影响,这样您就可以将 NAS 用作 SAN

于 2017-03-24T06:36:37.150 回答