本文目录一览

1,SQL SERVER 有没有快速收缩数据库的方法

SQL SERVER 有没有快速收缩数据库的方法DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小。语法DBCC SHRINKDATABASE( database_name [ , target_percent ][ , )参数DBCC SHRINKFILE收缩相关数据库的指定数据文件或日志文件大小。

SQL SERVER 有没有快速收缩数据库的方法

2,如何收缩数据库

你用数据库管理器选中数据库,先分离,然后再附加,然后再点收缩,收缩的时候先收缩日志文件,一般能收缩很多,记得要填写数字啊,比如上面提示能收缩为0,你就填个5兆,这样预留一点空间,而且很快,收缩完日志文件之后再收缩数据库 同理比最小能收缩量大几兆就可以了,但是收缩数据库比较慢 需要很多时间
利用向导,选择你要收缩的数据库,右键->所有任务->收缩数据库-〉在里面设置收缩比执行一下就行,如果,操作日志文件的话,我觉的没有必要,因为日志不会太大了,如果太大的话,直接删除就行,没必要收缩了,

如何收缩数据库

3,如何收缩数据库日志文件大小

1.先分离数据库,然后删除日志文件,再附件数据库。2.收缩文件,选择日志文件,设置将文件收缩到0M,试了一下,只能从65G收缩到55G,也就是只释放了未使用的空间。方法 二、1.选中数据库,右键属性/选项,把恢复模式从“完整”改为“简单”。2.选中数据库,右键任务/收缩文件,选择日志文件,设置将文件收缩为0M,确定。3.再将恢复模式从“简单”-“完整”即可。
1、oracle 数据库默认情况下,在安装的时候,会有三个重做日志文件。2、当第一个重做日志文件达到一定容量时,就会停止写入,而会转向第二个日志文件。3、第二个也满时,就会转向第三个,当第三个满时,就会往第一个日志文件中写入。4、在往这原来的纪录中写入重做日志文件的时候,是否需要对原有的纪录进行备份则是根据用户需求的不同,存在两种处理模式。一种是不需要数据库进行自动备份,这种模式就叫做非归档模式;一种是在重做日志改写原有的重做日志文件以前,数据库会自动对原有的日志文件进行备份的话,这种操作模式就叫做归档模式。5、所以你说的数据文件会一直增大的原因是归档模式,只要设置成非归档模式日志文件就不会一直增大。---以上,希望对你有所帮助。

如何收缩数据库日志文件大小

4,哪种命令可以用来压缩数据库容量

占用的空间是每次扩展后固定的,你删除了内容并不能改变他占用 的空间。数据库压缩是针对数据库存储的内容主要是文本进行压缩存储以节约空间的一种方法。目前主流数据库都有提供该功能,但是压缩率很低,效果不理想。国内有专门做静态数据压缩的产品dbplus可供参考:www.dbplus.cn
数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:1、用Enterprise Manager 压缩数据库在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项、用Transact-SQL 命令压缩数据库可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。(1) DBCC SHRINKDATABASE DBCC SHRINKDATABASE 命令语法如下:DBCC SHRINKDATABASE (database_name [, target_percent][, 各参数说明如下: target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。 NOTRUECATE将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。如果不选择此选项,则剩余的空间返还给操作系统。 TRUNCATEONLY将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。 压缩数据库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_id指定要压缩的文件的鉴别号(Identification number, 即ID)。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述的Sp_helpdb 系统存储过程来得到。 target_size指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。 EMPTYFILE指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE 命令中的含义相同。 例: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)

5,sql收缩数据库日志的几种办法

截断事务日志 如果从来没有从事务日志中删除日志记录,逻辑日志就会一直增长,直到填满容纳物理日志文件的磁盘上的所有可用空间。在某个即时点,必须删除恢复或还原数据库时不再需要的旧日志记录,以便为新日志记录腾出空间。删除这些日志记录以减小逻辑日志的大小的过程称为截断日志。 永远不能截断事务日志的活动部分。日志的活动部分是在任何时间恢复数据库所需的日志部分,因此必须有回滚所有未完成的事务所需的日志映像。这部分必须始终在数据库中,因为一旦服务器发生故障,在服务器重新启动时必须用它恢复数据库。日志活动部分起点处的记录由最小恢复日志序号 (minlsn) 标识。 为数据库选择的恢复模式决定了在数据库内,必须在活动部分之前保留的事务日志量。虽然 minlsn 之前的日志记录对恢复活动事务没有作用,但在使用日志备份将数据库还原到故障点时,必须用这些记录前滚修改。如果由于某种原因丢失了数据库,则可以通过还原上次的数据库备份,然后还原自该数据库备份后的每个日志备份来恢复数据。这意味着这些日志备份必须包含自数据库备份后所写入的每个日志记录。当维护事务日志备份序列时,日志记录直到写入日志备份时才能被截断。 删除数据或事务日志 删除数据或事务日志文件将从数据库删除该文件。仅当文件上不存在已有的数据或事务日志信息时才可能从数据库删除文件;文件必须完全为空后才能删除。若要将数据从一个数据文件迁移到同一文件组中的其它文件中,请使用 dbcc shrinkfile 语句,并指定 emptyfile 子句。sql server 即不再允许将数据置于文件上,从而通过使用 alter database 语句或 sql server 企业管理器内的属性页,使之能够删除。 通过将事务日志数据从一个日志文件迁移到另一个以删除事务日志文件是不可能的。若要从事务日志文件清除非活动的事务,必须截断或备份该事务日志。一旦事务日志文件不再包含任何活动或不活动的事务,该日志文件就可以从数据库中删除。 添加或删除文件后,请立即创建数据库备份。在创建完整的数据库备份之前,不应该创建事务日志备份。 收缩数据库 sql server 2000 自动收缩有大量可用空间的数据库。该进程仅适用于那些 autoshrink 选项设置为 true 的数据库。服务器定期检查每个数据库中的空间使用情况。如果发现数据库中有大量闲置空间,而且它的 autoshrink 选项设置为 true,sql server 就缩小该数据库中的文件大小。也可以使用 sql server 企业管理器或 dbcc shrinkdatabase 和 dbcc shrinkfile 语句,手工收缩数据库中的文件。 文件始终从末端开始收缩。例如,如果有个 5 gb 的文件并将 dbcc shrinkdb 语句中的 target_size 指定为 4gb,则 sql server 将从文件的最后一个 1 gb 开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则 sql server 首先将这些页重新定位到保留的部分。只能将数据库收缩到没有剩余的可用空间为止。例如,某个 5gb 的数据库有 4 gb 的数据并且 dbcc shrinkdatabase 语句的 target_size 被指定为 3 gb,则只释放 1 gb。 如果 dbcc shrinkdatabase 或 dbcc shrinkfile 语句无法收回日志文件中的所有空间,该语句将发出信息,指示必须执行什么操作以释放更多符合条件的空间。 收缩事务日志 在下列情况下,日志文件的物理大小将减少: 执行 dbcc shrinkdatabase 语句时。 执行引用日志文件的 dbcc shrinkfile 语句时。 自动收缩操作发生时。 日志收缩操作依赖于最初的日志截断操作。日志截断操作不减小物理日志文件的大小,但减小逻辑日志的大小,并将没有容纳逻辑日志任何部分的虚拟日志标记为不活动。日志收缩操作会删除足够多的不活动虚拟日志,将日志文件减小到要求的大小。 减小大小的单位是一个虚拟日志文件。例如,如果有个 600 mb 的日志文件被分成了 6 个 100 mb 的虚拟日志,则该日志文件的大小只能按 100 mb 递减。比如,文件可以减小到 500 mb 或 400 mb,但不能减小到 433 mb 或 525 mb。 不能释放容纳逻辑日志部分的虚拟日志。如果某个日志文件中的所有虚拟日志都容纳了逻辑日志部分,则不能收缩该文件,直到截断操作在物理日志的末端将一个或更多的虚拟日志标记为不活动。 当收缩任何文件时,必须从文件的末端开始释放空间。当收缩事务日志文件时,从文件的末端开始释放足够的虚拟日志以将日志减小到用户所要求的大小。用户指定的 target_size 四舍五入为下一个最大的虚拟日志边界大小。例如,如果用户为包含 6 个 100 mb 虚拟日志文件的 600 mb 文件指定 325 mb 的 target_size,则删除最后两个虚拟日志文件,因此新的文件大小为 400 mb。 在 sql server 2000 中,dbcc shrinkdatabase 或 dbcc shrinkfile 操作试图立即将物理日志文件收缩到所要求的大小(以四舍五入的值为准): 如果虚拟日志中的逻辑日志部分没有超出 target_size 标记,则释放 target_size 标记之后的虚拟日志,并且成功完成 dbcc 语句,不出现任何信息。 如果虚拟日志中的逻辑日志部分超出 target_size 标记,则 sql server 2000 释放尽可能多的空间并发出一条信息。该信息告诉您需要执行什么操作以获得文件末端超出虚拟日志的逻辑日志部分。执行完该操作后,可以重新发出 dbcc 语句以释放剩余的空间。

文章TAG:收缩  数据  数据库  办法  收缩数据库的办法有哪些  SERVER  有没有快速收缩数据库的方法  
下一篇