标签: disk-space

Engineyard 空间上的 Postgres 为 100%,pg_xlog 充满了文件

我有一个快速增长的数据库。非常迅速。我的/db目录现在是 100%,并且pg_xlog.

我的背景是 Oracle 和 MySQL。我不知道这个数据库发生了什么。我知道我需要尽快聘请 Postgres DBA。

在短期内我可以做些什么来解决我的问题?我注意到删除数据并不能缓解我的空间问题。

pg_settings 的输出是:

archive_command             /bin/true                       configuration file
archive_mode                on                              configuration file
archive_timeout             1min                            configuration file
checkpoint_segments         100                             configuration file
checkpoint_timeout          5min                            configuration file
client_encoding             UTF8                            session
DateStyle                   ISO, MDY                        configuration file
default_statistics_target   100                             configuration file
default_text_search_config  pg_catalog.english              configuration file
effective_cache_size        1358MB                          configuration file
hot_standby                 on                              configuration file
hot_standby_feedback        on                              configuration file
lc_messages                 C                               configuration file
lc_monetary                 C                               configuration file
lc_numeric                  C                               configuration file
lc_time                     C                               configuration file
listen_addresses …
Run Code Online (Sandbox Code Playgroud)

postgresql disk-space

4
推荐指数
1
解决办法
2423
查看次数

删除后如何回收磁盘空间而不重建表?

我们的 PostgreSQL 9.0 Windows 生产服务器空间不足。

在我们的 100GB 数据库中,我们有一个包含 TOAST 二进制数据的大表。我们删除了一些行,需要将空间归还给 O/S。

我们没有足够的空间做表的全部重写,所有我的读书CLUSTERVACUUM FULL而且pg_repack是他们需要重写表。到目前为止,我的 google-fu 还不足以找到其他任何东西。

一些停机时间是可以接受的(约 2 小时),但是备份/恢复对于我们的目的来说太慢了,我也不热衷于在步骤之间删除数据库。

问题:如何在不进行全表重写的情况下将磁盘空间返回给 O/S?

(这是一个生产服务器,因此任何解决方案都必须有信誉/推荐/支持等)。

(PS 可以使用一个单独的更大的磁盘,如果可以以某种方式在其上重建表。表空间?)

postgresql windows disk-space vacuum postgresql-9.0

4
推荐指数
1
解决办法
2939
查看次数

如何通过一个查询查询所有文件、它们的填充级别和其他驱动器信息?

我需要一个将以下结果放在一起的查询:

  • 跨所有数据库的每个数据库文件一行
  • 包含有关文件所在的本地驱动器的信息的附加列
  • 有关文件大小和用途的信息

到目前为止,我已经整理了以下查询:

    SELECT 
     GETDATE() as dt
     ,@@SERVERNAME as srv
     ,F.name 
     ,F.physical_name    
     ,Round(F.size * 8 / 1024, 2) as FileSizeMb
    , CAST(FILEPROPERTY(F.name, 'SpaceUsed') AS INT)/128 as FileUsedMB
    ,(F.size/128 - CAST(FILEPROPERTY(F.name, 'SpaceUsed') AS INT)/128) AS FileFreeMB
    ,Convert(decimal(18,2), (F.size/128 - CAST(FILEPROPERTY(F.name, 'SpaceUsed') AS INT)/128) / (F.size * 8 / 1024.1) * 100) as SpaceFreePerc 
     ,stat.size_on_disk_bytes / 1024 / 1024 SizeOnDiskMb
     ,drv.volume_mount_point, drv.logical_volume_name, drv.available_bytes, drv.total_bytes 
 FROM sys.master_files F 
 inner join sys.dm_io_virtual_file_stats(NULL, NULL) stat on F.database_id = stat.database_id AND F.file_id = stat.file_id …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2 disk-space datafile compatibility-level

4
推荐指数
1
解决办法
175
查看次数

删除固定长度的列以释放空间是否明智?

我在 SQL Server 2005 中有一个巨大的表。(该表大约 40GB)我正在寻找最安全、最轻松的方式来释放空间或延迟其增长。

该表具有三个固定长度 ( char(10)) 列,它们 a) 完全不需要,b) 几乎完全填充了NULL.

如果我删除这些列,SQL Server 是否会在导入新记录时开始使用数据文件中释放的空间?或者由于分散在许多记录上,它们的碎片性质(我假设)是否意味着 SQL Server 将出于性能原因忽略该空间?

如果我删除它们,我可以运行收缩数据库来释放空间吗?

我是唯一使用这个数据库的开发人员,我知道这些列对于需求来说是多余的。15 年前,当不同的懒惰开发人员创建此数据库时,它们与其他所有列一起添加到平面文件中。

sql-server-2005 sql-server shrink disk-space

4
推荐指数
1
解决办法
554
查看次数

SQL Server 整合的容量规划

