加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – SQL Server数据库同步

发布时间:2020-12-24 21:41:58 所属栏目:编程 来源:网络整理
导读:问题定义 我们的用户需要能够查询最新的数据库.数据可能会持续24小时,这是可以接受的.使用生产副本获取和保持第二个数据库最新的最低成本方法是什么?有没有我没想过的方法? 工作量 我们有第三方应用程序,用于监控股票交易活动.在白天,作为各种工作流程的一
副标题[/!--empirenews.page--]

问题定义

我们的用户需要能够查询最新的数据库.数据可能会持续24小时,这是可以接受的.使用生产副本获取和保持第二个数据库最新的最低成本方法是什么?有没有我没想过的方法?

工作量

我们有第三方应用程序,用于监控股票交易活动.在白天,作为各种工作流程的一部分,发生了很多小变化(是的,这种交易是有效的.不,这是可疑的,等等).晚上,我们执行大型集合操作(??加载前一天的交易).

目前的解决方案和问题

我们使用database snapshots.晚上10点我们删除并重新创建快照.然后ETL处理开始.这显然对我们的磁盘造成负担,但允许我们的用户在不锁定数据库的情况下查询数据库(他们使用Access前端).他们在深夜和清晨使用它,因此他们会注意到停机时间.

这种方法的问题是双重的.第一个是,如果夜间处理失败,并且这并不是非常罕见,我们可以恢复数据库,从而导致快照被删除.另一个问题是我们的处理时间正在超过我们的SLA.我们正在尝试通过与供应商合作解决这个问题,因为他们发现了写得不好的查询并且缺乏索引.数据库快照也是这种放缓的罪魁祸首,正如它存在时的速度差异所证明的那样 – 令人震惊,我知道.

考虑的方法

聚类

我们已启用数据库群集,但这并未满足使数据可用的需求,并且通常使管理员的生活变得复杂.它已被关闭.

SQL Server复制

我们上周开始关注replication.我们的理论是,我们可以获得第二个目录并与生产数据库同步.在ETL开始之前,我们将切断连接,并且只有在ETL过程完成后才重新启用它.

管理员从Snapshot Replication开始,但他担心需要多天的高CPU使用率来生成快照以及所需的磁盘消耗.他表示,在将所有数据发送到订户之前,它似乎将所有数据写入物理文件,因此我们的.6TB数据库的存储成本将达到1.8TB.此外,如果生成快照需要多天,那么它将不适合所需的SLA.

阅读好文章之后,似乎Snapshot可能是初始化订阅者的方式,但之后我们要切换到Transactional Replication以使其保持同步.我假设打开/关闭事务复制不会强制完全重新初始化?否则,我们会打破时间窗口

数据库镜像

我们的数据库处于完全恢复模式,因此database mirroring是一个选项,但我对它的了解甚至比复制更少.我确实发现SO answer表明“数据库镜像阻止数据直接访问,镜像数据只能通过数据库快照访问”.

记录运输

听起来像log shipping也可能是一个选择,但这是我一无所知的另一件事.它是一个成本较低的解决方案(实施和维护)吗?基于Remus的comment“日志传送允许对副本副本进行只读访问,但在应用下一个备份日志时(例如每15-30分钟)将断开所有用户的连接.”我不确定停机时间会转化多久,这可能会让用户产生一些焦虑.

MS同步

我上周末才听说过使用Sync,还没有调查过.我讨厌为这种问题引入一种具有高可见性的新技术,但如果这是最好的方法,那就这样吧.

SSIS

我们在这里做了大量的SSIS,所以生成几百个SSIS包来保持二级同步是我们的一个选择,虽然是一个丑陋的.我不喜欢这样做,因为这是一个很大的维护开销我宁愿我的团队也没有.

SAN“神奇”快照

在过去,我听说我们的管理员使用一些SAN技术来对整个磁盘进行即时备份.也许有一些EMC魔法可以用来制作mdf / ldf的uberquick副本,然后我们可以分离/附加目标数据库.

备份还原

我认为我们每周进行一次完整备份,每晚差异,每15分钟进行一次tlog.如果用户可以使用3-4小时的中断进行完全恢复,我想这可能是一种方法.

约束

Windows 2008 R2,SQL Server 2008 R2(企业版),VMWare v5企业版,EMC SAN存储,其中驱动器映射到vmdk文件,commvault处理备份和源目录中的.6TB数据.这是我们内部托管的第三方应用程序.通常不赞成修改它们的结构.用户不能没有查询数据库,并且主动识别他们监控的表以完成他们的工作而拒绝受到限??制.

我们的DBA目前是纯粹的承包商.全职人员已经启航,我们还没有更换它们.应用程序管理员不熟悉SQL Server问题,我们有一个存储/ VM管理员团队可以帮助/阻碍这项工作.开发团队目前没有参与,但可以根据方法入伍.因此,更容易实现和维护解决方案.

我,我是在hosue的开发方面,所以我只能提出方法,而不必处理管理方面的问题.因此,在管理员马鞍上没有时间,我犹豫是否说一种方法优于另一种方法 – 根据论文,这一切看起来都很棒.我完全愿意为你们提出任何方向,因为正如我所看到的,它只会让我作为一名数据库专业人士更有价值. I have a wheelbarrow but no holocaust cloak available.

相关问题

> https://stackoverflow.com/questions/525637/what-are-the-scenarios-for-using-mirroring-log-shipping-replication-and-cluste
> https://stackoverflow.com/questions/434982/mirroring-vs-replication
> https://stackoverflow.com/questions/4303020/sync-databases-mirroring-replication-log-shipping
> https://stackoverflow.com/questions/4303020/sync-databases-mirroring-replication-log-shipping
> http://nilebride.wordpress.com/2011/07/24/log-shipping-vs-mirroring-vs-replication/

编辑

解决@ onpnt的问题

数据延迟接受

用户当前查看最多24小时后的数据.该数据仅为2200年的当前数据

给定分钟,小时和日期的数据量变化
不知道如何量化.营业时间,每小时可能有数百次更改.每夜处理,每个工作日数百万行

连接到辅助

内部网络,独立的虚拟主机和专用存储

读取辅助实例的要求

Windows组将具有对所有表的辅助读取访问权限

辅助实例的正常运行时间

对正常运行时间要求没有明确的定义.用户希望它始终可用,但他们愿意为此付费,可能不是那么多.实际上,我说一天中的23个小时就足够了.

更改现有架构和所有对象

不经常的修改,可能每季度一次用于表对象.也许每月一次代码对象.

安全

没有特殊的安全需求.生产权限将与副本的权限相匹配.虽然我想到了,但我们可以撤销用户对prod的读取权限,只允许他们阅读副本……但不是必须的.

@darin海峡

恢复快照可能是一个选择,但我认为有一些原因他们没有追求它.我会咨询管理员

@cfradenburg

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读