首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持数据库同步

保持数据库同步
EN

Database Administration用户
提问于 2018-06-20 13:54:29
回答 2查看 45关注 0票数 0

这似乎是个愚蠢的问题。我能否将一个数据库的日志还原到另一个具有相同模式的现有数据库中?

服务器A中有一个数据库d1,我对其进行备份,并在另一个数据库服务器B中恢复为数据库d1,然后在服务器B中将数据库d1中的所有数据合并到数据库d2中。但我仍然希望将来自数据库d1(在服务器A中)的跨国日志应用于数据库d2。

这似乎是一个一般性/宽泛的问题?但这是一个有效的问题,因为我有一个类似的场景:在将当前生产合并为遗留产品之后,将遗留数据和当前生产数据迁移到新的sql服务器,并与当前生产保持同步。

我想到了日志传送,并尝试了well.The问题,因为服务器A处于较低版本(2008年R2),服务器B处于较高版本(2016).So中,我必须在没有恢复模式下运行日志传送,并且无法在没有恢复的mode.If中对数据进行合并,我停止日志传送,并将数据库恢复到恢复模式并进行合并,无法再次将其恢复到非恢复模式并启用日志传送。

请注意,我将服务器B中的数据库d1合并为d2。

EN

回答 2

Database Administration用户

发布于 2018-06-20 14:30:38

不是的。为了将日志还原到数据库,日志的日志序列号(LSN)必须是正确的编号,以匹配数据库恢复下一个日志所需的内容。如果您可以让LSNs匹配,那么从不同的数据库恢复日志会破坏日志,因为某些操作包含页ID,并且页面ID在两个数据库上都不会相同。

这可能有很多其他的原因不能工作,但它真的没有必要记录所有的原因,因为它是一个根本没有设计或期望能够这样工作的东西。

票数 3
EN

Database Administration用户

发布于 2018-06-20 14:48:48

正如托尼所说,恢复/同步日志LSN应该与服务器B上还原的数据库d2 (您想同步的数据库)的LSN相匹配。

此外,要恢复/同步事务日志( to )/logs,必须使用NORECOVERY模式还原完全备份。它将数据库保持在“恢复”模式下,这样就可以恢复日志(在完全/差异备份后进行的T日志备份)。

一旦使用恢复恢复数据库,就无法将服务器A上的d1的LSN与服务器B上的d1或d2相匹配。

首先,您应该决定将服务器A上的d1与服务器B上的d2同步的目的。

如果您想使用d2进行只读、冷备用或DR目的,您可以使用日志传送功能。

如果还需要执行DML,则可以使用复制。

谢谢!

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/210140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档