我不是一个DBA或一个数据库的家伙,我们只是收到一个数据库备份,差异数据库备份和每日数据库事务日志(每一天可能有大约15-20个跨日志)。我现在有大约20天的交易日志。
如果数据库崩溃,我不想重新安装原始数据库、原始的不同备份和XXX天的事务日志。
我的问题是:我能否恢复基本数据库备份、差异数据库备份、前10天的事务日志,然后对数据库进行备份,然后仍然使用事务日志的第11天来添加我刚才创建的新备份?我该怎么做呢?有人能为我提供一些this代码来说明如何做到这一点吗?还是有一个更简单的方法来解决这个问题?
实际上,我已经完成了一些步骤,但是对什么是最好的解决方案感到困惑,因为我的新数据库似乎无法处理trans,下面是我的代码:恢复基本备份。
从'C:\Summit_FTP\Full_Backup\ECW33DBCUSTR12A_db_wasumu_FULL_20160522_060256.bak‘恢复数据库db_wasumu,将'db_wasumu’移动到'C:\Program \Microsoft Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_wasumu.mdf','db_wasumu_Log‘到'C:\Program \Microsoft Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_wasumu_log.ldf',替换,NORECOVERY,STATS = 10;
从'C:\Summit_FTP\Full_Backup\ECW33DBCUSTR12A_db_wasumu_DIFF_20160527_004940.bak‘恢复数据库db_wasumu,将'db_wasumu’移动到'C:\Program \Microsoft Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_wasumu.mdf','db_wasumu_Log‘到'C:\Program \Microsoft Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_wasumu_log.ldf',替换,NORECOVERY,STATS = 10;
从磁盘中恢复日志'C:\Summit_FTP\wasumu_20160527\ECW33DBCUSTR12A_db_wasumu_LOG_20160527_010404.trn‘=无空间的db_wasumu;
现在我将备份:备份数据库db_wasumu到磁盘= 'C:\Program \Microsoft SQL db_wasumu数据库Backup_after0529_2.bak‘
但是,当我试图追加下一个事务日志时,它声明:
Msg 4330、级别16、状态1、第1行此备份集无法应用,因为它位于与数据库不一致的恢复路径上。恢复路径是将数据库带到特定恢复点的数据和日志备份序列。查找要还原的兼容备份,或还原数据库的其余部分以匹配此备份集中的恢复点,这将使数据库恢复到不同的时间点。有关恢复路径的详细信息,请参阅Server联机丛书。Msg 3013,第16级,状态1,第1行
还原日志正在异常终止。
提前感谢您的帮助!!
真诚的,保罗
发布于 2016-06-21 15:27:55
那不管用。一旦还原后恢复数据库,数据库就会开始一个新的时间线。
如果这是一个正在进行的过程,一个可能的解决方案是让生成备份的团队每天接受一个差异,这将对工作量和系统负载产生相当小的影响。这是他们目前所拥有的另外一项。但是,需要对文件进行一些仔细的管理,以确保您有正确的完整备份、差异和日志序列。这样做的好处是,如果您需要将数据库还原到最新版本,则不会有超过20个tlog文件可应用。根据每天进行的15-20 tlog备份,您也不会丢失现有的PITR (考虑到日志备份的数量,我假设存在一些PITR要求)。
如果您想进一步减少要应用的日志文件的数量,您可以每天增加差异备份的数量,但我敢打赌,管理这些文件的额外复杂性远远超过了好处。如果您编写了所有任务的脚本(听起来像是您的任务),那么执行和检查问题是相当容易的。如果您使用的是SSMS,那么您真的不应该使用这个GUI。
**为了说明这一点,假设您已经在某个时间间隔内使用完整的数据库备份重置备份链。只有一个完整的DB备份,并且只从那里进行差异和tlog备份,这不是一个可行的解决方案。在大多数情况下,如果您有大量的写活动,差异最终会增长到一个大的大小,可能比基本的(完整的DB)备份更大。基本备份周期的一个例子可能是:-全DB备份--每周日凌晨2点-差异DB备份-每天-下午8点事务日志备份--如果没有其他保护措施(例如AlwaysOn),这个周期每15分钟就可能丢失多达15分钟的数据。
如果这只是一个一次性的事情,即您将不会得到任何更多的tlog备份,那么您可以减少您的恢复时间,当目标是获得最新的时间点可用。只需还原DB、微分和应用所有日志即可。完成后,对其进行备份,并将其与所有其他备份文件一起保存。当您需要获得可用的最新版本时,这将为您提供快速恢复,因为您只需要执行一个DB恢复。但是,不要删除所有其他备份文件,以防您需要恢复到特定的时间点,而不是最近的备份文件。
https://dba.stackexchange.com/questions/141749
复制相似问题