2

从位于网络驱动器上的文件.mdf创建数据库时,我收到此错误消息。.ldf

执行的查询:

create database DatabaseName ON
  (FileName = '\\gyancluster-sql\g$\Backup\WSS_Content_DB.mdf'),
  (FileName = '\\gyancluster-sql\g$\Backup\WSS_Content_DB_log.ldf')
  for attach
GO

错误

文件“\gyancluster-sql\g$\Backup\WSS_Content_DB.mdf”位于数据库文件不支持的网络路径上。

4

5 回答 5

4

那么你的问题是什么?问题是什么?毫无疑问 - 只是倾倒一个句子;)

我的意思是,不想听起来太讽刺,但你可以阅读,或者?

文件“\gyancluster-sql\g$\Backup\WSS_Content_DB.mdf”位于数据库文件不支持的网络路径上。

这很清楚,不是吗?不支持它 - 出于很好的理由,顺便说一句,直到现在。

您现在是在问我们 MS 是否在撒谎吗?不,他们不会撒谎 - 这是不支持的。他们说的是真的。

有很多方法(http://support.microsoft.com/kb/304261),但就是这样;)

你想让我们改写错误信息吗?也许会变成“老兄,那不会工作,不酷,看”?更清晰?

说真的 - 听起来很刺耳,但我总是想知道为什么人们实际上并没有阅读错误信息。

于 2012-06-20T07:34:22.680 回答
1

在尝试创建数据库之前使用 DBCC TRACEON(1807)。

此外,您可以在 MSSQL 服务器启动参数中添加 linea“-t 1807”,它将使更改永久化。上面的命令允许您使用网络存储,但在重新启动时您将丢失标志。

于 2014-04-10T07:04:48.143 回答
0

You are lucky that the OS is warning you that opening database files directly over a network is a bad idea. Older database api's let you do that with no warning and then network users of that database application are forever blighted with corrupt databases.

于 2012-12-31T16:40:13.427 回答
0

如果 \gyancluster-sql\g$ 指的是计算机 gyancluster-sql 上的本地磁盘 G,它也恰好是运行 sql 服务的地方,那么你真的应该使用

create database DatabaseName ON
  (FileName = 'G:\Backup\WSS_Content_DB.mdf'),
  (FileName = 'G:\Backup\WSS_Content_DB_log.ldf')
  for attach
 GO

请注意,即使您是从另一台计算机运行脚本,这仍然适用。

这仍然是一个坏主意,但您可以使用 UNC 名称,但前提是运行 sql 的服务能够访问共享(例如,如果在域管理员帐户下运行),但通常会考虑不必要的安全风险。

如果您真的想将数据库存储在网络设备上,那么显然这意味着 sql 服务确实需要访问共享,所以这是首先要检查的,但您还需要阅读 Chris Dickson 的 Microsoft 文章向您指出(即http://support.microsoft.com/kb/304261),其中详细说明了何时支持此功能。

于 2012-12-31T18:04:30.330 回答
0

您需要启用通过网络共享的数据库文件,下面的帖子将逐步解释如何做到这一点。

https://blogs.msdn.microsoft.com/varund/2010/09/02/create-a-sql-server-database-on-a-network-shared-drive/

同一篇文章解释了这样做的风险。

我希望这有帮助

问候

于 2017-08-30T19:41:02.813 回答