如何将SQLSERVER数据库备份到网络上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将SQLSERVER数据库备份到网络上相关的知识,希望对你有一定的参考价值。

定期备份SQL数据库是必须的。 我们已经覆盖的方式就可以轻松备份您的所有SQL Server数据库到本地硬盘中,但这并不能防止驱动器和/或系统故障。 作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。

在本地备份,然后复制到网络共享

完成此任务的首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。您可以通过创建如下所示的批处理脚本来完成此操作:

SET LocalFolder = C:Program Files Microsoft SQL ServerMSSQL.1MSSQLBackup 
SqlCmd -E -Q“备份数据库MyDB到磁盘=%LocalFolder%MyDB.bak” 
XCopy“%LocalFolder%MyDB.bak”“\\ 192.168.16.55BackupDatabases”/ Z / V 
DEL“%LocalFolder%MyDB.bak”

此脚本执行以下操作(逐行):

    将变量设置为本地SQL备份目录。

    创建MyDB的SQL备份(使用Windows身份验证)到本地SQL备份目录。

    将本地备份文件复制到网络共享。

    删除本地备份文件。

    同样,这是首选方法,因为它的工作原理和备份失败的可能性是最小的,因为备份是在本地磁盘上创建。 但是,如果没有足够的磁盘空间来存储备份文件的本地副本,则此操作将失败。 在这种情况下,您需要添加额外的磁盘空间或直接备份到网络共享。

    直接备份到网络共享

    通常,当您尝试使用以下命令直接创建备份到网络共享时:

    SqlCmd -E -Q“备份数据库MyDB到磁盘=\\ 192.168.16.55BackupDatabasesMyDB.bak”

    你很可能会得到一个错误的行:

    消息3201,级别16,状态1,服务器JF,行1 
    无法打开备份设备\\ 192.168.16.55BackupDatabasesMyDB.bak。 操作系统错误5(访问被拒绝。)。 
    消息3013,级别16,状态1,服务器JF,第1行 
    BACKUP DATABASE异常终止。

    尽管使用Windows身份验证(-E开关)和Windows帐户作为通过Windows资源管理器访问和复制文件到共享的能力运行SQL备份命令,仍会出现此错误。

    此操作失败的原因是SQL命令在SQL Server服务运行的帐户的边界内执行。 当您在计算机上查看服务列表时,很可能您将看到运行为(登录为)列的SQL Server服务本地系统或网络服务,它们是没有网络访问权限的系统帐户。

    在我们的系统上,网络共享命令的备份失败,因为我们有SQL Server服务作为本地系统运行,再也无法获得任何网络资源。

    为了允许SQL直接备份到网络共享,我们必须将SQL Server服务作为可访问网络资源的本地帐户运行。

    编辑SQL Server服务的属性,并在“登录”选项卡上将服务配置为作为具有网络访问权限的备用帐户运行。

    单击“确定”后,您将收到一条提示,指示在重新启动服务之后,设置才会生效。

    重新启动服务。

    服务列表现在应显示SQL Server服务正在作为您配置的帐户运行。

    现在当您运行命令直接备份到网络共享:

    SqlCmd -E -Q“备份数据库MyDB到磁盘=\\ 192.168.16.55BackupDatabasesMyDB.bak”

    您应该会看到一个成功消息:

    处理数据库MyDB的152页,文件1上的文件MyDB。 
    为数据库MyDB处理2页,文件1上的文件MyDB_log。 
    BACKUP DATABASE在0.503秒(2.493 MB /秒)中成功处理了154页。

    使用备份文件现在在网络共享目录:

    网络共享注意事项请务必注意,备份命令希望能够直接连接到网络共享,而不会提示您输入凭据。 您配置要运行的SQL Server服务的帐户必须与网络共享具有可信连接,其中相应的凭据允许访问,否则可能会发生以下错误:

    消息3201,级别16,状态1,服务器JF,行1 
    无法打开备份设备\\ 192.168.16.55BackupDatabasesMyDB.bak。 操作系统错误1326(登录失败:未知用户名或密码错误。)。 
    消息3013,级别16,状态1,服务器JF,第1行 
    BACKUP DATABASE异常终止。

    此错误表示网络共享不接受帐户的用户名和密码,并且命令失败。


    另一个要记住的问题是备份直接执行到网络资源,因此网络连接中的任何打嗝可能会导致您的备份失败。 因此,您只应该备份到稳定的网络位置(即可能不是VPN)。

    安全隐患

    如前所述,使用在本地备份然后复制到网络共享的方法是首选,因为它允许您将SQL服务作为仅具有本地系统访问权限的帐户运行。

    通过将服务作为备用帐户运行,您打开了潜在的安全问题的大门。 例如,恶意SQL脚本可以在备用帐户下执行并攻击网络资源。 此外,对相应帐户(密码更改/到期或帐户的删除/禁用)的任何更改将导致SQL Server服务无法启动。

    如果您使用备用帐户运行SQL Server实例,请务必记住这些要点。 如果采取适当的预防措施,则这些不显示阻止程序,则应考虑添加额外的硬盘驱动器空间,然后实施本地备份和复制,以便可以使用本地帐户运行SQL服务。
参考技术A 这个简单,备份到网络上最快的实现方式就是使用工具“多备份”,可以备份到百度云、阿里云等各种云盘,很方便存储和恢复,还原也突破地域限制 参考技术B 只能备份到服务器上吧,然后复制到网络上其它机器上。 参考技术C 先备份到本地,然后用工具备份到其他网络上 参考技术D 不借用其他程序的情况下,可以备份到局域网中的其他机器上

如何将本地elasticsearch实例复制/复制/同步/备份到远程elasticsearch实例

我有一个弹性搜索集群,它只包含一个节点,并存在于本地网络中,用于将数据存储在从连接到同一本地网络中不同机器的传感器推送的索引(比如“helloworld”)中。现在这个设置部署在一个远程位置,让我说我无法从外部访问本地网络上的任何机器,因为这个本地网络没有公共IP(我也不想设置VPN)。我想将索引“helloworld”复制/备份/同步(实时/近实时不是一个问题)到在虚拟专用服务器(VPS)上运行的弹性搜索实例。如何实现这一点,以便通过VPS上的elasticsearch实例访问数据?

答案

你可以使用快照/恢复api。 1)创建索引的快照 2)将您自己的快照复制到您的vps 3)从其他集群恢复它。

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html#modules-snapshots

以上是关于如何将SQLSERVER数据库备份到网络上的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver2008 局域网内异机备份,该怎么解决

如何设置将SQL SERVER2012数据库备份还原到SQL SERVER2008上

sqlserver2005远程备份到本地数据库

导入SQLSERVER备份文件问题,谢谢!

如何将sql数据库自动定时的备份或更新到另一台电脑

SQLServer2008服务器数据库没有备份被分离 还分离失败,能恢复吗?