【问题标题】:Creating SQL Server database with data and log file on synology NAS Server在 Synology NAS 服务器上使用数据和日志文件创建 SQL Server 数据库
【发布时间】:2013-05-13 07:07:36
【问题描述】:

我需要为应用程序创建一个新数据库。我计划将数据文件放在 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

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

感谢您的宝贵时间。

费达

【问题讨论】:

    标签: sql-server synology


    【解决方案1】:

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

    摘录:

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

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

    但是,您可以将 SQL Server 配置为将数据库存储在 网络服务器或 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 的两倍。

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

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

    【讨论】:

    【解决方案2】:

    您需要 SQL Server 2008R2 或更高版本。从 2008R2 开始,支持 UNC 名称,但不鼓励使用(出于 Chris 提到的所有原因)。支持SMB 3.0 的环境在解决大多数UNC 存储问题方面大有帮助。在 2008R2 之前,跟踪标志 1807 可以工作,但不是受支持的部署(如果您就任何问题寻求帮助,CSS 可能会拒绝帮助您)。见SQL Server Can Run Databases from Network Shares & NAS

    【讨论】:

    • 你好 Remus,我已经看过这个页面了。无论如何,阅读该页面让我有勇气在 nas 服务器上计划新数据库 :) 我首先尝试了以下 SQL 语句。我没有把我所有的试验都简单地讲出来。
    • 我创建了之前没有注意到 1807 标志的数据库。
    • 嗨,Remus,我还有一个与这个主题相关的问题,你有时间可以查一下吗? stackoverflow.com/questions/16522453/…
    【解决方案3】:

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

    【讨论】:

    • 看起来像评论,不像完整答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多