按计划将SQL Server数据从一台服务器复制到另一台服务器

问题描述 投票:5回答:6

我在不同的webhosts上有一对SQL Server,我正在寻找一种方法来定期使用另一台服务器更新一台服务器。这是我正在寻找的:

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

最初,我正在考虑编写一些需要对每个数据库进行计划完全备份的内容,将备份从一台服务器FTP到另一台服务器,然后新服务器选择并恢复它。我能看到的唯一缺点是,在开始传输备份之前无法知道备份是否完成 - 这些备份是否可以同步完成?此外,正在刷新的服务器是我们的测试服务器,因此如果移动数据涉及一些停机时间,那很好。

有没有人有更好的想法,或者我正在考虑最好的非复制方式?感谢大家的帮助。

更新:我最终设计了一个自定义解决方案,使用BAT文件,7Zip,命令行FTP和OSQL完成此操作,因此它以完全自动的方式运行,并聚合来自全国十几个服务器的数据。 I've detailed the steps in a blog entry

感谢您的输入!

sql-server sql-server-2005 replication
6个回答
3
投票

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

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


4
投票

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

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


2
投票

我找到了一个开源工具,有些人可能觉得它很有用,可以根据自己的需要进行修改。

SQL Server Database Copy Tool “通过备份将sql server数据库从一台服务器复制到另一台服务器,将备份文件复制到目标服务器并恢复数据库。”

HTH有人在搜索这个主题。


0
投票

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


0
投票

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

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.