ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:56.10KB ,
资源ID:3277452      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3277452.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(截断数据库日志方法.docx)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

截断数据库日志方法.docx

1、有用的 SQL 语句关键是要在截断日志之前做一次完整备份。做完整备份的时候,用参数 WITH NO_LOG;然后执行收缩数据库的操作。BACKUP DATABASE ado TO DISK = NC:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupado0427inrunning.bak WITH NOFORMAT, NOINIT, NAME = Nado-完整数据库备份 , SKIP, NOREWIND, NOUNLOAD, STATS = 10 ;BACKUP LOG ado TO DISK = NC:Program FilesMicr

2、osoft SQL ServerMSSQL.1MSSQLBackupado0427inrunning.bak WITH NO_LOG;GOUSE ado;GO DBCC SHRINKDATABASE(Nado);执行结果为:SQL Server 事务日志的收缩和截断SQL Server 中事务日志的作用:持续记录数据库所有的事务和这些事务对数据库所做的修改;一旦数据库出现灾难事件,就需要事务日志来进行近期数据的恢复操作。但是,在此条件下受益的同时也要付出相应的代价:在活动数据库中,事务日志会消耗大量的存储空间,假如你不做任何的干预,事务逻辑日志将会一直增长,直到塞满存储这些日志文件的所有可用空

3、间。下面我们来详细介绍 SQL Server 提供的两个用来平衡事务日志对空间巨大需求的操作:收缩事务日志和截断事务日志。日志收缩截断日志虽然确实从日志文件中清除了事务,但它并不会真正的减小物理日志文件的大小。SQL Server 希望事务日志最终会扩展到其截断前的大小,所以截断不会释放已经分配给日志的硬盘空间。如果你的日志在某一时刻人为地扩展到某个大小,却再也无法恢复到这个大小的话可就麻烦大了。在这种情况下,要释放硬盘物理空间做其他用途,就要手动进行事务日志文件收缩操作。你可以使用下面的 T-SQL 命令实现日志文件的收缩:DBCC SHRINKFILE(,)上面命令中的 desired_s

4、hrink_size 指的是你想要回收的硬盘空间大小 (以 MB 为单位)。你可以在执行完事务日志截断操作之后立即回收大部分的磁盘空间。日志截断截断事务日志操作就是清除事务日志文件中的非活动记录。在一般的情况下,SQL Server能够自动执行截断操作,不需要人工干预管理。截断的频率取决于数据库的使用程度。你每进行一次完整恢复模式或大容量日志恢复模式的数据库备份,SQL Server 就会截断一次事务日志。如果是在简单恢复模式下(不能还原事务日志),SQL Server 会在每个检查点之后截断事务日志。你也可以通过间接的方式手动驱使 SQL Server 执行事务日志截断操作,需要运行备份操作

5、,不过你可以给 SQL Server 下指示,表明你只想执行事务日志的备份操作,不做执行其他任何操作。通过以下的 T-SQL 命令仍然可以达到上述效果:BACKUP LOG WITH TRUNCATE_ONLY; 截断数据库日志方法1. 为什么要截断数据库日志日志文件很重要,它记录用户对数据库的所有操作,在发生故障时,可以以此回复。但日志文件的大小到达一定程度时,会影响数据库性能。经常的,日志文件会大于数据库主文件本身,长时间不截断,甚至会达到 10-20 倍之多。如果 ERP 用户操作越频繁,相差会越大。比如,数据库文件为 1G,而日志文件可能会有 10G。一般 3-6 个月检查一次日志文件

6、的大小。如果发现,日志文件比数据库文件大 35 倍,应该考虑截断数据库日志。在截断之前,锐减使用最简单的方法:务必做一次“完整备份”!2. 检查日志文件的大小方法有多种。3. 截断日志文件在查询分析器中,使用 SQL 语句:BACKUP LOG database_name | database_name_varWITH NO_LOG | TRUNCATE_ONLY 例:backup log “database_name” with no_log4. 收缩数据库做完第三个步骤之后,数据库的日志文件的大小将会被缩小,有可能只有 1M 左右的大小。具体缩小到一个什么程度,得看数据库的日志文件在数据库

7、创建时的大小。截断数据库的命令 DBCC SHRINKDATABASEDBCC SHRINKDATABASE 收缩指定数据库中的数据文件和日志文件的大小。语法:DBCC SHRINKDATABASE ( database_name | database_id | 0 ,target_percent , NOTRUNCATE | TRUNCATEONLY ) WITH NO_INFOMSGS 例子:收缩 ado 的数据库文件和日志文件USE adoGODBCC SHRINKDATABASE(Nado )GO参数:database_name | database_id | 0 要收缩的数据库的名称

