2011-05-20 47 views
0

我有两个驻留在不同服务器上的数据库(db1,db2),db1驻留在dbserver1,db2,dbserver2上。使用触发器的SQL Server复制

现在我想将数据从db1(旧模式)复制到db2 REAL TIME中的新模式。这里最好/最有效的方法是什么?

我脑海中首先想到的是触发器,是否可以在db1中触发插入/更新记录到db2?还有其他方法吗?感谢..

  [db1.OldSchema] => [db2.NewSchema] 

补充:这只有一种方式同步,因为DB2将只在报告中使用..

+0

...任何人? – dotnetlinc 2011-05-20 14:15:51

+2

我建议查看各种内置的复制解决方案。您已经要求“实时”,但我怀疑您需要这样做,而且如果您有要求,比如说“在5分钟内”(尤其是如果您说这是为了报告目的),它会便宜很多。您还需要考虑如果DB2由于某种原因(例如网络,服务器重新启动等)无法从DB1访问而发生的情况。使用基于触发器的解决方案时,DB1将变得无法使用。 – 2011-05-20 14:21:44

+0

你说得对,这不是真正的实时,实际上我们需要每隔1小时同步一次数据,看起来像使用SSIS是要走的路。谢谢... SSIS是否兼容从SQL 2000到2008的数据复制? – dotnetlinc 2011-05-20 14:27:34

回答

0

这个问题可能是最适合Database Administrators,但简短的回答是,有多种方法你可以使用:

  1. 计划的备份/恢复(如果你 高兴地吹走上 每个恢复你的第二DB)
  2. 日志传送(通行证在改变自上次更新)
  3. SSIS包(如果你需要更改数据库即结构:变换,那么这是一个很好的方法,如果结构是相同用途的其他方法之一)
  4. Replication (因为你似乎想要1种方式,我建议事务复制,这可能是最接近实时的,但不应该轻易进入,因为它会影响你如何使用这两个数据库)