【问题标题】:SAP Sybase ASE: Huge Space Requirements in TempdbSAP Sybase ASE:Tempdb 中的巨大空间需求
【发布时间】:2017-03-30 12:54:34
【问题描述】:

我们在 SAP Sybase ASE 15.7 数据库上运行 SAP 解决方案管理器。这意味着我们有一个保存应用程序数据的用户数据库,以及一个专门映射到该用户数据库的特殊 tempdb。
在过去的几周里,数据库服务器一直在记录如下消息:

Can't allocate Space forobject 'temp worktable' in database 'saptempdb'  
because 'system' segment is full/has no free extents.[...]  

到目前为止一切顺利。我一直在将设备和数据库段一次又一次地扩展到现在 150 GB 的大小,但消息不断出现。从应用程序管理员那里,我不断收到无法进一步调整应用程序配置的声明。每当出现日志消息(例如通过查询 sysusages 表)时,我一直在尝试手动获取有关 tempdb 上实际发生的情况的更多信息,但是当它尝试使用所有数据库时,我似乎无法当场抓获数据库saptempdb 系统段中的空间。
有没有人有任何提示或程序来正确监控临时数据库并找到导致对巨大临时工作表的需求的语句或事务?

【问题讨论】:

    标签: database sybase sap-solution-manager


    【解决方案1】:

    在您的 tempdb 中消耗空间的原因可能有很多。通过定期查询 MDA 表 monProcessObject,您可能会得到一些见解。

    【讨论】:

    • 感谢 RobV 的输入。
    【解决方案2】:

    默认情况下,“系统”段与“默认”段位于同一位置(即,两个段位于同一组设备片段上)。如果“系统”段已被修改为驻留在比“默认”段更少和/或单独的设备片段上,这可能会有所不同。

    我想知道“系统”段是否已被修改为仅驻留在一个较小的设备片段上,而数据库的扩展(至 150 GB)可能没有增加“系统”段的可用空间.

    目前尚不清楚扩展“设备和数据库段”的实际步骤(例如,是否仅扩展了“默认”段?),因此看看以下返回的内容会很有趣:

    use saptempdb
    go
    exec sp_helpdb saptempdb
    go
    

    这应该提供必要的详细信息,以告知哪些段驻留在哪些设备片段上,包括显示“系统”段是否仅限于较小的设备片段。

    如果“系统”段确实驻留在较小的设备片段上,则可以通过将“系统”段扩展(通过sp_extendsegment)到数据库中的其他设备片段(例如,在设备上)来增加“系统”段的大小“默认”段当前所在的片段)。

    【讨论】:

    • 嗨,markp,与此同时,提到的问题使我们的 tempdb 增长到 300 GB :) 不幸的是,我不确定如何在此评论中添加图像。但是 sp_helpdb 输出显示,所有三个默认段(默认、系统和日志)分布在我的两个承载数据库的设备上,所以我认为这工作正常。当我不得不将其扩展到 200 GB 以上时,我决定添加第二个设备。我总是使用 DISK INIT/RESIZE 来初始化或扩展设备,然后使用 ALTER DATABASE 来扩展设备上的数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2015-12-02
    相关资源
    最近更新 更多