




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
sqlserver收缩数据库为什么要收缩数据库SQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。为此,SQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。不能将整个数据库收缩到比其原始大小还要小。因此,如果数据库创建时的大小为 10 MB,后来增长到100MB,则该数据库最小能够收缩到10MB(假定已经删除该数据库中所有数据)。不能在备份数据库时收缩数据库,也不能在收缩数据库时创建或备份数据库。4.8.2 什么是自动收缩和手动收缩SQL Server 2000支持对数据库实行自动收缩和手工收缩。在如图4.38所示的数据库属性的【选项】选项卡中选择【自动收缩】复选框将实现自动收缩。SQL Server 2000服务器每30分钟检查数据库的空间使用情况。如果发现大量闲置的空间,就会自动缩小数据库的文件大小。图4.38 设置自动收缩功能利用企业管理器或DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句可以完成手工收缩操作。4.8.3 收缩数据文件和日志文件有什么不同不论是收缩数据文件还是日志文件,都会确实减少物理文件的大小,两者不同之处如下。数据文件可以作为文件组或单独地进行手工收缩。日志文件收缩分别考虑每个文件,基于整个日志文件进行收缩。日志文件的收缩将删除非活动的VLF。4.8.4 收缩操作是如何执行的文件的收缩操作始终从文件末端开始反向进行。例如,如果要将一个5GB的文件收缩到4GB,则SQL Server 2000将从文件的最后一个1GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页面,则SQL Server 2000会将这些页面重新定位到保留的部分。只能将数据库收缩到没有剩余的可用空间为止。例如,某个5GB的数据库已经有4GB的数据,如果指定将数据库收缩到3GB,则实际上只会释放1GB的空间。如果收缩操作无法收缩日志文件中的所有空间,系统将反馈信息,指出必须执行什么操作以释放更多符合条件的空间。4.8.5 收缩数据库的案例(1)在【企业管理器】的管理目标导航【树】下选择刚建立的数据库mydatabase单击鼠标右键,在出现的快捷菜单中选择【所有任务】/【收缩数据库】选项。(2)出现如图4.39所示的【收缩数据库】界面。q 在【数据库大小】区域可以查看【已经分配的空间】和【可用的空间】,这是决定是否进行收缩的重要依据。q 在【收缩操作】区域的【收缩后文件中的最大可用空间】文本框中设置收缩数据库后数据文件中的最大可用空间百分比。选择【在收缩前将页移到文件起始位置】指定在收缩数据库前将页移到文件的起始位置,选择该选项可能会影响性能。q 在【调度】区域选择【根据调度收缩数据库】复选框,单击按钮可以设置自动收缩数据库的时间。 图4.39 【收缩数据库】界面图4.40 【收缩文件】界面(3)在图4.39中的【收缩文件】区域单击收缩文件按钮出现如图4.40所示的【收缩文件】界面,可以对数据文件或日志文件设置更精细的收缩策略。在【数据库文件】下拉列表框中可以选择要收缩的数据文件或者日志文件。在【收缩操作】区域可以设置文件的具体收缩操作,包括是否截断、压缩页以及收缩后的文件大小等。在【延迟收缩】区域可以设置自动收缩的时间。完成设置后单击按钮。收缩数据库可以删除已经分配但尚未使用的页,从而更好地利用存储空间。与收缩相对应的是扩充数据库,即修改数据库的属性即可。收缩后的可用空间应该留有一定的空闲空间,这样当数据发生更改时不必额外分配空间。2:1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。 如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。2、sql server运行中,是否能删除主数据库事务日志文件 步骤如下:(1)、分离数据库企业管理器数据库右击你要删除日志的数据库所有任务分离数据库(2)、然后删除日志文件(3)、然后再附加数据库企业管理器数据库右击数据库所有任务附加数据库这时候只附加。mdf就可以了。3、压缩SQL数据库及日志的详细方法SQL Server 2000基础教程压缩数据库数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:1、用Enterprise Manager 压缩数据库在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项,就会出现如图6-10 所示的对话框。可以在图6-10 所示的对话框中选择数据库的压缩方式,也可以选择使用压缩计划或压缩单个文件单击图6-10 中的“Files”按钮,会出现如图6-11 所示的压缩数据库文件对话框,可以针对每个数据库文件进行不同的压缩设置。单击图6-10 中的“Change” 按钮,会出现如图6-12 所示的压缩计划编辑对话框,可以指定压缩计划的执行方式。单击图6-12 中的“Change” 按钮,会出现如图6-13 所示的循环工作计划编辑对话框,可以编辑计划执行的周期或时间点。设置完成后单击“OK” 按钮就开始压缩数据库,在压缩结束后会显示一个压缩情况信息框。 2、用Transact-SQL 命令压缩数据库可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。(1) DBCC SHRINKDATABASE DBCC SHRINKDATABASE 命令语法如下:DBCC SHRINKDATABASE (database_name , target_percent, NOTRUNCATE | TRUNCATEONLY )各参数说明如下: target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。 NOTRUECATE将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。如果不选择此选项,则剩余的空间返还给操作系统。 TRUNCATEONLY将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。例6-14: 压缩数据库mytest 的未使用空间为数据库大小的20%。dbcc shrinkdatabase (mytest, 20)运行结果如下:DBCC execution completed. If DBCC printed error messages, contact your system administrator. (2) DBCC SHRINKFILEDBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:DBCC SHRINKFILE ( file_name | file_id , target_size |, EMPTYFILE | NOTRUNCATE | TRUNCATEONLY )各参数说明如下:file_id指定要压缩的文件的鉴别号(Identification number, 即ID)。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述的Sp_helpdb 系统存储过程来得到。 target_size指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。 EMPTYFILE指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE 命令中的含义相同。 例6-15: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)企业管理器里面的方法:1、打开企业管理器2、打开要处理的数据库3、点击最上面菜单工具SQL查询分析器,打开SQL查询分析器4、在输入窗口里面输入:Code:DUMP TRANSACTION 数据库名 WITH NO_LOGBACKUP LOG 数据库名 WITH NO_LOGDBCC SHRINKDATABASE(数据库名)点击绿色的小三角(或按F5)执行查询,等状态栏提示处理完成即可!程序里面的方法:压缩数据库日志-1.清空日志exec(DUMP TRANSACTION +dbname+ WITH NO_LOG) -2.截断事务日志:exec(BACKUP LOG +dbname+ WITH NO_LOG)-3.收缩数据库文件(如果不压缩,数据库的文件不会减小exec(DBCC SHRINKDATABASE(+dbname+)4、减小日志的方法:一、用如下步做了:1、DUMPTRANSACTION庫名WITHno_log2、dbcc shrinkfile(logfilename)3、收縮數據庫4、設定自動收縮。二、分离数据库,删除日志文件,再附加,OK!右击数据库所有任务分离or 附加三、1、backup log庫名WITHno_log,2、dbcc shrinkfile(logfilename),3、收縮數據庫4、設定自動收縮。1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 库名 WITH NO_LOG -收缩数据库 DBCC SHRINKDATABASE(库名) -收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) sql2000的方法: backup log 数据库名 with NO_LOG backup log 数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省桐乡市第一中学2026届化学高一第一学期期中统考试题含解析
- 2026届湖北省黄冈市晋梅中学化学高一上期中综合测试试题含解析
- 主题中秋节活动营销策划方案
- 乡卫生院工作方案
- 兴国县旅游试题及答案
- 3招增强孩子的社交信心
- 2026届湖北省黄冈市化学高二上期中考试试题含解析
- 2026届甘肃省永昌县第四中学化学高二上期末达标测试试题含答案
- 隐性性格测试题及答案
- 延禧攻略试题及答案
- 金属与石材幕墙工程技术规范-JGJ133-2013含条文说
- JJG 1114-2015液化天然气加气机
- GB/T 4857.17-2017包装运输包装件基本试验第17部分:编制性能试验大纲的通用规则
- GB/T 23469-2009坠落防护连接器
- GB/T 13477.11-2017建筑密封材料试验方法第11部分:浸水后定伸粘结性的测定
- 语文课程与教学论课件
- LTD2100探地雷达技术培训探测过程课件
- CCU二月份理论考试试题
- 医疗器械生产质量管理标准标准教材
- Q∕GDW 12106.3-2021 物联管理平台技术和功能规范 第3部分:应用商店技术要求
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论