Server-处置-全面指南-数据库备份环节中日志损坏疑问-SQL (server是什么意思)
译者|李睿
日志损坏疑问理论出当初对事务日志启动备份的时刻。其失误是这样形容的:
信息26019,级别16,形态1,第1行BACKUP在数据库日志中检测到损坏。无关具体信息,请检查失误日志。BACKUPLOG意外中断。
本文中将解释出现这个失误的要素以及如何处置这个疑问。
数据库日志失误损坏象征着什么?
级别16的失误并不那么重大,这是在杂项用户失误的类别。数据库将会反常上班。假设启动一个完整的备份,它将会上班。假设运转DBCCCHECKDB,它将不会检测到失误。
然而,事务日志文件被损坏,第1行则是失败的代码行。
为什么会出现这个失误?
要找出这个失误的要素,须要审核SQL失误日志。
可以在SQLServer治理上班室(SSMS)中找到失误日志。
在对象资源治理器中选用治理>SQLServer日志,可以看到以后日志和之前的日志。双击日志,就可以看到事情和失误。
也可以审核事情检查器,进入日志>运行程序,寻觅MSSQLServer失误。
或许造成日志损坏的最经常出现疑问是配件疑问。此外,一些软件也或许会损坏数据库。
例如,在口头事务时遇到电源缺点或许会封锁主机,而后日志或许会损坏。另一个经常出现的疑问是磁盘缺点。假设磁盘老旧,或许遭逢停电,或许有供电疑问,就会出现这种状况。假设主机温渡过高,或许会出现配件疑问。
一些软件可以破坏日志,例如病毒和恶意软件或许会破坏日志文件。
如何处置在SQLServer数据库备份环节中检测到的日志损坏
假设对损坏的数据库启动完整备份,则备份将运转,但将经常使用损坏的日志文件备份数据库。
假设尝试只备份日志文件,将失掉以上提到的失误。
该疑问的处置打算是经常使用出错时继续(ContinueonError)选项启动备份。
要口头此操作,须要关上SSMS。
在对象资源治理器中右键单击数据库,选用义务>备份。
选用事务日志选项。
在媒体选项中,选用在失误时继续选项。
即使事务日志已损坏,这一选项也将继续口头备份。
处置这个疑问的另一种方法是将数据库设置为便捷复原形式。
在SSMS中,进入对象资源治理器。
单击数据库,右键单击该数据库,而后选用属性。
进入选项页面,选用便捷复原形式。
经常使用T-SQL运转审核点(checkpoint)。
复制
CHECKPOINT
对数据库启动完整备份。
如今能够对日志文件启动备份,而不会出现失误。
如何经常使用StellarReprforMSSQL处置SQLServer数据库备份环节中检测到的日志损坏疑问
处置这个疑问的另一种方法是经常使用StellarRepairforMSSQL。这个软件可以经常使用SQLServer数据文件修双数据库,也可以经常使用损坏的SQLServer备份来复原一切信息。一旦数据库复原,就可以备份日志文件而不会出现失误。
要做到这一点,用户须要从其网站链接下载软件。
先将数据库联机。口头以下命令:
复制
ALTERmax-width="600"/>
假设知道mdf文件在哪里,可以阅读并选用它,而后按下修复按钮。
在修复之后,可以将数据保留在新数据库(Newmax-width="600"/>
假设选用新数据库或实时数据库,则可以备份日志文件而不会出现失误,由于修复后的数据库不会损坏。
论断
本文引见了在日志损坏时将会出现什么失误,还了解了出现这一失误的要素。此外,还引见了经常使用出错时继续选项如何启动备份。最后,学习了如何经常使用StellarrepairforMSSQL修双数据库。
怎么用SqlServer备份数据库?
SqlServer备份数据库的4种方式分别是:
SQL SERVER数据库清空日志图文教程分享
PC6的数据库日志不停疯长,如何进行清空呢?这里以一台数据库SQL SERVER 2005为例, 日志文件达到了100多个G一直无法清理,想了很多的办法:
比如下面这款SqlServer日志清除专家,可用于SQL Server 7、SQL Server 2000、SQL Server 2005的各种版本的数据库日志的清除。
这个工具一清就可以清干净的。使您再也不用担心数据库日志文件超过几百兆或上GB级而烦恼。
第二个方法就是采用了一个比较死的办法。采用 分离,然后再删除日志文件再附加来生成一个新的日志文件。
切记在操作前先把SQL好好的备份一下。
第一步 当然还是打开企业管理器了
在分离前最好是先把IIS之类的正在连接数据库的程序关一下,要不然老半天也分离不了。
也可以选择一下 删除链接 这样可能分离会快一点。
我们再定位到数据库所在的硬盘位置
我们为了保除起见可以把 备份一份,然后再将 qq2_ 这个文件重命一下名(200G的文件实在是没地方可以备份)。
然后我们再来附加数据库
附加到刚刚那个 mdf的文件。注意看下面会提示 文件找不到。
不管他了。选择 这一分把他给删掉。
然后再确定,哈还原成功了。系统自动生成了一个新的 ldf 文件 504KB
建议大家先用上面的那个工具去清一下,如果清不到再用这个死办法来删除日志。
最后再次提醒各位一定要注意备份噢!!
SQL2008 的收缩日志
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:
复制代码
代码如下:
Backup Log DNName with no_log
dump transaction DNName with no_log
DBCC SHRINKFILE (2)
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
复制代码
代码如下:
USE [master]
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式
DBCC SHRINKFILE (NDNName_Log , 11, TRUNCATEONLY)
USE [master]
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
ALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
缺点: 不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。
此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。