新足迹

 找回密码
 注册

精华好帖回顾

· 自己动手安装budget雨水箱 (2008-4-19) 大球球 · 偶又来晒东西啦---目录在第一页 (2007-6-16) yanyan
· 姜汁燕窝炖奶 (2009-5-29) tinanakoo · 写在己亥年的除夕夜——灾难和勇气,悲悯与希望 (2020-1-24) 虞宅与美丽
Advertisement
Advertisement
查看: 2340|回复: 26

[IT] 求教:新建的Database 跟源Database 的同步问题 [复制链接]

2020年度勋章

发表于 2021-9-18 11:40 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
请教足迹的各位大神!

我们有一个业务系统,它的database 是用sql server, 我们写了很多query去run daily and monthly report. 但是因为常常要在工作时间run report, 影响了前线同事使用这个业务系统的 performance, 所以我们用另一个server 建起一个纯粹run report 的database (也是在sql server), 因为resource 的问题,我们又不能每次refresh (sync data) 就把源数据库的每个table都整个的copy过来新的数据库,我们只能做incremental update,根据源数据里面的update date time。

问题就在我们常常发现有些数据UPDATE会被missed掉,可能是因为那个源数据的update date time有些不准确,没有真实反映update 的时间点,但这个我也不是很确定是不是,因为很难test.

想请教一下这个问题怎么解决?或者说你们会不会用完全不同的方法解决这个跑报表而不影响用户使用系统的问题?

谢谢啦!
Advertisement
Advertisement

发表于 2021-9-18 16:27 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 pan123au 于 2021-9-18 15:29 编辑

这个问题,太容易了。 让你们 DBA 做个  mirroring db 或者 AlwayOn HA,  你们的DBA 一定会。

2020年度勋章

发表于 2021-9-18 21:35 来自手机 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
但是我们没有DBA, mirroring db 怎么做,能说个大概吗?谢谢!

发表于 2021-9-18 21:46 来自手机 |显示全部楼层
此文章由 matutu22 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 matutu22 所有!转贴必须注明作者、出处和本声明,并保持内容完整
直接谷歌搜sql server master slave不都有吗 很简单啊。。

发表于 2021-9-18 21:52 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
哇,玩数据库木有DBA或者database developer也是罕见的。你要么每次把整个生产环境都export出来,然后把报表库的给备份一下,然后删光光来个import。

incremental update靠写代码实现其实需要一定的技巧,属于ETL范围的了。

发表于 2021-9-18 21:54 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Beast_Carrot 发表于 2021-9-18 20:35
但是我们没有DBA, mirroring db 怎么做,能说个大概吗?谢谢!

蛮烦的,确实是DBA加系统管理员的活。

DBA不是很常见的,你上来碰运气问可能碰不到。
Advertisement
Advertisement

发表于 2021-9-18 22:14 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 pan123au 于 2021-9-18 21:27 编辑
Beast_Carrot 发表于 2021-9-18 20:35
但是我们没有DBA, mirroring db 怎么做,能说个大概吗?谢谢!


估计你们是个几个人的小公司,到外面请个合同工,

发表于 2021-9-18 22:35 |显示全部楼层
此文章由 williamstep 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 williamstep 所有!转贴必须注明作者、出处和本声明,并保持内容完整
同时使用一个数据库,其实根本毫无问题,Sql server支持成千上万的同时访问没有压力
只能说,你写的query太没有效率了,大概是动不动就全局搜索,而且没有使用index吧,所以比较慢
index使用好了,速度快

2020年度勋章

发表于 2021-9-18 22:39 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
matutu22 发表于 2021-9-18 20:46
直接谷歌搜sql server master slave不都有吗 很简单啊。。

你是说Replication吗?也是有另一位朋友介绍这个给我,打算研究一下,谢谢咯!

发表于 2021-9-18 22:41 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Beast_Carrot 发表于 2021-9-18 20:35
但是我们没有DBA, mirroring db 怎么做,能说个大概吗?谢谢!

你要做,最好找专业人士,如果你们公司在AD里,简单的一天应该就可以, 如果要HA,就要几天,跟环境有关。

2020年度勋章

发表于 2021-9-18 22:45 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
whocares2014 发表于 2021-9-18 20:52
哇,玩数据库木有DBA或者database developer也是罕见的。你要么每次把整个生产环境都export出来,然后把报 ...

我们有database developer啦,这就是他写出来的,他是专业做ETL 的,但是就是总漏掉一些数据。就是把整个环境都export出来的成本太高阿,再说,请问用什么工具能把它整个export出来?谢谢
Advertisement
Advertisement

2020年度勋章

发表于 2021-9-18 22:47 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
pan123au 发表于 2021-9-18 21:41
你要做,最好找专业人士,如果你们公司在AD里,简单的一天应该就可以, 如果要HA,就要几天,跟环境有关 ...

这个AD,HA是啥东东
就算找人做,我也想知道个大概是怎么做的,免得被忽悠阿

发表于 2021-9-18 23:09 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Beast_Carrot 发表于 2021-9-18 21:47
这个AD,HA是啥东东
就算找人做,我也想知道个大概是怎么做的,免得被忽悠阿 ...

contractor 应该会给你们一个方案说明,你们可以自己选。AD和HA 都是专业术语的简称。

