`
zhangziyangup
  • 浏览: 1186569 次
文章分类
社区版块
存档分类
最新评论

log backup chain被打断后是不是需要从一个完整备份重新开始?

 
阅读更多

一般我们的理解是logbackup chain被打破后一定需要一个完整备份然后才能开始新的日志备份,其实不一定需要完整备份,差异备份也是可以的。

首先我们先做个测试:创建数据库做完整备份和日志备份,然后将恢复模式变成简单恢复模式。

CREATEDATABASE LogChainTest;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO
BACKUP DATABASE LogChainTest TO DISK = 'D:\MSSQL\LogChainTest.bck' WITH INIT;
GO
BACKUP LOG LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log1.bck' WITH INIT;
GO
ALTER DATABASE LogChainTest SET RECOVERY SIMPLE;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO

然后再开始一个新的Log备份就会出现下面的错误:

BACKUP LOGLogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log2.bck' WITH INIT;
GO

Msg 4214,Level 16, State 1, Line 1
BACKUP LOG cannot be performed because there is no current database backup.
Msg 3013, Level 16, State 1, Line 1
BACKUP LOG is terminating abnormally.

我们都知道,数据库日志备份包含的是从上次日志备份以来发生的交易。当我们将数据库模式更改为简单以后,SQL Server就会认为这次的日志备份不会包含所有的日志交易,所以日志备份无法完成。

现在我们做一个差异备份然后再开始做日志备份就会成功了:

BACKUPDATABASE LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_Diff1.bck' WITH INIT,DIFFERENTIAL;
GO
BACKUP LOG LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log2.bck' WITH INIT;
GO

做完日志备份之后我做了恢复测试完全没有问题。

这个功能针对大数据库是非常有用的,如果Logbackup chain被打破后,就可以直接选择差异备份,而不需要执行一次完整备份,这样可以节省很多时间和资源。

原文来自与SQLSkills.

分享到:
评论

相关推荐

    Symantec Backup Exec12.5备份oracle演示

    - **备份初始化参数文件**:使用 `create pfile` 命令创建一个初始化参数文件。 ```sql SQL> create pfile='C:\oracle\orabak\pfilercat.ora' from spfile; ``` - **重启 Oracle 实例**:使用 `shutdown ...

    BackupExec12.5备份Oracle

    在开始介绍如何使用 BackupExec 12.5 进行 Oracle 数据库备份之前,我们需要了解测试的背景以及进行备份前的准备工作。 **测试背景**: - **BackupExec**:Symantec 公司出品的一款适用于 Windows 平台的优秀备份...

    如何通过Backup Exec实施Oracle的灾难恢复

    如果遇到找不到文件的错误,可使用`recover database until cancel using backup controlfile`命令,允许在找到最后一个online redo log时中断恢复过程。 整个恢复过程中,重要的是确保所有必要的归档日志都已备份...

    SVN备份操作(包括完全备份,增量备份和同步版本库)

    完全备份是最基础也是最直接的一种备份方式,它会复制整个版本库到另一个位置。这种方式的优点在于恢复速度快,一旦发生问题,可以直接用备份数据进行恢复而无需额外处理;缺点则是占用存储空间较大,尤其是在频繁...

    log4j删除前N天日志

    Log4j是一个广泛使用的开源日志记录框架,提供灵活的日志配置和强大的日志输出功能。本话题将深入探讨如何使用Log4j中的DailyRollingFileAppender配置来自动删除前N天的日志,以便保持日志文件的大小和数量在可控...

    解决Veeam Backup 因Removing VM snapshot 备份任务停在99%的问题

    删除不必要的快照,只保留一个用于备份的快照。 6. **磁盘故障或损坏**:如果虚拟机的磁盘出现故障或损坏,快照合并可能失败。检查虚拟机的磁盘状态,并修复任何问题。 7. **Veeam服务状态**:确认Veeam服务(如...

    Oracle_backup.rar_oracle_oracle 备份_备份

    2. 用户备份:用户备份涉及到一个特定数据库用户的全部对象,包括表、视图、存储过程等。这种备份模式适合于用户级别的数据恢复。同样使用`EXPDP`,但这次需要指定用户的所有对象: ``` expdp username/password ...

    SQL Server 2005 从差异备份还原数据库

    在进行差异备份之前,通常需要有一个完整的数据库备份作为基准,这样才能确保可以从备份中完全恢复数据库。 #### 差异备份的创建 在创建差异备份之前,首先需要有一个完整的数据库备份。以下是一些基本步骤: 1. ...

    BACKUP EXEC

    * 需要创建一个目录用于存放安装文件。 * 需要将安装文件复制到Linux服务器上。 * 需要留意安装过程中的提示,例如输入介质服务器的IP地址。 BACKUP EXEC的优势 BACKUP EXEC是一款功能强大的备份和恢复软件,具有...

    [转载]LOG备份与备份差异的对比!.mht[转载]LOG备份与备份差异的对比!.mht

    [转载]LOG备份与备份差异的对比!.mht[转载]LOG备份与备份差异的对比!.mht

    数据库备份语句 数据库备份语句

    全量备份是指备份整个数据库的所有数据和日志文件,通常用于创建一个基准点,后续的差异备份和日志备份都会基于这个基准点进行。上述命令将数据库`NorthwindCS`的全量备份保存到指定路径下。 #### 差异备份 ```sql ...

    mysql(完整、增量)备份与还原

    MySQL数据库在日常运维中扮演着至关重要的角色,因此掌握如何进行完整备份、增量备份与还原是每个IT专业人员必备的技能。在这个主题中,我们将深入探讨如何使用Java来实现这些功能。 首先,让我们理解什么是数据库...

    SQL Server误区30日谈 第20天 破坏日志备份链之后,需要一个完整备份来重新开始日志链

    误区 #20:在破坏日志备份链之后,需要一个完整备份来重新开始日志链 错误 事务日志备份会备份自上次事务日志备份以来所有的事务日志(如果从来没有过日志备份的话,那就从上一次完整备份开始)。有好几种类型的操作会...

    实验89答案.doc

    (12)如果拒绝role1查询BankT表,则log1、log2、log3是否有权查询BankT表?为什么? 2、请完成下题 新建一个数据库TGDB,然后在SQL Server中创建“SQL Server身份验证”模式的登录帐号:TG_User,其中账户密码...

    centos系统上设置定时备份ApacheLog文档

    2. 在crontab配置文件中,你需要添加一个新的行来定义备份任务。cron语法基于时间,例如分钟、小时、日期等。例如,如果你想每天凌晨1点备份日志,你可以写入以下行: ``` 0 1 * * * /path/to/your/backup_script....

    oracle自动备份脚本

    接下来,脚本会进行文件滚动更新,如`rem backup8.dmp backup9.dmp`等命令,这实质上是在更新备份文件的名称,使得每次备份都会覆盖前一次的备份文件,保持最新的一系列备份文件可用。 #### 3. 执行数据导出 脚本的...

    备份与恢复命令 BACKUP DATA [ [ , ] EXPIREDA

    `EXPIREDATE`和`RETAINDAYS`都是用来设置备份的过期时间,你可以选择设定一个具体的日期(`EXPIREDATE`)或者按照天数(`RETAINDAYS`)来决定备份的有效期限,一旦超过这个期限,备份将不再可用于恢复。 总的来说,...

    SQL SERVRE数据库备份(全备、差异备、日志备)

    SQL Server 的“维护计划”功能为管理员提供了一个图形化的界面,用于自动化执行数据库维护任务,如备份、索引优化等。下面将详细介绍如何使用维护计划来实现数据库的全备、差异备和日志备。 1. **新建维护计划**:...

    Nginx日志自动归档备份shell脚本log.sh

    Nginx日志自动归档备份shell脚本log

Global site tag (gtag.js) - Google Analytics