我有一个数据库xx_db以前没有做过完全备份,所以我直接执行LOG备份时:
backup log xx_db to disk='c:\\XX_LOG.bak' with init出现错误:
无法执行 BACKUP LOG,因为当前没有数据库备份
于是我先执行了数据库备份:
backup log xx_db to disk='c:\\XX_DB.bak' with init然后再执行:
backup log xx_db to disk='c:\\XX_LOG.bak' with init
就没问题了然后我去C盘将数据库备份文件c:\\XX_DB.bak删了,然后又执行LOG备份:
backup log xx_db to disk='c:\\XX_LOG.bak' with init
奇怪的是这次就没有报错了,可以执行。请问为什么我把数据库备份文件c:\\XX_LOG.bak删除后,还是可以执行LOG备份呢?SQL SERVER不是提示LOG备份需要数据库备份吗?

解决方案 »

  1.   

    上面有个地方打错了 抱歉:我有一个数据库xx_db以前没有做过完全备份,所以我直接执行LOG备份时:
    backup log xx_db to disk='c:\\XX_LOG.bak' with init出现错误:
    无法执行 BACKUP LOG,因为当前没有数据库备份于是我先执行了数据库备份:
    backup database xx_db to disk='c:\\XX_DB.bak' with init然后再执行LOG备份:
    backup log xx_db to disk='c:\\XX_LOG.bak' with init
    就没问题了然后我去C盘将数据库备份文件c:\\XX_DB.bak删了,然后又执行了LOG备份:
    backup log xx_db to disk='c:\\XX_LOG.bak' with init
    奇怪的是这次就没有报错了,可以执行。请问为什么我把数据库备份文件c:\\XX_LOG.bak删除后,还是可以执行LOG备份呢?SQL SERVER不是提示LOG备份需要数据库备份吗?
      

  2.   

    你没有把安装目录下的MDF和LDF文件删除吧?这个下面的LDF文件才是存储的日志信息。
      

  3.   

    数据库备份后SQL Server中会在msdb中留下记录。具体参照这些表:
    SQL Server 包括以下跟踪备份活动的备份历史记录表:backupfile backupfilegroup backupmediafamily backupmediaset backupset 
    你在完整备份后只是把物理文件删除了,SQL Server根据记录仍会认为你已经做过数据库备份了