在不同数据库模式之间同步数据的最佳技术?

2024-01-27

我有一个现有的 SQL Server 2005 数据库,用于运行我们的会计/库存应用程序。我们正在考虑使用一个新的在线订购框架 - 它有自己的数据库。

如果我们使用这个新框架,我们将需要几乎实时地将在线订购数据(库存、价格、订单、客户)传输到我们现有的库存数据库或从我们现有的库存数据库中传输。数据传输不必是实时的,但必须是快速的。两个数据库都将位于 SQL Server 中。

所以我的问题是......在两个具有不同模式的数据库之间来回传输数据的最佳方法是什么?

复制? SSIS?你有什么建议,为什么?

任何帮助,将不胜感激!


业务规则是困难的部分

单向同步?双向同步?实时推送?每晚更新?转储并重新加载?比较和更新?解决冲突?哪一方获胜?以一种方式推送只读信息,以另一种方式订购信息?更改/取消/等怎么样?订单状态会被推迟吗?

你可以在这里看到我要去哪里。技术是次要问题。

由于业务规则问题,并且因为两个系统具有不同的模式(和不同的目的),这不是标准的数据移动,并且大多数“标准”答案(复制、日志传送等)都不可行。

有一些框架旨在帮助解决这个问题,例如微软BizTalk http://www.microsoft.com/biztalk/en/us/default.aspx or 抄写员的洞察力 http://www.scribesoftware.com/scribe-insight.asp。但这些既麻烦又昂贵。

使用 C# 或您喜欢的语言基于 SQL 触发器或计划推送(取决于您的需要)创建自定义队列系统并不太困难。这可能就是我会走的路线。这可能会涉及到third“传输”数据库用于保存一侧所做的更改队列,以及一个用于应用业务规则并将数据推送到另一侧的模块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不同数据库模式之间同步数据的最佳技术? 的相关文章

  • 添加ssrs报告描述

    无论如何 我可以添加一个在执行前显示在报告中的 ssrs 报告描述吗 我用谷歌搜索 大多数人说这是不可能的 但必须有一种方法来调整它 对吗 对于仍然需要添加用户可以在执行报告之前阅读的报告描述的任何人 我在我使用的两个 SSRS 版本 20
  • SQL Server 超时是否被记录?

    SQL Server 超时 特别是 SELECT 查询 是否记录在 ERRORLOG 文件中 背景是一位客户的网站偶尔会出现 请求超时 消息 我认为超时是由数据库超时引起的 相关错误日志中没有超时错误 不可以 您需要使用 SQL Profi
  • 如何在 SQL Server 2000 中传递大于 varchar(8000) 的字符串参数?

    如果将字符串参数定义为大小大于 8000 则会出现编译错误 e g The size 9000 given to the type varchar exceeds the maximum allowed for any data type
  • 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

    执行以下 SQL 查询 SELECT Account Amount AS Deposit 0 00 AS Withdrawal Date FROM Deposits WHERE Account Account UNION SELECT Ac
  • 事件源和 SQL Server 多个关系表

    我们使用 SQL Server 2016 的事件源 我们有完整的客户产品应用程序 每个应用程序都标记为CustomerId并在事件商店中获取单个指南行项目 这是写入事件存储指南的主要标识符 产品应用程序附带许多不同的关系事物 没有引导 但有
  • 如何在存储过程中调用存储过程(带2个参数)?

    我有具有相同参数 服务器名称和日期 的存储过程 我想编写一个存储过程并在该 SP 中执行它们 称为 SP All CREATE PROCEDURE dbo SP All AS BEGIN exec sp 1 myDate datetime
  • SQL 连接中的多个条件

    如何指定多个条件SQL加入 我知道A key B key除此之外是强制性的 以下对于指定多个条件是否正确SQL ON A key B key and or cond1 and or cond2 etc OR ON A key B key w
  • 什么时候空值在列中“安全”?

    设计数据库时是否存在允许列为空与 3nf 规范化的一般经验法则 我有一个表 其中的列主要由空值 85 组成 但表大小不超过 10K 记录 不是很大 它主要用于日志记录和记录保存 因此大多数事务将是插入和选择 而不是更新 我试图同时考虑性能和
  • 尝试划分数据时出现除零错误

    这是我的代码 SELECT CASHIER ID AS SERVER CONVERT VARCHAR 10 DATETIME 111 AS DATE SUM GRAND TOTAL AS TOTAL SALES SUM NUM PEOPLE
  • 使用 C# 创建 SQL Server 备份文件 (.bak) 到任何位置

    我正在尝试用 C 编写简单的应用程序 它允许我备份 压缩并通过 ftp 发送我的 SQL Server 数据库 我遇到的一个问题是 如果我尝试在 C Program Files Microsoft SQL Server MSSQL 3 MS
  • 为什么根据检索顺序从 ADO Recordset 中获取空值而不是正确值? (DB表有NTEXT值)

    我有一个数据库表有两个datetime我需要使用 VBScript 从 ASP 页面读取可为空的列 这是我写的代码 Set cmd Server CreateObject ADODB Command With cmd ActiveConne
  • 如何应用非标准 SQL 列排序顺序?

    考虑下表Persons Key Name Type Date Pack 1 Pocoyo KIND 30 11 2011 1 2 Erik MAN 10 10 1980 1 3 Alinda VROUW 12 12 1991 1 4 Pin
  • 在sql server中透视固定的多列表

    我有一个需要为报告服务进行旋转的表格 DateCreated Rands Units Average Price Success Unique Users 2013 08 26 0 0 0 0 0 2013 08 27 0 0 0 0 0
  • 良好的安全实践和自动身份范围管理是否相互排斥?

    我正在尝试使用自动身份范围管理 http msdn microsoft com en us library ms152543 aspx sectionToggle1 但是 确保我的用户可以在具有标识列的表中插入记录的唯一方法是使它们db o
  • 如何从 C# 连接到 SQL 数据库?

    我正在尝试为我的家庭网络编写一个本地程序管理和安装系统 并且我认为我已经确定了技术 C NET WPF 客户端 Lua 用于安装脚本支持 通过 LuaInterface SQL Server Express 用于维护程序数据库 但是我不确定
  • 基于现有数据库表创建@TableVariable?

    我想在存储过程中使用表变量 但这是一个问题 我的表非常大 声明表变量也需要很长的代码来编写和调试 请告诉我一些快速声明表变量的方法 是否可以基于现有表创建表变量 或者请分享任何创建用于创建表变量的代码的提示 Thanks 右键单击表格 选择
  • CSV 数据中的逗号

    我有一个 CSV 文件 我将其直接导入到 SQL Server 表中 在 CSV 文件中 每一列都用逗号分隔 但我的问题是我有一个 地址 列 并且该列中的数据包含逗号 所以发生的情况是 地址列的一些数据将转到其他列 并将导入到 SQL Se
  • 制作 SQL Server 转储并将该转储导入另一个 SQL Server 的最佳(最简单)方法

    我想从一台服务器在 SQL Server 中实现数据库导出 转储 并将该转储导入到另一台 SQL Server 中 并且不一定使用相同的架构名称 例如 如果我准备了一个数据库 其中包含用于为新客户实施新数据库的所有数据集 则该数据库名为 D
  • 从用户定义的函数调用 sql

    SQL Server 2008 是否可以从用户定义函数中的变量执行 sql 或者使用存储过程是唯一的解决方案 我有一条sql语句保存在variabele中 mySqlStatement select from someTable 我想从用户
  • 通过SSIS动态创建Excel表

    在 SSIS 中使用执行 SQL 任务 创建的 Excel 文件 包含多个列和不同的数据类型 这里的问题是 INT Money 列在 Excel 中显示为文本列 即使 Excel 表是使用 Int Money 数据类型创建的 我尝试过使用双