我的公司有一个用于 LANDesk 的小型 SQL 环境,他们希望将所有服务器迁移到每个区域的单个 SQL 集群。我想知道的是,我如何确定这种场景的容量?我已经获得了每台服务器(All Landesk)的数据库增长,我可以将这些数据作为整合到单个 SQL 集群的粗略估计吗?Windows 团队告诉我,来自这些服务器的数据有点不稳定,可能无法给出他们想要的准确结果。

有问题的新集群已经有几个数据库,但还没有达到最大容量。一旦他们开始添加来自服务器的剩余数据,它应该达到其全部容量。我已经运行 Perfmon 一段时间了,为了检查数据库增长,我使用了 sqlskills.com 中的以下 TSQL 代码

SELECT
[database_name] AS "Database",
DATEPART(month,[backup_start_date]) AS "Month",
AVG([backup_size]/1024/1024) AS "Backup Size MB",
AVG([compressed_backup_size]/1024/1024) AS "Compressed Backup Size MB",
AVG([backup_size]/[compressed_backup_size]) AS "Compression Ratio"
FROM msdb.dbo.backupset
WHERE [database_name] = N'AdventureWorks'
AND [type] = 'D'
GROUP BY [database_name],DATEPART(mm,[backup_start_date]);
Run Code Online (Sandbox Code Playgroud)

我能做些什么来获得准确的结果吗?LANDesk 团队不希望我使用旧服务器,我唯一的选择是使用他们计划迁移所有数据的新集群,而我只有 6 个月的数据。我应该问他们这个新集群的使用年数之类的问题吗?等等...

谢谢大家的答案。这是我从 PAL 工具中得到的

我使用 PAL 工具来确定 perfmon 数据,这些是它给出的一些警告
1) 响应时间大于 25 毫秒 2) 空闲时间少于 10% - 磁盘队列在 90% 的时间内至少有 1 个未完成的 I/O 3) …

migration storage disk-space sql-server-2012

4
推荐指数
1
解决办法
559
查看次数

我们如何从分配的命名空间中释放磁盘空间?/ ORA-03297

我们的磁盘空间不足。

该服务器有一个 420 GB 的 HDD,并运行一个 Microsoft SQL Server 和一个 Oracle Server(10g)。

Oracle 服务器最多使用 315 GB 空间。我们刚刚加载了一个 100GB 的 Microsoft SQL Server 数据库。现在我们有大约 5GB 可用空间,需要备份 SQL Server 数据库。

首先,我们尝试将备份移动到另一个驱动器,但这不起作用。

然后我们尝试调整我们的 Oracle Server 的分配空间的大小,它由 6 个文件组成,每个文件 20GB,每个文件使用大约 4GB。当我们尝试将此文件大小调整为 10GB 时,我们收到 Oracle 错误 ORA-03297,但显示已使用 4GB。经过多次尝试,我们可以将一些文件缩短到 16/17/18GB,但我们仍然需要更多空间。

是否有解决方案如何将 Oracle 文件的大小调整为每个 10GB?

我们尝试过 Coalesce 并释放未使用的空间,但这也不起作用。

oracle windows oracle-10g disk-space

3
推荐指数
1
解决办法
1万
查看次数

字符可变索引开销和长度限制

我对字符变化列有一个独特的限制,该列的长度通常约为 600,但可以达到 1000 万。

我已经阅读了B-Trees,但我无法确定索引将消耗多少磁盘空间,或者如此大的值是否会阻止索引高效运行。

具有如此大长度的字符变化列对 B 树索引的磁盘空间和时间有何影响?

postgresql performance index disk-space btree

3
推荐指数
1
解决办法
5318
查看次数

释放可用空间

我在 SQL Server 2008 R2 Express上运行一个相当大的数据库。最近我达到了 10GB 的限制,所以系统不允许我创建更多的对象,等等。

我已经归档了大量记录,大约是那里数据的四分之三。

数据库文件仍然在 10GB 左右,我想知道是否需要做任何事情来释放 SQL Server 中的可用空间。

sql-server sql-server-2008-r2 disk-space

3
推荐指数
2
解决办法
9399
查看次数

已用空间和已分配空间有什么区别?

我正在学习数据库操作,我在网上找到了一些资源,这些资源让我有了一个松散的理解,但我自己仍然无法解释其中的区别。请像我五岁那样解释。我想确保我有一个坚实的基础来扩展我的知识。

t-sql disk-space

3
推荐指数
1
解决办法
5228
查看次数

由于 10GB 的限制,如何使用最小量的数据库文件空间在 Mircosoft SQL Server Express 上重建索引

由于 10GB 的限制,如何使用最少的数据库文件空间在 Mircosoft SQL Server Express 上重建索引

我有一个 7GB 的数据库文件大小,但我有两个索引,它们位于两个非常碎片化的最大表上 在此处输入图片说明

如果我尝试重建索引 PK_Sale_Dtl 文件大小膨胀到 10GB 并且重建失败并且我无处可去但是如果我删除索引并重新创建它,文件几乎不会增加

为什么是这样?哪个更好地重建或重新创建索引?

sql-server disk-space index-maintenance

3
推荐指数
2
解决办法
214
查看次数