【问题标题】:Mapping a drive and backing up a SQL Server database映射驱动器并备份 SQL Server 数据库
【发布时间】:2014-07-17 23:20:11
【问题描述】:

我们将 SQL Server 数据库备份到 NAS,并且很好奇是否可以备份到临时映射驱动器,而不是 UNC 路径。我要撞墙了。

使用New-PSDrive:

New-PSDrive -Name "Y" -PSProvider FileSystem -Root "\\NAS\Backups" -Scope Global -Persist

Test-Path "Y:\SQLDBA" <# returns True #>

<# Method 1 #>
sqlcmd -E -d master -Q "BACKUP DATABASE [SQLDBA] TO DISK = N'Y:\SQLDBA\SQLDBA.bak' WITH INIT" -b
<# Method 2 #>
Invoke-Sqlcmd -Database master -Query "BACKUP DATABASE [SQLDBA] TO DISK = N'Y:\SQLDBA\SQLDBA.bak' WITH INIT" -QueryTimeout 999999999 -verbose -ErrorAction Stop  

Remove-PSDrive "Y"

使用网络使用:

net use Y: \\NAS\Backups /persistent:yes

<# Method 1 #>
sqlcmd -E -d master -Q "BACKUP DATABASE [SQLDBA] TO DISK = N'Y:\SQLDBA\SQLDBA.bak' WITH INIT" -b
<# Method 2 #>
Invoke-Sqlcmd -Database master -Query "BACKUP DATABASE [SQLDBA] TO DISK = N'Y:\SQLDBA\SQLDBA.bak' WITH INIT" -QueryTimeout 999999999 -verbose -ErrorAction Stop  

net use Y: /delete

任何一种方法都会给我同样的错误:

无法打开备份设备“Y:\SQLDBA\SQLDBA.bak”。操作系统错误3(系统找不到指定的路径)。

这可能吗?

【问题讨论】:

  • 文件是否已经配置为备份设备?

标签: sql-server powershell powershell-3.0


【解决方案1】:

不,不是。映射的驱动器存在于会话中。服务器进程(sql server)有它自己的会话,所以它看不到你映射的驱动器。

【讨论】:

    【解决方案2】:

    要在 SQL Server 在域用户帐户中运行时备份到网络驱动器,必须将共享驱动器映射为运行 SQL Server 的会话中的网络驱动器。如果您从命令行启动 Sqlservr.exe,SQL Server 会看到您在登录会话中映射的任何网络驱动器。

    请查看以下文章以供参考:

    http://msdn.microsoft.com/en-us/library/ms179313.aspx#NetworkShare

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      相关资源
      最近更新 更多