6

我在不同的虚拟主机上有一对 SQL Server,我正在寻找一种方法来使用另一个服务器定期更新一个服务器。这就是我要找的东西:

  1. 尽可能自动化 - 理想情况下,一旦设置完成,我无需参与。
  2. 将多个数据库完全(包括任何架构更改)从一台服务器推送到另一台服务器
  3. 在不破坏我的进程的情况下自由地允许源服务器上的更改。出于这个原因,我不想使用复制,因为每次源更新时我都必须打破它,然后重新创建发布和订阅
  4. 一个数据库大小约为 4GB,包含二进制数据。我不确定是否有办法将其导出到脚本,但如果我这样做了,那将是一个庞大的文件。

最初,我正在考虑编写一些东西,对每个数据库进行预定的完整备份,完成后将备份从一台服务器 FTP 到另一台服务器,然后新服务器将其拾取并恢复。我能看到的唯一缺点是在开始传输之前无法知道备份是否已完成 - 这些备份可以同步完成吗?此外,正在刷新的服务器是我们的测试服务器,所以如果移动数据涉及一些停机时间,那很好。

有没有人有更好的主意,或者我目前正在考虑最好的非复制方式?谢谢大家的帮助。

更新: 我最终设计了一个自定义解决方案,使用 BAT 文件、7Zip、命令行 FTP 和 OSQL 完成此任务,因此它以完全自动的方式运行并聚合来自全国十几个服务器的数据。我在博客条目中详细介绍了这些步骤

感谢您的输入!

4

6 回答 6

4

这是 SSIS/DTS 的主要目的。我经常用 SSIS 来做这件事。如果您之前没有使用过 SSIS,那么sqlis.com是一个很好的起点(除非您使用的是 SQL2000,否则您将使用 DTS,在这种情况下,请从sqldts.com开始)。也有很多关于这个主题的好书。

但绝对值得您花时间研究学习 SSIS。阅读您的问题,SSIS 是迄今为止 IMO 最好的路线。您不需要编写一行代码,它具有内置的所有工具来完成这项工作。您也可以安排它按时间间隔运行。

于 2009-02-20T03:45:05.507 回答
3

我会为此编写一个 .NET 控制台应用程序。进行备份就像打开 SQL 连接并执行“BACKUP DATABASE [] TO DISK = N'' 一样简单。然后使用内置的 .NET FTP 库将其推送到另一台服务器。您甚至可以使用sharpziplib先压缩它。然后把它扔到一个计划任务中。

另一方面,设置一个 Windows 服务,它使用FileSystemWatcher 监视ftp 传输到的文件夹,然后在完成后恢复备份。

于 2009-02-20T03:30:09.753 回答
2

我发现了一个开源工具,有些人可能会觉得它很有用,并且可以根据他们的需要进行修改。

SQL Server 数据库复制工具
“通过备份将 sql server 数据库从一台服务器复制到另一台服务器,将备份文件复制到目标服务器并还原数据库。”

HTH 有人搜索此主题。

于 2010-04-20T12:50:46.703 回答
0

您可以通过分离每个数据库并复制 MDF/LDF 文件来获得更快的“备份” - 这确实意味着您的数据库在短时间内处于脱机状态。除此之外,我会同意克里斯的评论。

于 2009-02-20T03:37:49.563 回答
0

使用复制数据库向导。- 右键单击​​源数据库 - 选择任务 - 复制数据库。

在指南中,您也可以选择为作业创建计划。

于 2018-03-23T16:05:03.490 回答
-1

使用导入和导出向导创建新表或附加到现有表。您还可以使用查询在向导中进行数据传输..

于 2012-03-26T13:48:11.983 回答