使用dump transaction with no_log的危险性说明

但是“最后一招”究竟是什么意思呢?当你使用这条命令时会怎样呢?那你应使用哪条命令来代替它呢?最后,若这条命令如此有问题,为什么Sybase却要提供它呢?

Sybase技术支持建议你定期的dump你的transaction log。你必须根据你的数据库中记入日记的活动的量的大小以及你的数据库的大小来决定dump的方式。有些地方按月dump transaction;有些地方每夜dump transaction。

  注意:若你正运行SQL Server10.0,你可以用sp_thresholdaction在空间紧缺之前来自动dump tran;另外,此时Backup Server会保证在dump进行时,任务不会被挂起。请在你的SQL Server参考手册中获取更详细的信息。这篇文章的剩余部分将适用于运行系统10以前版本SQL Server的领域。

  若你从未dump transaction过,transactionlog将最终会满。 SQLServer使用log(日志)是出于恢复目的的。 当log满时,服务器将停止事物的继续进行,因为服务器将不能将这些事物写进日志,而服务器不能运行大多数的dump tran命令,因为SQL Server也需在日志中记录这些命令。

  这就是为什么当其它dump tran命令不能执行时no_log可执行的原因。但是想一下dump transaction with no_log被设计执行的环境。所有对不做并发性检查。

  若你在对数据库的修改发生时使用dump transaction with no_log,你就会冒整个数据库崩溃的风险。在多数情况下,它们被反映成813或605错误。为了在数据库被修改时,删除transaction log中的不活跃部分可使用dump transaction with trancate_only。这条命令写进transaction log时,并且它还做不要的并发性检查。这两条命令都有与其相关的警告,在命令参考手册中会看到这些警告。请确保在使用其中任一条命令以前,你已理解这些警告和指示。 Syase提供dump transaction with no_log来处理某些非常紧迫的情况。为了尽量确保你的数据库的一致性,你应将其作为“最后一招”。

(0)

相关推荐

  • 使用dump transaction with no_log的危险性说明

    但是"最后一招"究竟是什么意思呢?当你使用这条命令时会怎样呢?那你应使用哪条命令来代替它呢?最后,若这条命令如此有问题,为什么Sybase却要提供它呢? Sybase技术支持建议你定期的dump你的transaction log.你必须根据你的数据库中记入日记的活动的量的大小以及你的数据库的大小来决定dump的方式.有些地方按月dump transaction:有些地方每夜dump transaction. 注意:若你正运行SQL Server10.0,你可以用sp_threshold

  • sql2005 日志清理 SQL2005压缩清除日志的方法

    教你如何清除SQL日志 1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2. 再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在 收缩方式里选择收缩至XXM, 这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了. 清除Log有两种方法: 1.自动清除法开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log. 此方法的优点是无须人工干预, 由SQL S

  • Sqlserver2005日志文件太大如何减小

    Sqlserver2005日志文件太大,使其减小的方法如下所示: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith TRUNCATE_ONLY DBCC SHRINKDATABASE(dbName) 日志文件减小到1MB sql server清空日志文件2011-04-06 23:05 1: 删除LOG 1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库 2:删除LOG文

  • SQL Server 2008 清空删除日志文件(瞬间日志变几M)

    SQL2008清空删除日志: 方法一: USE [master] GO ALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE AFMS SET RECOVERY SIMPLE GO USE AFMS GO DBCC SHRINKFILE (N'AFMS_Log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE AFMS SET RECOVERY FU

  • SQL Server 数据库清除日志的方法

    方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_LOG 2.再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了. 方法二: 设置检查点,自动截断日志 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模

  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    Access 操作很简单,具体不步骤如下:打开你mdb数据库,工具-->数据库实用工具-->压缩和修复数据库(c)... SQL SERVER 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQLServer-->SQLServer组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数

  • 数据库日常维护常用的脚本概述及部分测试

    有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,今日在CSDN论坛看到有贴收录这些语句,就顺手牵羊copy了一份,本想copy了就结束了,但和部分朋友一样,真正用到它们的时候有时会发现难免会出错,于是,择日不如撞日,就在今天花点时间在SQL SERVER 2008中运行试试.之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差.不料这一试,果然试出了问题,这才发现,以前从书本上见过的bac

  • SQL Server 2005删除日志文件的几种方法小结

    使用MS数据库的朋友就会知道一个问题,C盘的空间很容易被占满了.因为本来系统盘就分区比较小,这是由于数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日志在清除数据库日志. 一.删除LOG1.分离数据库.分离数据库之前一定要做好数据库的全备份,选择数据库--右键--任务--分离. 勾选删除连接 分离后在数据库列表将看不到已分离的数据库. 2.删除LO

  • SQL2005 自动备份的脚本

    此版本是始终只有最新的一版(我自己的用的是版本是每天都有一个备份) 复制代码 代码如下: declare @DBName varchar(200) set @DBName='ReportServer$SQL2005' --截断日志 DUMP TRANSACTION @DBName WITH NO_LOG --收缩数据库 DBCC SHRINKDATABASE (@DBName,TRUNCATEONLY) --备份数据库 USE master declare @Version varchar(20

  • DBCC SHRINKDATABASEMS SQL数据库日志压缩方法

    MS SQL数据库日志压缩方法 MS SQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大.一般都是数据库日志引起的!数据库日志的增长可以达到好几百M. 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志. 下面我给大家介绍一个方法 1.打开企业管理器 2.打开要处理的数据库 3.点击菜单>工具>SQL查询分析器 4.在输入窗口里面输入: DUMP TRANSACTION [数据库名] WITH NO_LOG BACK

随机推荐