首页 > 数据库 >如何备份SQLServer到网络共享

如何备份SQLServer到网络共享

时间:2023-03-26 15:22:28浏览次数:44  
标签:备份 SQLServer Server SQL 网络共享 MyDB bak

首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。你可以通过创建一个像这样的批处理脚本来做到这一点:

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.

此错误表明该帐户的用户名和密码不被网络共享接受,命令执行失败。

 

另一个需要记住的问题是,备份是直接对网络资源执行的,因此网络连接中的任何故障都可能导致备份失败。因此,应该只备份到稳定的网络位置。

标签:备份,SQLServer,Server,SQL,网络共享,MyDB,bak
From: https://www.cnblogs.com/abclife/p/17258747.html

相关文章

  • mysql数据库备份与恢复
    环境:CentOS7.9mysql-5.71.数据库准备,建表createdatabaseschool;CREATETABLEstudent(idINT(10)NOTNULLUNIQUEPRIMARYKEY,nameVARCHAR(20)NOTNULL,se......
  • NBU备份恢复AD操作指引​
    AD粒度恢复前提AD粒度恢复需要在如下前提下进行:配置NetBackup客户端服务的登录帐户安装和配置用于ActiveDirectory粒度恢复的网络文件系统(NFS),AD安装NFS之后,禁用并停用“......
  • gs_probackup增量备份ptrack.cpp : 88
    问题描述:使用gs_probackup对opengauss进行增量备份失败[omm@testmysqldb04~]$shgs_probackup.shincbackuppg_switch_xlog----------------0/46000000(1row)I......
  • MySQL数据库备份与恢复
    一,备份,恢复为什么要备份灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景参考链接:https://www.toutiao.com/a6939518201961251359/ ......
  • 多ip服务器数据怎么备份?
    多ip服务器数据怎么备份?1、应用程序定期进行备份通过确保经常定期进行备份,防止您的关键服务器数据丢失。一般来说,服务器的海外应用都有备份工具,比如常用的控制面板如等,提......
  • mysql定期备份bat脚本
    @echooffecho设置MySql数据库的连接信息sethost=127.0.0.1setport=3306setuser=rootsetpass=123456;echo设置要备份MySql数据库名称setdbname=hncgecho......
  • sqlserver合并表格数据
    1.页面数据  2.表格数据 a数据selectContractID,LOACode,a.LiquidatedDamages,a.CalculationBase,a.CalculationProportion,a.ForCycle,a.CappingRatio,a.C......
  • 热备份路由选择协议(HSRP)
    HSRP的相关概念HSRP(热备份路由选择协议)是思科私有的一种技术,他确保了当网络边缘设备或接入链路出现故障时,备份路由还能正常通信。HSRP为IP网络提供容错和增强的路由选择功能......
  • 备份和迁移数据
    迁移方式介绍容器中的数据,如果没有用挂载目录,删除容器后就会丢失数据。如果你是用bindmount直接把宿主机的目录挂进去容器,那迁移数据很方便,直接复制目录就好了如果你是用......
  • SQlServer 日期格式 varchar 转 datetime格式
    以下是一个示例查询,将VARCHAR类型的时间字符串20230118.132626转换为日期和时间格式:SELECTDATE_ADD('2023-01-1812:00:00',INTERVAL'1'hour,INTERVAL'1'm......