网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

清除SQLServer日志的方法

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

    一般的企业信息系统,应用微软的SQLSERVER数据库,常会出现如下的问题:数据库不是很大,几百兆,但是数据库日志文件(.ldf)非常大,有10多个GB。这样的话,非常占用硬盘,而且如果需要恢复数据库备份的话,也是需要很大的硬盘空间才能够正常的进行恢复操作。我见过的一般的方法都是外科手术的西医方法,直接缩小日志。我所知道的常用方法如下:第一种方式,清空日志。1.打开查询分析器,输入命令DUMPTRANSACTION数据库名WITHNO_LOG,微软在sqlserver2000后将不再支持DUMP命令,可以改为LOADTRANSACTION数据库名WITHNO_LOG
    2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。同时选择数据库模式为==“简单模式”这样的收缩效果很好。收缩完毕后可以再次改回原来的模式第二种方式,删除日志文件。此方法有一定的风险性,因为SQLSERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。1:删除LOG分离数据库企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件附加数据库企业管理器->服务器->数据库->右键->附加数据库
    打开SQL管理控制台,找到数据库,在数据库名上点右键——所有任务——分离数据库,分离完数据库后将数据库原扩展名为.ldf的日志文件删掉,在数据库项目上点右键——所有任务——附加数据库,选择数据库原扩展名为.mdf的数据库主文件进行附加却可,附加时系统提示日志文件不存在,是否创建新的日志文件,点是创建一个1024K的新日志文件查询分析器中的日志收缩语句BACKUPlog实例名withNO_LOGDBCCSHRINKDATABASE(实例名,10)其中实例名就是建立数据库实例的那个名字。后面的参数自己定义大小。
    创建数据库后,能对其原始定义进行更改。更改包括:
    扩充分配给数据库的数据或事务日志空间。
    收缩分配给数据库的数据或事务日志空间。
    添加或删除数据和事务日志文件。
    创建文件组。
    创建默认文件组。
    更改数据库的设置设置。
    脱机放置数据库。
    附加新数据库或分离未使用的数据库。
    更改数据库名称。
    更改数据库的所有者。
    1、扩充数据库bitsCN.ComMicrosoftSQLServer2000可根据在创建数据库时所定义的增长参数,自动扩充数据库。通过在现有的数据库文件上分配其他的文件空间,或在另一个新文件上分配空间,还能手动扩充数据库。如果现有的文件已充满,则可能需要扩充数据或事务日志空间。如果数据库已用完分配给他的空间而又不能自动增长,则会出现1105错误。
    扩充数据库时,必须按至少1MB增加该数据库的大小。扩充数据库的权限默认授予数据库所有者,并自动和数据库所有者身份一起传输。数据库扩充后,数据或事务日志文件即时能使用新空间,这取决于哪个文件进行了扩充。
    bitsCN
    如果事务日志没有设置为自动扩充,则当数据库内发生某些类型的活动时,该事务日志可能会用完所有空间。备份事务日志时,或在数据库使用简单恢复模型的每个检查点时,只清除事务日志中非活动(已提交)的部分。然后SQLServer能重新使用该事务日志中被截取的、尚未使用的部分。有关截断事务日志的更多信息,请参见截断事务日志。
    在备份数据库时,SQLServer不会截断事务日志。
    在扩充数据库时,建议指定文件的最大允许增长的大小。这样做能防止文件无限制地增大,以至用尽整个磁盘空间。若要指定文件的最大大小,请在使用SQLServer企业管理器内的"属性"对话框创建数据库时,使用CREATEDATABASE语句的MAXSIZE参数或"将文件增长限制为(MB)"选项。
    扩充数据库以增大数据或事务日志空间的过程完全相同。bitsCN.nET中国网管博客
    扩充tempdb默认情况下,在需要空间时tempdb数据库会自动增长,因为文件的MAXSIZE设置为UNLIMITED。因此,tempdb能一直增长,直至用完包含tempdb的磁盘上的所有空间。若要防止tempdb无限制地增长,请使用ALTERDATABASE语句或SQLServer企业管理器为tempdb设置MAXSIZE。
    相反,如果tempdb已设置了MAXSIZE,而又需要增加tempdb的大小,则必须执行以下操作之一:
    增加tempdb当前使用的默认文件组中文件的大小。
    将新文件添加到默认文件组。
    允许tempdb使用的文件自动增长。
    重要
    用户定义的文件组不能和tempdb一起使用。他们只能和默认文件组一起使用。
    移动tempdb更改tempdb数据库的物理位置:
    使用ALTERDATABASE语句和MODIFYFILE子句更改tempdb数据库,以更改tempdb中每个文件的物理文件名,使之引用新的物理位置(例如新磁盘)。www_bitscn_com
    停止并重新启动SQLServer。
    从原始位置删除旧的tempdb数据库文件。
    增加数据库的大小
    Transact-SQL(点击这里)
    怎么增加数据库的大小(企业管理器)
    展开服务器组,然后展开服务器。
    展开"数据库"目录,右击要增加大小的数据库,然后单击"属性"命令。
    若要增加数据空间,单击"常规"选项卡。若要增加事务日志空间,单击"事务日志"选项卡。
    若要添加新文件,单击下一个空行,在"文件名"列中输入将容纳附加空间的文件名。文件位置是自动生成的,数据库文件名的后缀名为.ndf,事务日志文件名的后缀为.ldf。www_bitscn_com
    若要更改"文件名"、"位置"、"分配的空间(MB)"和"文件组"(不适用于事务日志)等列的默认值,单击要更改的单元格,再输入新值。对于现有的文件,只能更改"分配的空间(MB)"值,并且新值必须大于现有的值。
    要指定文件怎么增长,请从以下选项中选择:当需要更多的数据空间时,若要允许当前选定的文件增长,选择"文件自动增长"命令。
    要指定文件按固定步长增长,选择"按兆字节"命令并指定一个值。
    若要指定文件按当前大小的百分比增长,选择"按百分比"命令,并且指定一个值。若要指定文件大小的限制,请从以下选项中选择:若要允许文件按需求增长,选择"文件增长不受限制"命令。
    若要指定允许文件增长到的最大值,选择"将文件增长限制为(MB)"命令。
    说明定。
    数据库大小的最大值是由可用磁盘空间量决定,许可限制由正在使用的SQLServer版本决
    更改数据库的物理位置
    Transact-SQL(点击这里)bitsCN.Com
    2、收缩数据库MicrosoftSQLServer2000允许收缩数据库中的每个文件以删除未使用的页。数据和事务日志文件都能收缩。数据库文件能作为组或独立地进行手工收缩。数据库也可设置为按给定的时间间隔自动收缩。该活动在后台进行,并且不影响数据库内的用户活动。
    当使用ALTERDATABASEAUTO_SHRINK选项(或sp_dboption系统存储过程)将数据库设置为自动收缩,且数据库中有足够的可用空间时,则会发生收缩。不过,如果不能设置要删除的可用空间的百分比,则将删除尽可能多的可用空间。若要设置将删除的可用空间量,例如只删除数据库中当前可用空间的50%,请使用SQLServer企业管理器内的"属性"对话框进行数据库收缩。bitsCN_com
    不能将整个数据库收缩到比其原始大小还要小。因此,如果数据库创建时的大小为10MB,后来增长
    到100MB,则该数据库最小能够收缩到10MB(假定已删除该数据库中所有数据)。
    不过,使用DBCCSHRINKFILE语句,能将单个数据库文件收缩到比其初始创建大小还要小。必须分别收缩每个文件,而不要试图收缩整个数据库。
    事务日志文件可在固定的边界内收缩。虚拟日志的大小决定可能减小的大小。因此,不能将日志文件收缩到比虚拟日志文件还小。另外,日志文件能按和虚拟日志文件的大小相等的增量收缩。例如,一个初始大小为1GB的较大事务日志文件能包括五个虚拟日志文件(每个文件大小为200MB)。收缩事务日志文件将删除未使用的虚拟日志文件,但会留下至少一个虚拟日志文件。因为此示例中的每个虚拟日志文件都是200MB,所以事务日志最小只能收缩到200MB,且每次只能以200MB的大小收缩。若要让事务日志文件收缩得更小,能创建一个更小的事务日志,并允许他自动增长,而不要创建一个较大的事务日志文件。bitsCN.nET中国网管博客
    在SQLServer2000中,DBCCSHRINKDATABASE或DBCCSHRINKFILE操作试图即时将事务日志文件收缩到所需求的大小(以四舍五入的值为准)。在收缩文件之前应截断日志文件,以减小逻辑日志的大小并将其标记为不包含逻辑日志所有部分的不活动的虚拟日志。说明不可能在备份数据库或事务日志时收缩数据库或事务日志。反之,也不可能在收缩数据库或事
    务日志时创建数据库或事务日志备份。
    收缩数据库
    Transact-SQL:DBCCSHRINKDATABASE收缩指定数据库中的数据文件大小。
    语法DBCCSHRINKDATABASE(database_name[,target_percent][,{NOTRUNCATE|TRUNCATEONLY}])
    参数database_name
    是要收缩的数据库名称。数据库名称必须符合标识符的规则。bitsCN.Comtarget_percent
    是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
    NOTRUNCATE
    导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。
    TRUNCATEONLY
    导致将数据文件中的所有未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动所有数据。不试图重新定位未分配页的行。使用TRUNCATEONLY时,忽略target_percentis。
    注释MicrosoftSQLServer可收缩:
    特定数据库的所有数据和日志文件。执行DBCCSHRINKDATABASE。
    一次一个特定数据库中的数据或日志文件。执行DBCCSHRINKFILE。DBCCSHRINKDATABASE以每个文件为单位对数据文件进行收缩。然而,DBCCSHRINKDATABASE在对日志文件进行收缩时,看起来似乎所有的日志文件都存在于一个连续的日志池中。BBS.bitsCN网管论坛
    假设名为mydb的数据库有两个数据文件和两个日志文件。这些数据文件和日志文件大小都为10MB。第一个数据文件包含6MB数据。对于每个文件,SQLServer计算目标大小,即要收缩文件到的大小。当用target_percent指定DBCCSHRINKDATABASE时,SQLServer计算的目标大小是收缩后文件中的target_percent可用空间大
    
  • 下一篇资讯: 毕业论文android移植
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师