有没有办法找出DBCC SHRINKFILE
语句的进度?
这是我运行它的方式
dbcc 收缩文件('main_data',250000)
我在 SQL Server 2005 和 2008 上运行上述语句。
[更新] 这是我为了检查进度和正在运行的文本而运行的查询。
select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
, R.cpu_time, R.total_elapsed_time, R.percent_complete
from sys.dm_exec_requests R
cross apply sys.dm_exec_sql_text(R.sql_handle) T
Run Code Online (Sandbox Code Playgroud) 我不知道如何缩小数据库 ldf 文件的大小。
DBA 说我应该使用
backup log dbname with truncate_only
虽然看起来它在 SQL 查询分析器中正确执行,但 ldf 文件仍然超过 2 Gb。
**根据下面的一些评论和一些答案进行澄清。***有问题的特定数据库是我的笔记本电脑上的一个数据库,我仅将其用于开发过程。日志文件增长到看起来会导致磁盘已满的程度。不涉及生产风险。我了解我提出的问题中的方法和我接受的答案在生产环境中存在风险。*
假设我有一个 SQL Server 数据库,其数据文件的初始大小为 100 GB,但它只包含 10 GB 的数据。然后,数据库备份的大小将仅为 10 GB。
我想将此备份还原到不同的服务器(或同一服务器上的不同数据库),但我不希望它占用与原始备份相同的磁盘空间 (100 GB),这是默认情况下发生的情况。
在进行备份之前我无法缩小原始数据库(它是一个生产数据库,它需要那么多预先分配的空间);我可以在还原完成后缩小还原的数据库,但我真的希望它在这样做时不占用 100 GB;此外,在这种特定情况下,我没有那么多可用磁盘空间,因此不会进行任何还原。
有什么办法可以恢复数据库并让它只占用与它包含的实际数据一样多的空间?
我找到了一个版本列表及其 Solaris 发行版编号http://download.oracle.com/docs/cd/E19253-01/819-5461/appendixa-1/index.html
我知道您可以通过用更大的驱动器替换驱动器或向池中添加新驱动器或镜像来扩展池。我听说 ZFS 尚不支持通过删除驱动器/镜像来缩小池。但这可能已经改变了。
哪个版本(如果有)释放了收缩池的能力?
我有一个 5TB 的硬盘,我想把它缩小到 2TB。
我使用谷歌计算引擎 PaaS。
我怎样才能做到这一点?
如果 Google 的工具无法解决此问题,您能否建议任何工具来手动执行此操作?
我有一个当前 150GB 的数据库文件,但只有 75GB 正在使用 - 这是因为我将所有索引(其他 75GB)移动到一个新的数据文件中。我想从这个数据文件中回收至少一部分空间,但是当我尝试缩小文件时,它无限期地“执行”,最终由于网络中断或其他我无法控制的事情而被取消(在跑步的日子)。即使使用“缩小到特定大小”功能并指定它只剪掉 10MB 似乎也永远不会返回 - 它只是在过程中断之前一直存在。
有没有另一种方法可以回收这个空间,甚至一次一点?
编辑:有人发布了一个链接,解释了为什么我不应该缩小我的数据库。我明白,无论如何我都想缩小它。这台服务器上的磁盘空间非常宝贵,并且数据库在很长一段时间内不会再次扩展到这个未使用的空间 - 正如我之前所说,我将索引从数据文件中迁移出来以释放这个空间,所以现在它被浪费了.
我在 Windows 7 和 2008 R2 上使用 VMplayer。在来宾操作系统中,在 VMware 工具中,“收缩”选项卡上有一个“准备收缩”选项。在主机 VMplayer 菜单中有“碎片整理”和“压缩”选项(在 VM 关闭时可用)。VMplayer 文档说,您还应该在来宾内和主机中的 VM 外使用基于操作系统的碎片整理工具进行碎片整理。剩下五个操作:
我的问题是这个。这些操作中的哪些是必需的,应该按照什么顺序执行?
我的 SQL Server 2008 数据库文件 (.mdf) 文件接近 24 MB,但日志文件增长到 15 GB。如果我想缩小数据库,需要考虑哪些要点?
收缩会导致任何索引碎片,它会影响我的数据库性能吗?
shrink ×8
sql-server ×5
backup ×1
database ×1
hard-drive ×1
log-files ×1
pool ×1
restore ×1
zfs ×1