8、或 ID。如果指定 0,则使用当前数据库。target_percent 数据库收缩后的数据库文件中所需的剩余可用空间百分比。NOTRUNCATE 通过将已分配的页从文件末尾移动到文件前面的未分配页来压缩数据文件中的数据。target_percent 是可选参数。文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。因此,指定 NOTRUNCATE 时,数据库看起来未收缩。NOTRUNCATE 只适用于数据文件。日志文件不受影响。TRUNCATEONLY 将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。数据文件只收缩到最近分配的区。如果与 TRUNCATEONLY

9、 一起指定,将忽略 target_percent。TRUNCATEONLY 只适用于数据文件。日志文件不受影响。WITH NO_INFOMSGS 取消严重级别从 0 到 10 的所有信息性消息。压缩日志及数据库文件大小1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩 ,数据库的文件不会减小 企业管理器-右键你要压缩的数据库-所有任务- 收缩数据库- 收缩文件 -选择日志文件- 在收缩方式里选择收缩至 XXM,这里会给出一个允许收缩到的最小 M 数,直接输入这个

10、数,确定就可以了 -选择数据文件- 在收缩方式里选择收缩至 XXM,这里会给出一个允许收缩到的最小 M 数,直接输入这个数,确定就可以了 也可以用 SQL 语句来完成 -收缩数据库 DBCC SHRINKDATABASE(客户资料) -收缩指定数据文件,1 是文件号,可以通过这个语句查询到 :select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件 a.分离数据库: 企业管理器-服务器- 数据库- 右键-分离数据库 b.在我的电脑中删除 LOG 文件 c.附加数据库: 企业管理器-服务器- 数据库- 右键-附加数据库 此法将生成新的 LO

11、G,大小只有 500 多 K 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 EXEC sp_detach_db dbname = pubs b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db dbname = pubs, physname = c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf 5.为了以后能自动收缩,做如下设置: 企业管理器-服务器- 右键数据库- 属性-选项-选择“ 自动收缩“ -SQL 语句设置方式 : EXEC sp_dbopt

12、ion 数据库名 , autoshrink, TRUE 6.如果想以后不让它日志增长得太大 企业管理器-服务器- 右键数据库- 属性-事务日志 -将文件增长限制为 xM(x 是你允许的最大数据文件大小) -SQL 语句的设置方式 : alter database 数据库名 modify file(name=逻辑文件名,maxsize=20) - 如何使 Microsoft SQL Server 的日志文件不会增大? 作者:怡红公子 来源:开发者俱乐部 加入时间:2002-12-11 当易软件站 如何缩小 MSSQL 的日志文件已经是一个经常性的问题了,不过这个问题在精华区已经有不少答案了,我这

13、里也不再赘述。 现在我们讨论一下治本的问题,即如何使日志文件不再增大? 先介绍一个简单的方法。 就是把数据库的故障还原模型设置为“简单”(SQL2K)。这样它就会在 Checkpoint 的时候截断日志。 具体操作方法是: 1、在 Enterprise Manager 中右键点数据库, “属性|选项|故障还原”,选择“简单”就可以了,如果是 SQL7,在“属性|选项 ”中有一个“trunc. log on chkpt. ”,选中就可以了。 2、如果不想用 Enterprise Manager,在 Query Analyser 或者 isql 里面执行 EXEC sp_dboption your

14、_dbname, trunc. log on chkpt., TRUE 就可以了 但是,要注意的是,这样做了之后,虽然日志不会增大,但是也意味着你一旦出现误操作,将不会有利用日志恢复的机会。(如何利用日志来恢复请参见精华区的 FAQ) 所以,绝对不建议在生产数据库上截断日志,除非你有充足的理由和足够的把握,或者 承担责任的不是你。 既然这种方法不安全,下面我将介绍一种安全的方法。 大家都知道,SQL Server 在完成事务日志备份时将自动截断事务日志中的不活动部分。这些不活动的部分包含已完成的事务,因此在恢复过程中不再使用。相反,事务日志的活动部分包含仍在运行但尚未完成的事务。SQL Server 将重新使用事务日志中这些截断的非活动空间,而不是任由事务日志继续增大并占用更多的空间。 所以,我们备份事务日志就可以使日志文件不再增大了。 但是呢,日志文件一直放着也不是个办法,删除呢,又会失去恢复的可能性。 我们可以结合完全备份来做。做过完全备份之前的事务日志就可以删除了。 比如说,一个备份计划,每天一次完全备份,保留 7 天内的,每 15 分钟一次事务日志备份,保留 2 天的。 用数据库维护计划向导可以很方便的建立备份计划,不过一定要记得设置保留多久的备份哦,否则硬盘空间被备份给占满了就坏事了。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。