sql-server-2008 – 在更改的数据库模式上重播SQL Server事务日
对于相对简单的SQL Server 2008数据库(30 MB),我们有一个大的事务日志(1.3 GB).它(log)包含自db第一次投入生产以来的所有更新(现在我们看到它)代表了我们感兴趣的时间数据的宝贵来源. 有一些方法可以在类似的数据库上“重放”整个日志(就像原来的那样,但是添加了历史表和触发器)? 这样我们可以重建相同的数据库,但是从日志中“提取”时间数据.这是我们第一次忽略的有价值的知识,不应该依赖于服务器日志文件. UPDATE 我对“大”事务日志没有任何问题.我不想截断日志.包含在其中的时间信息是有价值的(我真诚地希望它现在很清楚,因为这是我重复的第三次). 对于那里的“西部最快的枪手”,请在“我们有一个大的交易记录……”之后继续阅读.我开始认为用这些词开始问题实际上是我的错误,因为看起来有80%的读者认为这个问题是关于日志截断的. 对于那些可能希望“建议”另一个备份和日志截断作为“解决方案”(BTW,完全忽略了这一点)的人,请阅读此内容. 解决方法事务日志包含自上次日志截断以来应用于数据库的修改的二进制增量;这里的关键字是“二进制”:它们不包含SQL查询或类似的东西,但实际上更类似于要应用于程序的二进制补丁.因此,它们只能在最初链接到的确切物理数据库文件上重放;在另一个数据库上重放它们(即使使用相同的模式)就像将补丁应用于不同的可执行文件到它所编写的那个:完全不可能. 如果修改了它,你也不能在同一个数据库上重放它们;即,您无法从旧备份还原数据库,将其联机,对其进行任何修改,然后针对它重播日志;一旦将数据库完全联机(在SQL Server还原操作中甚至存在特定标志),您实际上会丢失任何日志重播功能. (编辑:揭阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |