【问题标题】:Is it actually impossible to make a local backup from a remote SQL Server DB with SSMS Express?使用 SSMS Express 从远程 SQL Server 数据库进行本地备份实际上是不可能的吗?
【发布时间】:2015-08-15 18:12:22
【问题描述】:

我有一个正在开发中的网站,在一个便宜的主机上运行。我可以使用 SSMS Express 远程管理数据库...但我实际上无法在我自己的计算机上对该数据库进行本地备份?这是真的吗??

我无法在他们的服务器上进行备份,因为我不知道我的 FTP 访问点指向哪里。

在我的计算机上获取远程数据库的 .bak 文件的最简单、轻松的方法是什么?我一直在寻找几个小时,但没有答案。

下载 1GB 以安装 SSMS,但无法进行本地备份。难以置信。

【问题讨论】:

  • 数据库有多大?桌子太多了吗?还有很多行?
  • “我无法在他们的服务器上进行备份,因为我不知道我的 FTP 访问点指向哪里。” - 对我来说似乎是一个管理问题。请尝试消除标题中的偏见,并解释 SSMS Express 如何使这项任务“不可能”完成。 (如果有 SSMS Express 限制,请务必直接讨论并在标题中包含相关信息。)
  • 无法在我的计算机上创建备份文件。它必须写入远程 SQL Server 文件系统,然后复制到我的 PC(例如,通过 FTP,这是我唯一的访问权限。)我不知道远程计算机上的物理路径是什么。
  • 备份由 SQL Server 引擎而不是 SSMS 执行,因此备份路径需要位于 SQL Server 引擎可以写入的位置。您可以在 SSMS 中做的最好的事情是编写数据库对象(可能包括数据)和/或使用导入/导出向导。
  • 谢谢马丁。太疯狂了,SSMS Express 不允许您导入比 SQL Server 2005 数据库晚的任何内容。

标签: .net sql-server


【解决方案1】:

好吧,如果您像我一样被困在无法从远程 SQL Server 机器的实际文件系统上的备份文件中写入或复制的问题上(我认为这不应该是那么不寻常),并且如果您的数据库在开发站点上相当小/简单,并且您只需要获取数据的副本,那么也许这对您有用。

(至少这可能在 2015 年夏季 SSMS Express 的当前版本中起作用。未来版本无疑会改变对话框布局或向导步骤,因此这可能很快就会过时。)

在 SSMS Express 中将数据库导出为纯文本 SQL 命令:

右键单击数据库图标

任务 -> 生成脚本...

简介 -> 永远跳过

选择对象 -> 在这里考虑你想要什么。您可能希望它重新创建数据库和用户,或者您可能只需要选定的表数据(即,不是 SQL Server 用户表。)当您的远程数据库使用 SQL 身份验证并且您的本地开发数据库使用 Windows 身份验证时,这很有用.或者,当您已经创建了具有权限的数据库时,您可以按照自己的方式设置权限,只需将一些表导入其中。

设置脚本选项 -> 非常明显的选项除了...

-> 高级 -> 要编写脚本的数据类型 -> 架构和数据

默认为“仅架构”,您不会获取数据库数据。

“Schema Qualify Object Names”默认为 true,您可能希望将其关闭。

(顺便说一下,当您下次生成脚本时,所有这些设置都将被忘记。因此,记住您单击的所有内容很有趣。)

总结 -> 下一步

然后您将获得可执行 SQL 文本格式的数据库的本地副本。

通过 SSMS 将 SQL 导入本地数据库

连接到您的本地 SQL Server。创建/选择要导入到的数据库(除非您导出了包含数据库创建命令的脚本。)

文件 -> 打开 -> 文件...

打开您保存的 SQL 文件。你应该能够执行它。您可能需要返回并调整该过程,直到它以您需要的方式输出 SQL。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多