AD
https://docs.microsoft.com/en-us ... n-services-overview

HA
https://docs.microsoft.com/en-us ... ew=sql-server-ver15

发表于 2021-9-18 23:57 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
pan123au 发表于 2021-9-18 22:09
contractor 应该会给你们一个方案说明,你们可以自己选。AD和HA 都是专业术语的简称。

AD

应该不是always on

发表于 2021-9-19 00:00 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
whocares2014 发表于 2021-9-18 22:57
应该不是always on

现在讲SQL HA肯定是alwayson, 我就是dba,

发表于 2021-9-19 00:06 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Beast_Carrot 发表于 2021-9-18 21:45
我们有database developer啦,这就是他写出来的,他是专业做ETL 的,但是就是总漏掉一些数据。就是把整个 ...

可能会的,原因很多。

1.跑脚本的时候会可能新的数据加入,比如说,10点开始,11点结束。但是10:02分加入的数据就没包括在这个批次里面。

但是下一个批次从11点开始跑,那10:02分加的可能就永远不会被一弄过来了。


2.表的从属关系没搞清楚,导致约束上面冲突,某些记录被拒绝。

3.硬盘空间,缓冲不够(不太可能)

这玩意你得好好测试,找茬啊!再说,数据分析一般不需要当天当时的数据,你可以今天分析昨天或者前天的,那就基本可以保证数据完整性。



Advertisement
Advertisement

发表于 2021-9-19 00:08 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 whocares2014 于 2021-9-18 23:09 编辑
pan123au 发表于 2021-9-18 23:00
现在讲SQL HA肯定是alwayson, 我就是dba,


Always on 的公司应该配个DBA的,高阶玩法。有DBA在,导出个数据库根本不是啥问题啊,只要硬盘够大。

发表于 2021-9-19 00:10 |显示全部楼层
此文章由 pan123au 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pan123au 所有!转贴必须注明作者、出处和本声明,并保持内容完整
whocares2014 发表于 2021-9-18 23:08
Always on 的公司应该配个DBA的,高阶玩法。有DBA在,导出个数据库根本不是啥问题啊,只要硬盘够大。 ...

一般是

发表于 2021-9-19 00:13 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个开发也是水啊,居然总要漏数据.... 还是AlwaysOn吧。没有DBA的话找个系统管理员,或者稍微开窍一点的IT support学一下吧,很简单的。

评分

参与人数 1积分 +4 收起 理由
Beast_Carrot + 4 感谢分享

查看全部评分

发表于 2021-9-19 00:20 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SQL server 有按表导出的功能呀。写个脚本给他每天按时倒一批,然后插入别的环境的表应该不会有问题的。

难道这哥们用db link, insert update or merge

Exporting Tables Using SQL Server Management Studio
Right-click on the database that contains tables you wish to export. ...
Click Next > on the Introduction page. ...
On the Choose Objects page, select all of the tables you wish to export. ...
On the Set Scripting Options page, select Save scripts to a specific location.

评分

参与人数 1积分 +4 收起 理由
Beast_Carrot + 4 感谢分享

查看全部评分

发表于 2021-9-19 00:29 |显示全部楼层
此文章由 bombhuauto 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bombhuauto 所有!转贴必须注明作者、出处和本声明,并保持内容完整
1. 建立Read replication。
https://dba.stackexchange.com/qu ... atabase-for-reports
2. 优化你的report,report的条件尽量用索引过的列。

上面两个工作都需要DBA,不过不是什么高升的活,2,3年的DBA应该都会。

评分

参与人数 1积分 +4 收起 理由
Beast_Carrot + 4 感谢分享

查看全部评分

Advertisement
Advertisement

2020年度勋章

发表于 2021-9-19 21:47 |显示全部楼层
此文章由 Beast_Carrot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Beast_Carrot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
whocares2014 发表于 2021-9-18 23:20
SQL server 有按表导出的功能呀。写个脚本给他每天按时倒一批,然后插入别的环境的表应该不会有问题的。

...

yes he does use 'insert', 'update', 'merge', 'delete'!!!

发表于 2021-9-20 00:23 |显示全部楼层
此文章由 whocares2014 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 whocares2014 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Beast_Carrot 发表于 2021-9-19 20:47
yes he does use 'insert', 'update', 'merge', 'delete'!!!

这是数据库开发员的正常做法,确实和管理员的思路是不一样的。

最常见的可能是timestamp, snapshot time的时间点没选对。

发表于 2021-9-20 00:31 来自手机 |显示全部楼层
此文章由 yzh1999 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yzh1999 所有!转贴必须注明作者、出处和本声明,并保持内容完整
https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/about-change-data-capture-sql-server?view=sql-server-ver15

发表于 2021-9-20 01:37 |显示全部楼层
此文章由 git 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 git 所有!转贴必须注明作者、出处和本声明,并保持内容完整
sql server Replication 常用技术

一般关系型数据库都要用到

发表于 2021-9-20 02:26 |显示全部楼层
此文章由 chen_edward 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 chen_edward 所有!转贴必须注明作者、出处和本声明,并保持内容完整
read replication (read replica)。
Advertisement
Advertisement

发表于 2021-9-20 13:09 |显示全部楼层
此文章由 harlis 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 harlis 所有!转贴必须注明作者、出处和本声明,并保持内容完整
log shipping

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部