如何备份SQLServer到网络共享
2023-03-26 15:18 abce 阅读(2415) 评论(0) 编辑 收藏 举报首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。你可以通过创建一个像这样的批处理脚本来做到这一点:
SET LocalFolder=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup SqlCmd -E -Q "Backup Database MyDB To Disk='%LocalFolder%MyDB.bak'" XCopy "%LocalFolder%MyDB.bak" "\192.168.16.55BackupDatabases" /Z /V DEL "%LocalFolder%MyDB.bak"
包含了以下的主要内容:
1.设置一个变量,定义了本地备份目录
2.创建一个备份,备份到本地目录
3.拷贝备份文件到网络共享存储
4.删除本地的备份
首选这种方法是因为它可以开箱即用,并且由于备份是在本地磁盘上创建的,因此备份失败的可能性很小。但是,如果没有足够的磁盘空间来存储备份文件的本地副本,则此操作将失败。在这种情况下,将需要添加额外的磁盘空间或直接备份到网络共享存储。
直接备份到网络共享存储
比如:
SqlCmd -E -Q "Backup Database MyDB To Disk='\192.168.16.55BackupDatabasesMyDB.bak'"
不过,你可能会遇到下面的错误:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device '\192.168.16.55BackupDatabasesMyDB.bak'. Operating system error 5(Access is denied.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
尽管你使用Windows身份验证和Windows帐户作为通过Windows资源管理器访问和复制文件到共享的能力运行SQL备份命令,但仍会出现此错误。
此操作失败的原因是SQL命令是在运行SQL Server服务的帐户范围内执行的。当在计算机上查看服务列表时,很可能会看到SQL Server服务运行为(登录为列)本地系统或网络服务(Local System或Network Service),他们是没有网络访问权限的系统帐户。
在我们的系统上,对网络共享命令的备份失败,因为SQL Server服务作为本地系统(Local System)运行,同样不能访问任何网络资源。
为了允许SQL直接备份到网络共享,我们必须将SQL Server服务作为一个能够访问网络资源的本地帐户运行。编辑SQL Server服务的属性,并在"登录"选项卡中,将该服务配置为具有网络访问权限的备用帐户。
当单击OK时,将得到一个提示,提示设置直到重新启动服务才会生效。
重启
现在应该显示SQL Server服务使用你配置的帐户运行。
现在就可以执行上面的备份操作了。
SqlCmd -E -Q "Backup Database MyDB To Disk='\192.168.16.55BackupDatabasesMyDB.bak'"
会看到如下成功的消息:
Processed 152 pages for database 'MyDB', file 'MyDB' on file 1. Processed 2 pages for database 'MyDB', file 'MyDB_log' on file 1. BACKUP DATABASE successfully processed 154 pages in 0.503 seconds (2.493 MB/sec).
在网络共享中也可以看到备份的文件了。
需要注意的是,备份命令希望能够直接连接到网络共享,而不需要提示输入凭据。你配置运行SQL Server服务的帐户必须与各自凭据允许访问的网络共享具有可信连接,否则可能会发生这样的错误:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device '\192.168.16.55BackupDatabasesMyDB.bak'. Operating system error 1326(Logon failure: unknown user name or bad password.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
此错误表明该帐户的用户名和密码不被网络共享接受,命令执行失败。
另一个需要记住的问题是,备份是直接对网络资源执行的,因此网络连接中的任何故障都可能导致备份失败。因此,应该只备份到稳定的网络位置。