随机推荐

  • 如果 POJO 对象中的可变字段存储在并发HashMap 中,那么该字段是否是线程安全的?

    如果 POJO 对象中的可变字段存储在并发HashMap 中 那么该字段是否是线程安全的 或者我是否需要用锁保护字段或使它们不稳定以确保所有线程都能看到更新 将字段标记为易失性是否足以确保所有线程都能看到更新 如果存储在并发HashMap中
  • java.security.NoSuchAlgorithmException:算法 x25519 不可用

    我收到这段代码的 javax net ssl SSLException 连接重置 ReadableByteChannel rbc Channels newChannel url getInputStream 但仅当在使用 Open JDK
  • Common Lisp:编译与评估

    在带有 sbcl 的 Emacs Slime 上 一旦我在文件中定义了一个函数 或多个 我有两个选择 评估 例如与 C M x eval defun 汇编 例如使用 C c M k 编译文件 第二个也生成一个 fasl 文件 两者有何区别
  • 如何找到带有标题信息的 ELF 文件/图像的大小?

    我需要找到精灵图像的大小进行一些计算 我尝试过在 Linux 上使用 readelf 实用程序 它提供了有关标题和部分的信息 我需要知道精灵的确切文件大小 总体而言 如何从标题信息中找到 ELF 的大小 或者是否有其他方法可以在不读取完整图
  • Java with ajax - ERR_EMPTY_RESPONSE - 服务器处理请求时 Ajax 响应抛出错误

    我在浏览器控制台中收到以下错误 无法加载资源 net ERR EMPTY RESPONSE 我的 ajax 调用适用于所有按钮点击 但是这个error仅用于一个按钮 可以说testExt按钮 单击这些按钮时 后台脚本将运行并执行一些测试 唯
  • 在 PHP 中将实例方法作为参数传递

    我想创建一个监听器类 class Listener var listeners array public function add callable function this gt listeners function public fu
  • Android应用程序中限时启用按钮

    这是一个示例 我希望能够在用户操作后在有限的时间内 假设 30 分钟 启用我的应用程序中的按钮 30 分钟后 此按钮将再次禁用 在 Android 中实现这一目标的最佳方法是什么 因为用户可能会重新启动设备或关闭应用程序 所以我不能简单地使
  • 如何使 LibGDX 桌面默认全屏显示

    我想知道如何使我的桌面应用程序在启动时全屏显示 我是 LibGDX 的新手 非常感谢任何帮助 谢谢 只需定义fullscreen你的领域LwjglApplicationConfiguration LwjglApplicationConfig
  • 使用 @require_POST 时如何在 Django 中显示 HTTP 状态 405(不允许的方法)的自定义错误页面

    我的问题很简单 当使用 Django 时 如何显示 HTTP 状态 405 方法不允许 的自定义错误页面 require POST装饰师 我正在使用django views decorators http require POST装饰器 当
  • 将 GregorianCalendar 与 SimpleDateFormat 结合使用

    因此 我一直在绞尽脑汁地思考这个 应该是 简单的练习 以使程序将日期字符串转换为GregorianCalendar对象 格式化它 完成后再次以字符串形式返回 这是程序的最后一点 它从文件中获取大量文本 将其分解为单独的记录 然后将记录分解为
  • 如何检查 ArrayList 是否包含另一个 ArrayList 的任何元素? [复制]

    这个问题在这里已经有答案了 有没有办法确定 ArrayList 是否包含不同 ArrayList 的任何元素 像这样 list1 contains any element of list2 正在循环遍历所有元素list2并一一检查元素是唯一
  • 两人网格穿越游戏

    Given a M N两名玩家的网格和位置p1 and p2在网格上 有 n 个球放置在网格上的不同位置 设这些球的位置为B 1 B 2 B 3 B n 我们需要计算曼哈顿最短距离需要挑选所有的球 应按升序挑选球 即如果B i 之前被挑选过
  • 如何以编程方式授予用户权限?

    我知道我可以授予权限 host 4502 useradmin 当我双击用户登录并转到Permissions tab 我想在部署内容包时授予权限 是否可以 当您向用户授予特定节点 路径的权限时 它基本上将权限存储在rep policy节点下面
  • 检查Python中的字符串是否只包含字母

    我有这种形式的字符串 字符串空间 字符串空间 字符串 test test test1 test2 test test1 我想要的是所有三个字符串都只有字母 如果没有则返回 false 我尝试了 isalpha 但没有给出正确的结果 哎呀 这
  • 如何增加sqlplus列输出长度?

    我有一些查询要从架构中找出某些对象的 ddl 我得到的结果列在查询中间被截断 如何增加列的宽度 我尝试过 SET SERVEROUTPUT ON SIZE 1000000 SET LINESIZE 50000 set pagesize 50
  • Google Play 商店:如何上传更多 APK 以支持不同的 CPU 架构

    我希望每个 APK 支持不同的 CPU 架构 例如 ARM x86 和 MIPS 如何上传更多APK 我已经切换到高级模式 但是将新 APK 上传到 Alpha按钮取代了以前的APK 附件是我的控制台在 APK 部分的外观 将感谢您的帮助
  • ts-node 找不到我的类型定义文件

    当我跑步时ts node node modules jasmine bin jasmine我收到这些错误 tsc globals ts 7 12 error TS2304 Cannot find name SugarcubeState 7
  • 单精度浮点无法表示的最小整数

    所以我知道单精度浮点不能表示的最小正整数是2 23 1 1 16 777 217 我们如何知道我们使用 2 23 1 1 我知道有一个隐含的 1 而 23 是尾数中表示的位数 但为什么会这样呢 我们怎么知道我们使用 2 23 1 1 IEE
  • 在运行时更改类属性中的值

    如果我有一堂这样的课 Attr Blah Data Blah public class Test SuperClass 有没有办法可以在运行时更改类实例的属性值 例如在伪代码中 SuperClass test new Test test A
  • 在不同数据库模式之间同步数据的最佳技术?

    我有一个现有的 SQL Server 2005 数据库 用于运行我们的会计 库存应用程序 我们正在考虑使用一个新的在线订购框架 它有自己的数据库 如果我们使用这个新框架 我们将需要几乎实时地将在线订购数据 库存 价格 订单 客户 传输到我们