AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 181570
Accepted
Joe Joy Valiyaveettil
Joe Joy Valiyaveettil
Asked: 2017-07-24 21:57:04 +0800 CST2017-07-24 21:57:04 +0800 CST 2017-07-24 21:57:04 +0800 CST

oracle 11g R2 中 SYSTEM 和 SYSAUX 表空间空间不足

  • 772

我的数据库的 SYSTEM 和 SYSAUX 表空间大小现在处于以下状态:

SYSTEM  - PCT_USED= 99
SYSAUX  - PCT_USED= 95

我相信数据库现在处于危急状态。我可以做些什么来让它恢复到正常状态,以及应该遵循哪些标准方法来保持 SYSTEM 和 SYSAUX 表空间文件的安全。

任何帮助将不胜感激。

oracle oracle-11g-r2
  • 6 6 个回答
  • 24979 Views

6 个回答

  • Voted
  1. Best Answer
    John K. N.
    2017-07-24T23:44:05+08:002017-07-24T23:44:05+08:00

    RDBMS 需要 SYSTEM 和 SYSAUX 表空间才能正常工作。

    SYSAUX 表空间

    可以使用 V$SYSAUX_OCCUPANTS 视图检索驻留在 SYSAUX 表空间中的对象列表。此视图显示以下信息:

    OCCUPANT_NAME        VARCHAR(64)    Occupant name  
    OCCUPANT_DESC        VARCHAR(64)    Occupant description  
    SCHEMA_NAME          VARCHAR2(64)   Schema name for the occupant  
    MOVE_PROCEDURE       VARCHAR2(64)   Name of the move procedure; null if not applicable  
    MOVE_PROCEDURE_DESC  VARCHAR2(64)   Description of the move procedure  
    SPACE_USAGE_KBYTES   NUMBER         Current space usage of the occupant (in KB)  
    

    参考:V$SYSAUX_OCCUPANTS

    SYSAUX 表是以下组件的主页:

    SYSAUX Table                         Previous Location
    ------------------------------------ --------------------------
    Analytical Workspace Object Table    SYSTEM
    Enterprise Manager Repository        OEM_REPOSITORY
    LogMiner                             SYSTEM
    Logical Standby                      SYSTEM
    OLAP API History Tables              CWMLITE
    Oracle Data Mining                   ODM
    Oracle Spatial                       SYSTEM
    Oracle Streams                       SYSTEM
    Oracle Text                          DRSYS
    Oracle Ultra Search                  DRSYS
    Ora interMedia ORDPLUGINS Comp.      SYSTEM
    Ora interMedia ORDSYS Components     SYSTEM
    Ora interMedia SI_INFORMTN_SCHEMA C. SYSTEM
    Server Manageability Components      -
    Statspack Repository                 User-defined
    Oracle Scheduler                     - 
    Workspace Manager                    SYSTEM
    

    参考:数据库组件和 SYSAUX 表空间

    如果可以减小组件存储的数据大小,则可以减小所需的 SYSAUX 表空间的大小。

    SYSAUX 表空间的最大部分由自动工作负载存储库 (AWR) 占用。Oracle 提供了以下大小建议来确定 AWR 大小以及 SYSAUX 表空间的大部分大小:

    Number of CPUs                                 2    |     8    |    32
    Number of concurrently active sessions        10    |    20    |   100
    Number of user objects: tables and indexes   500    | 5,000    |50,000
    Estimated SYSAUX size with default config    500 MB |     2 GB |     5 GB
    

    参考:控制 SYSAUX 表空间的大小

    如果您的数据库一直在不断增长,或者您正在使用 Enterprise Management Console 监控大量对象,那么您的 SYSAUX 表空间将慢慢填满。

    SYSTEM 表空间

    SYSTEM 表空间始终包含整个数据库的数据字典表。因此,如果您的数据库因新对象而增长,那么您的 SYSTEM 表空间也将需要更多空间。

    数据字典

    数据字典包含什么:

    • 数据库中所有模式对象的定义(表、视图、索引、集群、同义词、序列、过程、函数、包、触发器等)
    • 已为模式对象分配了多少空间以及当前由多少空间使用
    • 列的默认值
    • 完整性约束信息
    • Oracle 用户的名称
    • 授予每个用户的权限和角色
    • 审核信息,例如谁访问或更新了各种架构对象
    • 其他一般数据库信息

    参考:数据字典

    解决方案:

    1. 减少 EM 中的监控对象数量
    2. 根据上表中的建议调整 SYSAUX 表空间的大小。
      • ALTER DATABASE DATAFILE '/path/systemSID.dbf' RESIZE 1000M;
    3. 调整 SYSTEM 表空间的大小
      • ALTER DATABASE DATAFILE '/path/sysauxSID.dbf' RESIZE 1000M;
    • 7
  2. Md Haidar Ali Khan
    2017-07-24T23:49:05+08:002017-07-24T23:49:05+08:00

    根据ToadWorld blog 此处SYSAUX 表空间的最小大小应为250M。SYSAUX 表空间需要是永久性的,具有本地范围管理和 ASSM(自动段空间管理)。SYSAUX 表空间不能设为只读。因此,在创建 SYSAUX 表空间时应格外小心,因为一旦设置了表空间属性,就无法修改这些属性。

    创建数据库时,SYSAUX 表空间已安装为 SYSTEM 表空间的辅助表空间。

    SYSAUX 表空间被多个数据库组件占用, SYSAUX 表空间被多个数据库组件占用。

    SYSAUX表空间的最大部分被 Automatic Workload Repository ( AWR).AWR一个平均有 10 个并发活动会话的典型系统可能需要大约 10 个空间来存储其200数据。300 MBAWR

    根据 Oracle Blog Here下表提供了有关根据系统配置和预期负载调整SYSAUX表空间大小的指南。

    Parameter/Recommendation                           Small    Medium  Large
    Number of CPUs                                        2       8      32
    Number of concurrently active sessions                10      20     100
    Number of user objects: tables and indexes            500     5,000 50,000
    Estimated SYSAUX size at steady state with default configuration    
                                                          500 MB    2 GB    5 GB
    

    我还附上了 OEM 11g 的屏幕截图,以检查 SYSTEM 和 SYSAUX 的空间占用详细信息。给你参考这里在此处输入图像描述

    管理 SYSAUX 表空间的 Occupants 大小

    V$SYSAUX_OCCUPANTS视图管理表空间中的占用者SYSAUX。此视图允许您监视表空间中占用应用程序对象的空间使用情况SYSAUX。

    SELECT occupant_name, space_usage_kbytes FROM v$sysaux_occupants;
    

    我还附上了您的参考的屏幕截图在此处输入图像描述

    • 1
  3. TimPalmer
    2017-07-25T00:34:51+08:002017-07-25T00:34:51+08:00

    SYSAUX 和 SYSTEM 与任何其他表空间没有什么不同,因为它们需要正确调整大小。根据我的经验,SYSAUX 中的空间压力几乎总是归结为 AWR 数据。尝试运行 awrinfo.sql 来找出罪魁祸首。

    还可以在 support.oracle.com 上进行挖掘。存在与 AWR 保留/清除设置不匹配的已知问题(例如 doc 1912201.1)

    • 1
  4. Lohit Gupta
    2017-07-24T22:39:01+08:002017-07-24T22:39:01+08:00

    首先检查哪个表在这些表空间中占用的空间最多。SYSTEM 和 SYSAUX 表空间中的某些表存储了历史查询数据、AWR 快照和审计信息,这些表可以被删除/截断。

    如果您不确定或担心删除表中的记录是否会影响其他内容,那么只需在这些表空间中添加额外的空间。

    • 0
  5. sandman
    2017-07-24T23:22:39+08:002017-07-24T23:22:39+08:00

    一种选择是使用表空间数据文件的自动扩展特性。

    alter database datafile '[name]' autoextend on;
    

    但请小心使用此功能,因为有缺陷的软件会很快耗尽您分配的空间。如果您有操作系统空间监控,那么自动扩展可以为您工作。

    您还可以使用 OEM 的空间监控功能在您的表空间达到一定百分比(例如 80%)时向您发送通知。不要等到 95% 或更高时才在添加空间时采取行动。

    您还可以设置resumable_timeout 参数,让等待空间的会话等待您添加空间并且不会异常结束。

    您可以定期截断 sys.aud$。如果您需要保留审计记录,请在截断之前将其备份。

    当您即将用完空间时,您的数据库永远不会“关键”。如果 sysaux 空间不足,您始终可以选择 sqlplus / 或 sqlplus /nolog。

    • 0
  6. Gandolf989
    2017-07-26T07:46:26+08:002017-07-26T07:46:26+08:00

    此查询将帮助您跟踪 sysaux 中的内容。

    COLUMN space_mb      FORMAT A12
    COLUMN occupant_desc FORMAT A55
    COLUMN schema        FORMAT A30
    SELECT occupant_desc, TO_CHAR(space_usage_kbytes/1024, '999,999.00') space_mb,
    substr(schema_name,1,30) Schema
    FROM v$sysaux_occupants
    ORDER BY 2 desc;
    

    您可能还想通过表空间名称查询 dba_segments 过滤,寻找最大的对象。您应该专门查看 sys.aud$ 表。

    • 0

相关问题

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

  • ORDER BY 使用文本列的自定义优先级

  • 舒服的sqlplus界面?[关闭]

  • 如何在数据库中找到最新的 SQL 语句?

  • 如何使用正则表达式查询名称?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve