SYSAUX概述

官方文档:About the SYSAUX Tablespace

SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.

以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.

SYSAUX 表空间存放一些其他的 metadata 组件,如 OEM,Streams 等会默认存放在 SYSAUX 表空间里。

通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。

因此SYSAUX 表空间也是在在 DB 创建或者升级时自动创建的。 如果在手工使用SQL 创建 DB 时没有指定 SYSAUX tablespace,那么创建语句会报错。 无法执行。

在正常操作下, 不能 drop 和 rename SYSAUX 表空间。

如果SYSAUX表空间不可用,数据库核心功能将保持有效;使用SYSAUX表空间的特点将会失败或功能受限.

我们不能使用 alter tablespace 来修改这 4 个属性,同样也不能 drop 和 rename SYSAUX 表空间。


数据库创建脚本中的SYSAUX

我们来看下我们的数据库创建脚本:

SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /oracle/admin/cc/scripts/CreateDB.log append
startup nomount pfile="/oracle/admin/cc/scripts/init.ora";
CREATE DATABASE "cc"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/oradata/cc/system01.dbf' SIZE 700M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oradata/cc/sysaux01.dbf' SIZE 600M REUSE
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/oradata/cc/temp01.dbf' SIZE 20M REUSE
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/oradata/cc/undotbs01.dbf' SIZE 200M REUSE
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/oradata/cc/redo01.log') SIZE 51200K,
GROUP 2 ('/oradata/cc/redo02.log') SIZE 51200K,
GROUP 3 ('/oradata/cc/redo03.log') SIZE 51200K
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off

SYSAUX表空间的数据库组件

使用SYSAUX表空间的组件 10G以前版本所在表空间
Analytical Workspace Object Table SYSTEM
Enterprise Manager Repository OEM_REPOSITORY
LogMiner SYSTEM
Logical Standby Logical Standby
OLAP API History Tables CWMLITE
Oracle Data Mining ODM
Oracle Spatial SYSTEM
Oracle Streams SYSTEM
Oracle Text DRSYS
Oracle Ultra Search DRSYS
Oracle interMedia ORDPLUGINS Components SYSTEM
Oracle interMedia ORDSYS Components SYSTEM
Oracle interMedia SI_INFORMTN_SCHEMA Components SYSTEM
Server Manageability Components New in Oracle Database 10g
Statspack Repository Statspack Repository
Unified Job Scheduler New in Oracle Database 10g
Workspace Manager SYSTEM

查看SYSAUX表空间信息-V$SYSAUX_OCCUPANTS

select OCCUPANT_NAME, SCHEMA_NAME,MOVE_PROCEDURE ,SPACE_USAGE_KBYTES from V$SYSAUX_OCCUPANTS;

说明:

  • 这些组件占据这 SYSAUX 表空间,所以这些组件的大小也就决定 SYSAUX表空间的大小。

  • schema_name 对应的是用户名。

  • 在v$sysaux_occupants 视图里中的move_procudure字段,是用于迁移组件信息的。就是对于已经安装好的组件,如果想把这些组件放到其他的空间,可以使用这个存储过程。如果没有对应的过程,说明不可移动。

比如我们的AWR。 AWR 是SYSAUX 中占用空间最多的组件。 对于一个有10个并发session 的系统,就需要200M 的空间。当然,也可以修改AWR的保存策略来控制AWR所占用空间的大小


SYAAUX表空间的限制

1. 不能删除

SQL> drop tablespace SYSAUX including contents and datafiles;
drop tablespace SYSAUX including contents and datafiles
*
ERROR at line 1:
ORA-13501: Cannot drop SYSAUX tablespace

2. 不能重命名

SQL> alter tablespace SYSAUX rename to OPT_TBS;
alter tablespace SYSAUX rename to OPT_TBS
*
ERROR at line 1:
ORA-13502: Cannot rename SYSAUX tablespace

3. 不能置为read only

SQL> alter tablesapce SYSAUX read only;
alter tablesapce SYSAUX read only
*
ERROR at line 1:
ORA-00940: invalid ALTER command

栗子:将Logminer 从SYSAUX 表空间,迁移到users表空间,在还原回来

如果希望转移这些系统对象的表空间,可以使用相应得系统包实现:

(1)查看迁移之前的信息:

SQL> select OCCUPANT_NAME,OCCUPANT_DESC,SCHEMA_NAME,MOVE_PROCEDURE,SPACE_USAGE_KBYTES from v$sysaux_occupants where occupant_name='LOGMNR';OCCUPANT_NAME   OCCUPANT_DESC   SCHEMA_NAME          MOVE_PROCEDURE                           SPACE_USAGE_KBYTES--------------- --------------- -------------------- ---------------------------------------- ------------------LOGMNR          LogMiner        SYSTEM               SYS.DBMS_LOGMNR_D.SET_TABLESPACE                       6080

(2)调用系统包SYS.DBMS_LOGMNR_D.SET_TABLESPACE迁移

SQL> exec SYS.DBMS_LOGMNR_D.SET_TABLESPACE('USERS');PL/SQL procedure successfully completed.

(3)验证迁移后的大小

