Oracle-SYSAUX表空间解读
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表空间解读相关推荐
- oracle sysaux表空间不足,sysaux 表空间不足问题处理
sysaux 表空间不足问题处理 一现场,备份库alter 日志出现错误 ORA-1688: unable to extend table SYS.WRH$_SQLSTAT partition WRH ...
- oracle SYSAUX表空间使用率过高处理
1维护需求 日常巡检发现工单数据库中SYSAUX表空间使用率达到95% 对于SYSAUX表空间而言,如果占用过大,那么一般情况下是由于AWR信息或对象统计信息没有及时清理引起的 2.1 通过SQL语句 ...
- 重庆思庄-[Oracle] SYSAUX表空间WRH$表的清理
查看数据库发现SYSAUX表空间数据文件很大,查询发现WRH$开头的表占用空间很多以WRH$_开头的段,这些类型的段基本上都是与AWR相关的 简要清理方式: truncate table WRH$_S ...
- oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇
通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024 FROM gV$SYS ...
- oracle sysaux扩大,oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇
通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024 FROM gV$SYSA ...
- oracle 257,ORACLE 10g SYSAUX表空间快速增长之WRH$_ACTIVE_SESSION_HISTORY篇
近一段时间监控生产数据库的表空间使用情况,发现SYSAUX表空间非常大(17g之多),而且每天都有几十M的增长,看到此现象后,认为这很不正常,分析SYSAUX表空间那些segments占用空间比较大: ...
- oracle之 SYSAUX表空间维护
1.查询表空间使用率 SQL> set linesize 400 SQL> set pagesize 400 SQL> SELECT D.TABLESPACE_NAME 表空间名称, ...
- 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 ...
- oracle system和sysaux表空间清理和回收
oracle system和sysaux表空间清理和回收 前几天和一个网友讨论了下SYSAUX表空间使用率过高的问题,今天有时间整理一下,正好我们的测试数据库也存在这个问题.本案例数据库版本为11 ...
最新文章
- 第二阶段第三次站立会议
- scrapy软连接失效和pip软连接失效
- android 调用手机震动
- angular项目如何分层
- 16.6 创建测试数据
- 一个人到底申请几张信用卡最合适?
- python 获取昨天的日期_利用Python来实现报表的自动发送,解放你时间去做更有意思的事情...
- 接口的屏蔽和限流很难么?Redis全搞定!
- English Through Movie
- asp.net(C#)网站发布后 Global.asax 里 Application_Error 不执行的问题
- Excel数据透视表中的值计算
- 条形码的码制分类详解
- 云服务器obs_从零搭建流媒体服务器+obs推流直播
- 共享服务器协议,3.5.7 文件共享服务及SMB协议
- WebSocket接收多种子协议
- 揭秘《英雄联盟》的游戏数据服务器
- python如何让用户输入_Python如何让用户输入
- 中国区域地面气象要素驱动数据集(1979-2018)数据下载与处理
- 《老梁四大名著情商课》笔记- 别慌,情商是可以提升的
- net—card seting monitor mood