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

Joe*_*til 5 oracle oracle-11g-r2 tablespaces

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

SYSTEM  - PCT_USED= 99
SYSAUX  - PCT_USED= 95
Run Code Online (Sandbox Code Playgroud)

我相信数据库现在处于危急状态。我该怎么做才能使其恢复正常状态,以及应遵循哪些标准方法来确保 SYSTEM 和 SYSAUX 表空间文件的安全。

任何帮助将不胜感激。

Joh*_* N. 7

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)  
Run Code Online (Sandbox Code Playgroud)

参考: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
Run Code Online (Sandbox Code Playgroud)

参考:数据库组件和 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
Run Code Online (Sandbox Code Playgroud)

参考:控制 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;