AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 39930
Accepted
Martin Marconcini
Martin Marconcini
Asked: 2009-07-14 07:26:12 +0800 CST2009-07-14 07:26:12 +0800 CST 2009-07-14 07:26:12 +0800 CST

启用 SQL Server 以在远程机器/驱动器上进行备份

  • 772

我有一个 SQL Server(2000、2005 和 2008),我想使用 SQL 代理(甚至是一个简单的备份数据库 'xxx' 到磁盘 = 'yyy')来备份到远程驱动器。

即:我在 SQL 机器中有一个映射驱动器,例如:“M:”映射到 \\otherbox\someshare

默认情况下,SQL Server 不允许您备份到此类驱动器,但我认为有一种方法可以启用它。有人可以指出我的文档吗?

提前致谢。

sql-server backup mappeddrive
  • 6 6 个回答
  • 24118 Views

6 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-07-14T07:37:10+08:002009-07-14T07:37:10+08:00

    指定目标时使用 UNC 路径——SQL 代理没有“映射”“驱动器”的概念。

    此外,SQL 代理通常作为“本地服务”或“本地系统”运行,因此无权访问其他计算机上的远程共享。

    你有几个选择:

    • 将 SQL 代理作为域中的角色帐户运行。授予该帐户写入您希望存储备份的目录/共享的权限。

    • 将 SQL 代理作为“网络服务”运行。它将使用运行服务的计算机的域计算机帐户向共享服务器进行身份验证。授予该帐户写入您希望存储备份的目录/共享的权限。

    • 如果您没有域,请在托管 SQL 代理的计算机和托管备份文件的计算机上创建一个具有相同用户名和密码的帐户。将 SQL 代理更改为作为此“角色”帐户运行,并授予该帐户写入您希望存储备份的目录/共享的权限。(“穷人的领域”……)

    • 8
  2. Bogdan_Ch
    2009-07-14T08:23:52+08:002009-07-14T08:23:52+08:00

    我完全同意关于 UNC 路径的两个答案。

    我还想补充一点,即使使用映射驱动器,您也有一个简单的解决方法。您可以对服务器的任何正常驱动器执行备份。然后你可以添加

    xp_cmdshell 'XCOPY [source] [destination] \flags'
    

    您运行的作业或 SQL 脚本的 SQL 命令。

    使用 xp_cmdshell 您可以做更多事情 - 例如运行外部存档命令行工具,如 7z 以在将文件复制到映射驱动器之前压缩文件(当远程连接太慢时......)

    PS:忘了说 xp_cmdshell 可以通过使用外围配置工具和执行 sp_configure 来启用和禁用(默认情况下它是禁用的)

    • 4
  3. Yepeekai
    2019-01-16T08:42:24+08:002019-01-16T08:42:24+08:00

    如果 SQL Server 不在域帐户下运行,您可以按照此stackoverflow 答案中的描述为 sqlserver 帐户(不是您的帐户)映射网络驱动器

    首先你需要启用 xp_cmdshell

    -- allow changes to advanced options 
    EXEC sp_configure 'show advanced options', 1
    GO
    -- Update currently configured values for advanced options.
    RECONFIGURE
    GO
    -- To enable xp_cmdshell
    EXEC sp_configure 'xp_cmdshell', 1
    GO
    -- Update currently configured values for advanced options.
    RECONFIGURE
    GO
    

    然后,您可以使用以下方法映射驱动器:

    EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'
    

    最后,您可以备份到该映射驱动器:

    BACKUP DATABASE myDB TO DISK = 'z:\file.bak'
    
    • 2
  4. Sam
    2009-07-14T07:35:07+08:002009-07-14T07:35:07+08:00

    您的代理需要访问网络共享。它们不需要事先映射。

    你这样做:

    BACKUP DATABASE myDB TO DISK = '\\machine\share\dir\file.bak'
    

    我相信,如果拥有该作业的用户是 sql sysadmin,它会在代理下运行,否则它会以非 sysadmin 用户身份运行。

    • 1
  5. Steve Jones
    2009-07-15T14:07:00+08:002009-07-15T14:07:00+08:00

    请记住,SQL Server 非常不能容忍网络延迟。如果它们发生并且它们倾向于发生,则备份将失败。对于生产环境,我完全不推荐这种做法。

    最好在本地备份,然后复制。

    • 0
  6. Kimon
    2020-04-18T00:43:45+08:002020-04-18T00:43:45+08:00

    最简单的方法是通过磁盘管理在网络共享上创建一个 .vhd 驱动器并为其分配驱动器号。SQL 无需任何修改即可访问此驱动器。

    只需在启动时将 diskpart.exe 脚本添加到调度程序,以便在重新启动时自动附加。

    示例 select vdisk file="\{ip address/server}{networkshare}{filenamep.vhd}" attach vdisk // 记住分配给的最后一个驱动器号。

    • 0

相关问题

  • 10TB数据和3台服务器的备份解决方案

  • 最佳混合环境(OS X + Windows)备份?[关闭]

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve