A. 如何清空sql数据库的日志文件
其中database为你的库名 –压缩日志1:截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG2:清空日志DUMP TRANSACTION 库名 WITH NO_LOG再:企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了3: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K再将此数据库设置自动收缩或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'4: 如果想以后不让它增长企业管理器–服务器–右键数据库–属性–事务日志–将文件增长限制为xM(x是你允许的最大数据文件大小)–SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩
B. SQL数据库日志文件 可以删除吗
可以的
C. 如何清除SQL日志
方法1:第一步:backup log database_name with no_log 或者 backup log database_name with truncate_only –no_log和truncate_only是在这里是同义的,随便执行哪一句都可以第二步:1.收缩特定数据库的所有数据和日志文件,执行 dbcc shrinkdatabase (database_name,[,target_percent])–database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比2.收缩一次一个特定数据库中的数据或日志文件,执行 dbcc shrinkfile(file_id,[,target_size]) –file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小 两个dbcc都可以带上参数notruncate或truncateonly,具体意思看帮助。方法2(这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了): 第一步: 先备份整个数据库以备不测第二步: 备份结束后,在Query Analyzer中执行如下的语句: exec sp_detach_db yourDBName,true –卸除这个DB在MSSQL中的注册信息 第三步: 到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录 第四步: 在Query Analyzer中执行如下的语句: exec sp_attach_single_file_db yourDBName,'d:\mssql7\data\yourDBName_data.mdf' –以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。以上方法在清除log日志中均有效。但,能否让sql server 不产生log日志呢?以上方法好像均无效。 我这儿正好有个case:我客户的sql server每天都会产生4,500M的log日志,每天都清除一下,非常不便。有没有办法实现不产生log日志呢?我分析了一下客户产生log日志的原因,并且做了相应测试。客户是每天将数据库清空,从总系统中将数据导入到sql server里。我感决sqlserver在插入时产生log不大,在delete整个库时产生log极大。比如:SELECT * into test_2 from b_bgxx共45000条记录,产生十几M log,如果delete from test_2产生80多M log ,这明显存在问题。虽然可以换成:truncate table test_2但我还是希望能找到不产生log的方法。就如oracle不产生归档一样。
D. 如何清除SQL数据库日志
1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。清除Log有两种方法:1.自动清除法开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。2.手动清除法执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志:mp transaction with truncate_onlymp transaction with no_log通常删除事务日志中不活跃的部分可使用“mp transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“mp transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。
E. sql server怎么删除数据库日志
一、简单方法 –SQL Server收缩方法1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。二、复杂方法 –SQL Server日志清空方法 在查询分析器中顺序执行以下三步,其中 databasename 为你的数据库文件名 1.清空日志:DUMP TRANSACTION databasename WITH NO_LOG 2.截断事务日志:BACKUP LOG databasename WITH NO_LOG 3.收缩数据库:DBCC SHRINKDATABASE(databasename)(BACKUP LOG databasename WITH NO_LOG|TRUNCATE_ONLY可以截断事务日志。 第一步只是将非活动的事务日志截断,并没有收缩数据库,只有进行第二项操作后,数据库才进行事务日志的清理工作,将截断的非活动事务删除,并将事务日志文件收缩到适当尺寸。)3、收缩数据库文件(如果不压缩,数据库的文件不会减小) 企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 –选择数据文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同简单方法里第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据也可以用SQL语句来完成–收缩数据库 DBCC SHRINKDATABASE(数据库名) –收缩指定数据文件,1是文件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1)4、为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)在使用 SQL Server 时,数据库里的日志文件会越来越大,需要把它删除。 我先把这个数据库分离,在数据库上点右键 -> 所有任务 -> 分离数据库,分离之后,就可以把 Log 文件删除,同时也可以把数据进行备份。之后,就可以在所有任务里的附加数据库再把那个数据库添进来,SQL Server 会提示 LOG 文件不存在,问你是不是要新建一个,选是就行了,这样,LOG 文件就清空了。 这个方法只需几分钟的时间,但在这几分钟里,就不能访问这个数据库了,我觉得只适用于小型的应用,对于大型的系统就要找其它方法了。) a.分离数据库 企业管理器–服务器–数据库–右键–分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库 企业管理器–服务器–数据库–右键–附加数据库
F. SQL Server 快速清除日志文件的方法
SQL Server 2000快速清除日志文件的方法
SQL Server 2000 数据库日志太大!
如何清理SQL Server 2000的日志呢?
如何压缩SQL Server 2000的日志呢?
如何让SQL Server 2000的日志变小呢?
据我所知,办法有很多很多,总结起来算有3类吧:
1、点几下鼠标,用SQL Server 2000管理工具中的企业管理器即可实现,待会儿详解;
2、用SQL语句,在SQL Server 2000管理工具中的查询分析器可以实现,此法高级人士喜欢用;
3、用第三方工具实现,原理嘛,我觉得应该是用SQL语句来实现的,这方法好,简单易用,网上不乏精品工具,待会儿介绍一款。
一、现在我们详细描述一下如何用企业管理器清理SQL 2000的日志:
1、打开企业管理器,右击要处理的数据库--》属性--》选项--》故障还原,选“简单”--》确定。如图:
2、右击要处理的数据库--》所有任务--》收缩数据库--》什么也不动,默认第一个是0%,其它两个未选中,点确定--》如果您以前数据库日志文件大于1M那么现在再看看,是不是只有1M了呢。
3、操作完后--》按第一步,把“故障还原”,选“完全”,传说中SQL Server 2000 有自动还原功能,说是如果非法关机等因素造成数据丢失可以自动回滚,另外可以用程序来实现操作回滚,所以最好是让故障还原是“完全”。
4、这样便实现了“SQL Server 2000 数据库日志太大!如何管理,清除,变小,压缩它”中的清除,变小,压缩了,至于怎么管理,自己看着办吧,我一般只会用到这些,再有深入研究的话我会写上来的`。
二、现在我们介绍用第三方SQL Server 日志清理工具来清理日志,简单易用高效,推荐用这个方法。
我喜欢用 SqlServer日志清除专家 v3.5 来实现这个功能。界面如下:
数据库那里一般会将整个服务器的数据库名都列举出来,需要选择为自己账户能管理到的那个,我这里DB_iszip账户能管理的是 iszip ,选择好之后,点“清除日志”按钮,然后SQL Server 2000的日志就被清理好了,此时你去服务器看你数据库日志占用空间就只有1M了。
;
G. 如何清空sql server 2005日志文件
sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库:清理sql server数据库日志可用两种方法:方法一:清空日志。1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2、再打开企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件–选择日志文件–在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。方法二:有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。1、删除LOG分离数据库 企业管理器->服务器->数据库->右键->分离数据库2、删除LOG文件附加数据库 企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K。注意:建议使用第一种方法。如果以后,不想要它变大。SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。或用SQL语句:alter database 数据库名 set recovery simple另外,数据库属性有两个选项,与事务日志的增长有关:Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
H. 怎样清理或者删除MSSQL数据库日志文件
数据库的性能是DBA都需要重点关注的,日志文件的增多严重影响数据库的性能,本文将为您介绍SQLServer删除日志文件的方法,供您参考,希望对您有所帮助。
数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。
1、删除LOG
1.1 分离数据库
分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。
附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。
1.4 也可以通过命令才完成以上的操作
use master;exec sp_detach_db @dbname='数据库名';exec sp_attach_single_file_db @dbname='数据库名',@physname='D:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATATestDB.mdf'
Sp_detach_db:分离数据库;
sp_attach_single_file_db:附加单个数据库文件;在上述代码中只附加了数据文件,而未附加日志文件,言下之意就是删除了日志文件。
该命令在SQL Server 2005和2000支持,SQL Server 2008不支持该命令。
2. 清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
3. 收缩数据库文件
DBCC SHRINKFILE ('TestDB_log',1)
SQL Server中“数据收缩”详解
4. 截断事务日志
BACKUP LOG TestDB WITH NO_LOG
该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。
I. 如何清除mssql数据库日志
方法一: 1、backup log database_name with no_log mp transaction with no_log或者 backup log database_name with truncate_only –no_log和truncate_only是在这里是同义的,随便执行哪一句都可以 2、收缩特定数据库的所有数据和日志文件,执行 dbcc shrinkdatabase (database_name,[,target_percent])–database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比 收缩一次一个特定数据库中的数据或日志文件,执行 dbcc shrinkfile(file_id,[,target_size]) –file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小 两个dbcc都可以带上参数notruncate或truncateonly,具体意思看帮助。 或者打开企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。方法二:(这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了): 1、先备份整个数据库以备不测 2、备份结束后,在Query Analyzer中执行如下的语句: exec sp_detach_db DBName,true –卸除这个DB在MSSQL中的注册信息 3、到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录 4、在Query Analyzer中执行如下的语句: exec sp_attach_single_file_db DBName,'d:\mssql7\data\DBName_data.mdf' –以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。 方法三:自动清除法开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQLServer自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。
J. 如何清除SQL server日志
方法1:第一步:backuplogdatabase_namewithno_log或者backuplogdatabase_namewithtruncate_only–no_log和truncate_only是在这里是同义的,随便执行哪一句都可以第二步:1.收缩特定数据库的所有数据和日志文件,执行dbccshrinkdatabase(database_name,[,target_percent])–database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比2.收缩一次一个特定数据库中的数据或日志文件,执行dbccshrinkfile(file_id,[,target_size])–file_id是要收缩的文件的标识(ID)号,若要获得文件ID,请使用FILE_ID函数或在当前数据库中搜索sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbccshrinkfile将文件大小减少到默认文件大小两个dbcc都可以带上参数notruncate或truncateonly,具体意思看帮助。方法2(这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了):第一步:先备份整个数据库以备不测第二步:备份结束后,在QueryAnalyzer中执行如下的语句:execsp_detach_dbyourDBName,true–卸除这个DB在MSSQL中的注册信息第三步:到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录第四步:在QueryAnalyzer中执行如下的语句:execsp_attach_single_file_dbyourDBName,'d:\mssql7\data\yourDBName_data.mdf'–以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。以上方法在清除log日志中均有效。但,能否让sqlserver不产生log日志呢?以上方法好像均无效。我这儿正好有个case:我客户的sqlserver每天都会产生4,500M的log日志,每天都清除一下,非常不便。有没有办法实现不产生log日志呢?我分析了一下客户产生log日志的原因,并且做了相应测试。客户是每天将数据库清空,从总系统中将数据导入到sqlserver里。我感决sqlserver在插入时产生log不大,在delete整个库时产生log极大。比如:SELECT*intotest_2fromb_bgxx共45000条记录,产生十几Mlog,如果deletefromtest_2产生80多Mlog,这明显存在问题。虽然可以换成:truncatetabletest_2但我还是希望能找到不产生log的方法。就如oracle不产生归档一样。