将来自多个DB的数据库数据复制到一个。数据复制
这涉及到数据复制,种类如下:将来自多个DB的数据库数据复制到一个。数据复制
我们有很多安装了SQL Express的站点,每个站点上都有一个“审计”数据库,其中第一个标准表单中有一个表生活简单:)
现在我需要从每个网站获取此表,并复制内容(例如,与日期时间值> 1/1/200 00:00,但这将明显改变)并复制它到SQL Server本身的一个大型“超级表”,它也具有主键作为站点名称(需要注入)和SQL Express表中的当前主键)
例如许多SQL Express的数据块与下表列
ID,定义名称,定义类型,日期时间,成功,NvarChar1,NVARCHAR2等等等等
而大超霸表需要有:
网站名,ID,定义名称,定义类型,日期时间,成功,NvarChar1,NVARCHAR2等等等等
凡大胆的项目是主键(一个或多个)
是否有微软(或非MS我想)应用程序/工具/事情管理器复制所有这些数据已经跨过,还是我们需要写我们自己的?
非常感谢。
您可以使用SSIS(随SQL Server一起提供)进行填充,可以通过设置变量来将连接字符串更改为各种数据库。我有一个循环遍历整个列表,并使用来自三个不同供应商的三个不同文件执行相同的过程。你可以通过不同的站点数据库来模拟循环。将想要复制审计数据的整个数据库列表放入一个表中,并在每次更改连接字符串时循环。
但是,您为什么要在每个站点上放置一个大型审计表?如果数据库中的每个表都随着更改的发生而填充审计表,那么审计表最终将成为性能的一个巨大问题。每一个插入,更新和删除都必须打到这个表格,然后你建议在其上添加一个导出。这对我来说似乎是一个锁定和僵局以及各种肮脏的保证结构。帮你一个忙,并将每个审计表限制在正在审计的表中。
需要考虑的事项: 链接服务器和sp_msforeachdb作为自己动手解决方案的一部分。 SQL Server复制(由Microsoft)(我相信它可以从SQL Server Express中提取数据) 可以从SQL Server Express实例中提取数据的SQL Server Integration Services。
就我个人而言,我会首先调查Integration Services。
祝你好运。
你可以用SymmetricDS来做到这一点。 SymmetricDS是开源的,基于Web的,独立于数据库的数据同步/复制软件。它使用Web和数据库技术近实时地在关系数据库之间复制表。该软件旨在扩展大量数据库,跨越低带宽连接并承受网络中断期。
截至目前,然而,你将需要实现(在Java中)的自定义IDataLoaderFilter扩展点添加额外的列。元数据将可用,因为您的SiteName将是external_id。
开源是一个有点不走我们的客户,并SSIS做什么,我需要开箱(一些学习),但感谢你的头了,因为我使用OS的东西对于所有其他可能的项目:) – adudley 2010-01-27 16:53:01
谢谢你指点我SSIS我会研究。 “审计”表不是对数据库发生的情况进行审计,而是审计系统上发生的情况。例如用户XYZ保存配置页面ABC。用户ASD已删除配置项目Y.用户B已登录。等 而巨型审计表将从所有网站的所有较小的副本,以便人们可以在适时的庄园运行报告(你看到的网络很慢!) 再次感谢。 这不是真有那么大 – adudley 2010-01-26 11:34:38