SQL>  select OCCUPANT_NAME,OCCUPANT_DESC,SCHEMA_NAME,MOVE_PROCEDURE,SPACE_USAGE_KBYTES from v$sysaux_occupants where occupant_name='LOGMNR';OCCUPANT_NAME   OCCUPANT_DESC   SCHEMA_NAME          MOVE_PROCEDURE                           SPACE_USAGE_KBYTES--------------- --------------- -------------------- ---------------------------------------- ------------------LOGMNR          LogMiner        SYSTEM               SYS.DBMS_LOGMNR_D.SET_TABLESPACE                          0

–注意,这里占空的空间变成了0. 数据迁移到了USERS 表空间

(4)还原到SYSAUX 表空间

SQL>  exec SYS.DBMS_LOGMNR_D.SET_TABLESPACE('SYSAUX');PL/SQL procedure successfully completed.

(5)验证还原后的大小

SQL> select OCCUPANT_NAME,OCCUPANT_DESC,SCHEMA_NAME,MOVE_PROCEDURE,SPACE_USAGE_KBYTES from v$sysaux_occupants where occupant_name='LOGMNR';OCCUPANT_NAME   OCCUPANT_DESC   SCHEMA_NAME          MOVE_PROCEDURE                           SPACE_USAGE_KBYTES--------------- --------------- -------------------- ---------------------------------------- ------------------LOGMNR          LogMiner        SYSTEM               SYS.DBMS_LOGMNR_D.SET_TABLESPACE                       6080

–观察大小,复位为原来的大小

结论:

这是一个管理及规划上的改进,进一步独立SYSTEM表空间,保证其存储及性能.

我们在做数据库规划时大可借鉴Oracle这个改进,分离重要数据及次要数据,分离稳定结构及频繁变化结构,尽量减少对重要数据及结构的影响。


Oracle-SYSAUX表空间解读相关推荐

  1. oracle sysaux表空间不足,sysaux 表空间不足问题处理

    sysaux 表空间不足问题处理 一现场,备份库alter 日志出现错误 ORA-1688: unable to extend table SYS.WRH$_SQLSTAT partition WRH ...

  2. oracle SYSAUX表空间使用率过高处理

    1维护需求 日常巡检发现工单数据库中SYSAUX表空间使用率达到95% 对于SYSAUX表空间而言,如果占用过大,那么一般情况下是由于AWR信息或对象统计信息没有及时清理引起的 2.1 通过SQL语句 ...

  3. 重庆思庄-[Oracle] SYSAUX表空间WRH$表的清理

    查看数据库发现SYSAUX表空间数据文件很大,查询发现WRH$开头的表占用空间很多以WRH$_开头的段,这些类型的段基本上都是与AWR相关的 简要清理方式: truncate table WRH$_S ...

  4. oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇

    通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024  FROM gV$SYS ...

  5. oracle sysaux扩大,oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇

    通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024 FROM gV$SYSA ...

  6. oracle 257,ORACLE 10g SYSAUX表空间快速增长之WRH$_ACTIVE_SESSION_HISTORY篇

    近一段时间监控生产数据库的表空间使用情况,发现SYSAUX表空间非常大(17g之多),而且每天都有几十M的增长,看到此现象后,认为这很不正常,分析SYSAUX表空间那些segments占用空间比较大: ...

  7. oracle之 SYSAUX表空间维护

    1.查询表空间使用率 SQL> set linesize 400 SQL> set pagesize 400 SQL> SELECT D.TABLESPACE_NAME 表空间名称, ...

  8. Oracle 扩展sysaux,oracle 清理SYSAUX表空间

    简介 oracle 清理SYSAUX表空间 处理思路 1.查询表空间使用情况1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17SELECT UPPER(F.TABLES ...

  9. oracle system和sysaux表空间清理和回收

    oracle system和sysaux表空间清理和回收   前几天和一个网友讨论了下SYSAUX表空间使用率过高的问题,今天有时间整理一下,正好我们的测试数据库也存在这个问题.本案例数据库版本为11 ...

最新文章

  1. 第二阶段第三次站立会议
  2. scrapy软连接失效和pip软连接失效
  3. android 调用手机震动
  4. angular项目如何分层
  5. 16.6 创建测试数据
  6. 一个人到底申请几张信用卡最合适?
  7. python 获取昨天的日期_利用Python来实现报表的自动发送,解放你时间去做更有意思的事情...
  8. 接口的屏蔽和限流很难么?Redis全搞定!
  9. English Through Movie
  10. asp.net(C#)网站发布后 Global.asax 里 Application_Error 不执行的问题
  11. Excel数据透视表中的值计算
  12. 条形码的码制分类详解
  13. 云服务器obs_从零搭建流媒体服务器+obs推流直播
  14. 共享服务器协议,3.5.7 文件共享服务及SMB协议
  15. WebSocket接收多种子协议
  16. 揭秘《英雄联盟》的游戏数据服务器
  17. python如何让用户输入_Python如何让用户输入
  18. 中国区域地面气象要素驱动数据集(1979-2018)数据下载与处理
  19. 《老梁四大名著情商课》笔记- 别慌,情商是可以提升的
  20. net—card seting monitor mood

热门文章

  1. Linux>软链接的作用与使用
  2. 强化学习(四)---基于模型动态规划问题
  3. statsmodels 笔记:VAR
  4. 文巾解题 198. 打家劫舍
  5. 文巾解题 231. 2的幂
  6. CentOS6.4之图解SSH无验证双向登陆配置
  7. hadoop学习-Netflix电影推荐系统
  8. Python入门100题 | 第062题
  9. Graph Embedding方案之DeepWalk
  10. 就是这么迅猛的实现搜索需求--转