收缩数据库有哪些,怎样在SQL Server 2000中收缩数据库
来源:整理 编辑:黑码技术 2024-08-13 04:53:50
本文目录一览
1,怎样在SQL Server 2000中收缩数据库
本主题介绍如何使用 SQL Server Management Studio 中的对象资源管理器收缩数据库。收缩后的数据库不能小于数据库的最小大小。最小大小是在数据库最初创建时指定的大小,或是上一次使用文件大小更改操作(如 DBCC SHRINKFILE)设置的显式大小。例如,如果数据库最初创建时的大小为 10 MB,后来增长到 100 MB,则该数据库最小只能收缩到 10 MB,即使已经删除数据库的所有数据也是如此。收缩数据库在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。展开“数据库”,再右键单击要收缩的数据库。指向“任务”,指向“收缩”,然后单击“数据库”。根据需要,可以选中“在释放未使用的空间前重新组织文件”复选框。如果选中该复选框,必须为“收缩后文件中的最大可用空间”指定值。选中该选项的作用与执行 DBCC SHRINKDATABASE 时指定 target_percent 值相同。清除该选项的作用与使用 TRUNCATEONLY 选项执行 DBCC SHRINKDATABASE 相同。TRUNCATEONLY 将文件收缩到最后分配的区。这将减小文件的大小,但不移动任何数据。默认情况下,该选项为清除状态。输入收缩数据库后数据库文件中剩下的最大可用空间百分比。允许的值介于 0 和 99 之间。该选项仅在选中“在释放未使用的空间前重新组织文件”时可用。单击“确定”。收缩数据库当数据库中的数据库文件过于庞大或者存在未使用页时,可以使用收缩数据库方法来实现对数据库的收缩,同样,事务日志文件也可以收缩。数据库文件可以作为组或单独地进行手工收缩,也可设置为按指定的时间间隔自动收缩。收缩数据库的活动是在后台进行,并不影响数据库内的用户活动。操作步骤如下:(1)打开SQL Server企业管理器。双击打开“数据库”节点,在要收缩的数据库名称上,单击鼠标右键,在弹出的快捷菜单中选择“所有任务”→“收缩数据库”命令,弹出“收缩数据库”对话框,如图1所示。 收缩数据库(2)指定数据库的收缩量,可以从以下选项中选择。 在“收缩后文件中的最大可用空间”文本框中输入收缩后数据库中剩余的可用空间量。以“数据库大小,可用空间”值作为依据。如最大可用空间是“25%”,则在该选项中设置小于该数值的百分比,如“12%”。 选择“在收缩前将页移到文件起始位置”复选框,使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。(3)在“调度”选项框中,选择是否自动定期执行数据库压缩操作。选中“根据本调度来收缩数据库”复选框,单击“更改”按钮,创建或更改自动收缩数据库的频率和时间。(4)最后单击“确定”按钮完成操作。:第1步,在sql server服务器上依次单击“开始”→“所有程序”→microsoft sql server→“企业管理器”菜单命令,打开sql server enterprise manager窗口。使用windows身份验证连接上sql server。第2步,在左窗格中依次展开microsoft sql server→“sql server组”→“sql server服务器”→“数据库”目录,然后右键单击目标数据库名称(如cpcw data),选择“属性”快捷命令。在打开的“cpcw data 属性”对话框中单击“选项”标签,并在“故障还原”模型下拉菜单中选择“简单”模型。最后单击“确定”按钮使设置生效,如图2008120233所示。图2008120233 选择“简单”数据还原模型第3步,返回企业管理器窗口,右键单击目标数据库名称,选择“所有任务”→“收缩数据库”快捷命令,如图2008120234所示。图2008120234 选择“收缩数据库”命令第4步,在打开的“收缩数据库”对话框中无须调整参数,直接单击“确定”按钮开始收缩数据库的操作。完成后单击“确定”按钮即可。日志在一些异常情况下往往是恢复数据库的重要依据,收缩数据库操作并不能在很大程度上减小数据库大小,其主要作用是收缩日志大小。因此应当定期进行上述操作,以免数据库日志过大,如图2008120235所示。图2008120235 执行“收缩数据库”操作
2,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 语句时。自动收缩操作发生时。日志收缩操作依赖于最初的日志截断操作。日志截断操作不减小物理日志文件的大小,但减小逻辑日志的大小,并将没有容纳逻辑日志任何部分的虚拟日志标记为不活动。日志收缩操作会删除足够多的不活动虚拟日志,将日志文件减小到要求的大小。减小大小的单位是一个虚拟日志文件。例如,如果有个 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 语句,不出现任何信息。
3,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:
收缩数据库有哪些 怎样在SQL Server 2000中收缩数据库