繁体   English   中英

映射驱动器并备份SQL Server数据库

[英]Mapping a drive and backing up a SQL Server database

我们将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的)服务器进程具有自己的会话,因此看不到映射的驱动器。

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

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

http://msdn.microsoft.com/zh-cn/library/ms179313.aspx#NetworkShare

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM