我的数据库的 SYSTEM 和 SYSAUX 表空间大小现在处于以下状态:
SYSTEM - PCT_USED= 99
SYSAUX - PCT_USED= 95
我相信数据库现在处于危急状态。我可以做些什么来让它恢复到正常状态,以及应该遵循哪些标准方法来保持 SYSTEM 和 SYSAUX 表空间文件的安全。
任何帮助将不胜感激。
我的数据库的 SYSTEM 和 SYSAUX 表空间大小现在处于以下状态:
SYSTEM - PCT_USED= 99
SYSAUX - PCT_USED= 95
我相信数据库现在处于危急状态。我可以做些什么来让它恢复到正常状态,以及应该遵循哪些标准方法来保持 SYSTEM 和 SYSAUX 表空间文件的安全。
任何帮助将不胜感激。
RDBMS 需要 SYSTEM 和 SYSAUX 表空间才能正常工作。
SYSAUX 表空间
可以使用 V$SYSAUX_OCCUPANTS 视图检索驻留在 SYSAUX 表空间中的对象列表。此视图显示以下信息:
参考:V$SYSAUX_OCCUPANTS
SYSAUX 表是以下组件的主页:
参考:数据库组件和 SYSAUX 表空间
如果可以减小组件存储的数据大小,则可以减小所需的 SYSAUX 表空间的大小。
SYSAUX 表空间的最大部分由自动工作负载存储库 (AWR) 占用。Oracle 提供了以下大小建议来确定 AWR 大小以及 SYSAUX 表空间的大部分大小:
参考:控制 SYSAUX 表空间的大小
如果您的数据库一直在不断增长,或者您正在使用 Enterprise Management Console 监控大量对象,那么您的 SYSAUX 表空间将慢慢填满。
SYSTEM 表空间
SYSTEM 表空间始终包含整个数据库的数据字典表。因此,如果您的数据库因新对象而增长,那么您的 SYSTEM 表空间也将需要更多空间。
数据字典
数据字典包含什么:
参考:数据字典
解决方案:
根据
ToadWorld blog
此处SYSAUX 表空间的最小大小应为250M。SYSAUX 表空间需要是永久性的,具有本地范围管理和 ASSM(自动段空间管理)。SYSAUX 表空间不能设为只读。因此,在创建 SYSAUX 表空间时应格外小心,因为一旦设置了表空间属性,就无法修改这些属性。创建数据库时,SYSAUX 表空间已安装为 SYSTEM 表空间的辅助表空间。
SYSAUX 表空间被多个数据库组件占用, SYSAUX 表空间被多个数据库组件占用。
SYSAUX表空间的最大部分被 Automatic Workload Repository (
AWR)
.AWR
一个平均有 10 个并发活动会话的典型系统可能需要大约 10 个空间来存储其200
数据。300 MB
AWR
根据 Oracle Blog Here下表提供了有关根据系统配置和预期负载调整SYSAUX表空间大小的指南。
我还附上了 OEM 11g 的屏幕截图,以检查 SYSTEM 和 SYSAUX 的空间占用详细信息。给你参考这里
管理 SYSAUX 表空间的 Occupants 大小
V$SYSAUX_OCCUPANTS
视图管理表空间中的占用者SYSAUX
。此视图允许您监视表空间中占用应用程序对象的空间使用情况SYSAUX
。我还附上了您的参考的屏幕截图
SYSAUX 和 SYSTEM 与任何其他表空间没有什么不同,因为它们需要正确调整大小。根据我的经验,SYSAUX 中的空间压力几乎总是归结为 AWR 数据。尝试运行 awrinfo.sql 来找出罪魁祸首。
还可以在 support.oracle.com 上进行挖掘。存在与 AWR 保留/清除设置不匹配的已知问题(例如 doc 1912201.1)
首先检查哪个表在这些表空间中占用的空间最多。SYSTEM 和 SYSAUX 表空间中的某些表存储了历史查询数据、AWR 快照和审计信息,这些表可以被删除/截断。
如果您不确定或担心删除表中的记录是否会影响其他内容,那么只需在这些表空间中添加额外的空间。
一种选择是使用表空间数据文件的自动扩展特性。
但请小心使用此功能,因为有缺陷的软件会很快耗尽您分配的空间。如果您有操作系统空间监控,那么自动扩展可以为您工作。
您还可以使用 OEM 的空间监控功能在您的表空间达到一定百分比(例如 80%)时向您发送通知。不要等到 95% 或更高时才在添加空间时采取行动。
您还可以设置resumable_timeout 参数,让等待空间的会话等待您添加空间并且不会异常结束。
您可以定期截断 sys.aud$。如果您需要保留审计记录,请在截断之前将其备份。
当您即将用完空间时,您的数据库永远不会“关键”。如果 sysaux 空间不足,您始终可以选择 sqlplus / 或 sqlplus /nolog。
此查询将帮助您跟踪 sysaux 中的内容。
您可能还想通过表空间名称查询 dba_segments 过滤,寻找最大的对象。您应该专门查看 sys.aud$ 表。