`
free_bird816
  • 浏览: 205903 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

sqlserver日志文件收缩 通过日志恢复

阅读更多

解决方法 日志文件满而造成SQL数据库无法写入文件时,可用两种方法:

      一种方法:清空日志。

      1.打开查询分析器,输入命令 BACKUP LOG 数据库名 WITH NO_LOG(或者DUMP TRANSACTION 数据库名 WITH NO_LOG )

      2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

      另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

      1: 删除LOG

          分离数据库 企业管理器->服务器->数据库->右键->分离数据库

      2: 重命名/删除LOG文件

          附加数据库 企业管理器->服务器->数据库->右键->附加数据库

      此法生成新的LOG,大小只有500多K。

      注意:建议使用第一种方法。

 

      如果以后,不想要它变大。

      SQL2000下使用:

      在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

      或用SQL语句:

      alter database 数据库名 set recovery simple

 

 

============================================================

 

 

从日志回复数据库 :自己一步一步按照说明试着看
--创建测试数据库  
  CREATE   DATABASE   Db  
  GO  
--对数据库进行备份  
  BACKUP   DATABASE   Db   TO   DISK='c:\db.bak'   WITH   FORMAT  
  GO  
--创建测试表  
  CREATE   TABLE   Db.dbo.TB_test(ID   int)  
--延时1秒钟,再进行后面的操作(这是由于SQL   Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)  
  WAITFOR   DELAY   '00:00:01'  
  GO  
--假设我们现在误操作删除了   Db.dbo.TB_test   这个表  
  DROP   TABLE   Db.dbo.TB_test  
--保存删除表的时间  
  SELECT   dt=GETDATE()   INTO   #  
  GO  
--在删除操作后,发现不应该删除表   Db.dbo.TB_test  
--下面演示了如何恢复这个误删除的表   Db.dbo.TB_test  
--首先,备份事务日志(使用事务日志才能还原到指定的时间点)  
  BACKUP   LOG   Db   TO   DISK='c:\db_log.bak'   WITH   FORMAT  
  GO  
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)  
  RESTORE   DATABASE   Db   FROM   DISK='c:\db.bak'   WITH   REPLACE,NORECOVERY  
  GO  
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早  
  DECLARE   @dt   datetime  
  SELECT   @dt=DATEADD(ms,-20,dt)   FROM   #     --获取比表被删除的时间略早的时间  
  RESTORE   LOG   Db   FROM   DISK='c:\db_log.bak'   WITH   RECOVERY,STOPAT=@dt  
  GO  
--查询一下,看表是否恢复  
  SELECT   *   FROM   Db.dbo.TB_test  
   
  /*--结果:  
  ID                      
  -----------    
   
  (所影响的行数为   0   行)  
  --*/  
   
  --测试成功  
  GO  
   
  --最后删除我们做的测试环境  
  DROP   DATABASE   Db  
  DROP   TABLE   #

分享到:
评论

相关推荐

    SQL SERVER 日志收缩工具

    SQL Server日志收缩工具是一种专门用于管理SQL Server数据库日志文件大小的应用程序。在SQL Server中,事务日志是数据库的重要组成部分,它记录了所有的事务操作,确保数据的一致性和可恢复性。然而,随着时间的推移...

    SQL Server无法收缩日志文件的原因分析及解决办法

    总之,理解SQL Server日志文件的工作原理以及如何管理和收缩日志文件对于优化数据库性能和管理存储空间至关重要。在进行任何日志文件操作时,应确保对业务的影响最小,并遵循最佳实践,以避免可能的数据丢失或性能...

    SQL SERVER Always On收缩日志文件详细操作及问题处理(已亲测通过)

    在SQL SERVER Always On环境下收缩日志文件通常涉及以下步骤: 1. **备份日志**:首先,需要备份事务日志,这可以通过`BACKUP LOG`命令实现。在这个例子中,日志被备份到`NUL:`设备,这意味着日志备份不占用实际...

    微软MS SQL SERVER 日志收缩工具(2019重构版)支持sqlserver 2008及以后版本,trunc绿色版单文件。

    MS SQL Server日志收缩工具是款小巧好用的sql日志清理工具,主要就是帮助用户清除系统红无用的SQL日志文件,更具备了日志文件压缩功能,有需要的朋友快来下载。 重构版,兼容sqlserver 2008及以后版本,依旧是trunc...

    SQL server日志收缩工具

    SQL Server日志收缩工具是一种专门针对Microsoft SQL Server数据库的日志管理实用程序,旨在优化和管理数据库日志文件的大小。在SQL Server中,事务日志是数据库引擎的关键组成部分,用于跟踪所有的更改操作,确保...

    sqlserver日志查看工具

    SQL Server日志查看工具是数据库管理员和开发人员的重要辅助工具,它可以帮助我们深入了解数据库的运行状态,诊断问题,以及进行故障排除。Log Explorer 4.2 是一款专门针对Microsoft SQL Server的日志分析软件,...

    SQLServer日志收缩工具

    这个"SQLServer日志收缩工具"很可能是一个名为"trunc.exe"的命令行应用程序,用于简化日志收缩过程。使用这样的工具,用户可以通过简单的命令或者配置来执行日志收缩,无需深入了解SQL Server的T-SQL语句。它可能会...

    SQL Server 日志收缩工具

    SQL Server日志收缩工具是一款专为管理SQL Server数据库日志设计的应用软件,它主要用于清理和优化数据库的日志文件,以释放不必要的磁盘空间并提高系统性能。在SQL Server中,日志文件(日志文件扩展名为ldf)用于...

    SQL 2008日志收缩 清空删除大日志文件

    在SQL Server 2005中,可以通过某些特定的命令来收缩并清空日志文件,但在SQL Server 2008中,这些方法已经不再适用。 首先,理解SQL Server的恢复模型是非常关键的。SQL Server提供三种恢复模型:简单、完整和大...

    快速清除SQLServer日志的两种方法

    本文将详细介绍快速清除SQLServer日志的两种方法,包括清空日志和删除LOG文件,并且对每种方法进行了详细的解释和操作步骤。 清空日志 清空日志是快速清除SQLServer日志的第一种方法。这种方法可以通过使用DUMP ...

    用简单模式,对SQLServer数据库收缩

    通过上述步骤,我们可以有效地使用简单恢复模式对SQL Server数据库进行收缩,以节省磁盘空间和提高性能。但在进行操作之前,务必注意事务日志的处理以及可能的性能影响,以确保数据库的安全性和稳定性。此外,即使...

    sqlserver日志清理工具

    在SQL Server数据库管理中,日志文件是存储所有事务历史记录的...通过合理使用"sqlserver日志清理工具",结合有效的数据库管理和备份策略,可以有效地解决SQL Server日志过大问题,保障系统的正常运行和数据的安全。

    如何解决SQL Server日志满问题

    5. 设置自动收缩:设置自动收缩可以使数据库自动收缩日志文件。 EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 6. 限制日志文件增长:可以设置日志文件的最大大小,以避免日志文件过大。 alter database ...

    SQLServer处理事务日志文件过大方法

    综上所述,处理SQL Server中事务日志文件过大的问题,需要综合考虑日志文件的增长原因以及实际业务需求,灵活运用日志截断和日志收缩两种方法。此外,合理规划恢复模式、定期备份事务日志以及密切关注日志文件的变化...

    删除sql server日志

    根据提供的文件信息,本文将详细解释SQL Server日志删除及管理的相关知识点,包括但不限于日志文件的删除、收缩以及自动收缩设置等。 ### SQL Server 日志管理基础 在SQL Server中,事务日志(Transaction Log)是...

    SQL2008R2数据库日志太大收缩方法

    总结来说,收缩SQL Server 2008 R2数据库日志文件主要包括以下步骤:登录SSMS,更改恢复模式至“简单”,执行日志收缩,然后将恢复模式恢复为“完整”。这是一个有效的临时解决方案,但长期而言,定期执行数据库维护...

    SQLServer数据库日志太大收缩操作指南

    本文档提供了一种详细的SQLServer数据库日志太大时的收缩操作指南,旨在帮助管理员有效地管理和减小日志文件的大小。 ### 1. 数据库日志文件过大原因 数据库日志文件过大通常是因为以下原因: 1. **事务回滚**:...

    SQL Server日志收缩

    SQL Server日志收缩是数据库管理中的一个重要操作,主要用于优化数据库空间使用,特别是针对日志文件(LDF)过大的情况。在SQL Server中,事务日志用于跟踪所有的更改操作,包括INSERT、UPDATE、DELETE等,以及回滚...

Global site tag (gtag.js) - Google Analytics