• Oracle SYSAUX 表空间 说明


     

    .  SYSAUX 说明

           Oracle 10g 版本中,引入了SYSTEM表空间的一个辅助表空间: SYSAUX表空间。

           SYSAUX 表空间存放一些其他的metadata组件,如OEM,Streams 等会默认存放在SYSAUX表空间里。这样也能降低SYSTEM表空间的负载。 因此SYSAUX 表空间也是在在DB 创建或者升级时自动创建的。 如果在手工使用SQL创建DB时没有指定SYSAUX tablespace,那么创建语句会报错。 无法执行。

           在正常操作下, 不能drop rename SYSAUX 表空间。 如果SYSAUX 表空间不可用时, 数据库的核心功能还是可以继续运行的。只是一些存放在SYSAUX表空间里的功能收到限制,就如我们之前说的OEM

     

           DB 创建时指定SYSAUX 表空间,必须指定如下4个属性:

    (1).      PERMANENT

    (2).      READ WRITE

    (3).      EXTENT MANAGMENT LOCAL

    (4).      SEGMENT SPACE MANAGMENT AUTO

     

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

           我们可以使用v$sysaux_occupants 视图来查看SYSAUX 表空间里的组件信息,如:

     

    SQL> select occupant_name,schema_name,move_procedure from v$sysaux_occupants;

     

    occupant_name      schema_name          move_procedure

    ------------------------- -------------------- ----------------------------------------

    logmnr            system               sys.dbms_logmnr_d.set_tablespace

    logstdby           system               sys.dbms_logstdby.set_tablespace

    streams            sys

    xdb               xdb                  xdb.dbms_xdb.movexdb_tablespace

    ao                sys                  dbms_aw.move_awmeta

    xsoqhist           sys                  dbms_xsoq.olapimoveproc

    xsamd            olapsys              dbms_amd.move_olap_catalog

    sm/awr            sys

    sm/advisor         sys

    sm/optstat          sys

    sm/other           sys

    statspack          perfstat

    odm              dmsys                move_odm

    sdo               mdsys                mdsys.move_sdo

    wm               wmsys                dbms_wm.move_proc

    ordim             ordsys

    ordim/plugins        ordplugins

    ordim/sqlmm         si_informtn_schema

    em                 sysman               emd_maintenance.move_em_tblspc

    text                 ctxsys               dri_move_ctxsys

    ultrasearch            wksys                move_wk

    ultrasearch_demo_user  wk_test              move_wk

    expression_filter       exfsys

    em_monitoring_user    dbsnmp

    tsm                  tsmsys

    job_scheduler          sys

     

    26 rows selected.

     

           这些组件占据这SYSAUX 表空间,所以这些组件的大小也就决定SYSAUX 表空间的大小。 根据这些组件创建时的初始化大小,SYSAUX 至少需要400M的空间。

     

           还有一点要注意,就是这里的schema_name 对应的是用户名。

     

    SQL> desc dba_users;

     Name                                      Null?    Type

     ----------------------------------------- -------- ----------------------------

     USERNAME                                  NOT NULL VARCHAR2(30)

     USER_ID                                   NOT NULL NUMBER

     PASSWORD                                           VARCHAR2(30)

     ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)

     LOCK_DATE                                          DATE

     EXPIRY_DATE                                        DATE

     DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)

     TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)

     CREATED                                   NOT NULL DATE

     PROFILE                                   NOT NULL VARCHAR2(30)

     INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)

     EXTERNAL_NAME                                      VARCHAR2(4000)

     

    SQL> select username,account_status,default_tablespace from dba_users;

     

    USERNAME      ACCOUNT_STATUS          DEFAULT_TABLESPA

    ------------------------------ -------------------------------- ----------------

    MDDATA         EXPIRED & LOCKED                 USERS

    MDSYS          EXPIRED & LOCKED                 SYSAUX

    ORDSYS         EXPIRED & LOCKED                 SYSAUX

    CTXSYS         EXPIRED & LOCKED                 SYSAUX

    ANONYMOUS   EXPIRED & LOCKED                 SYSAUX

    EXFSYS        EXPIRED & LOCKED                 SYSAUX

    OUTLN         EXPIRED & LOCKED                 SYSTEM

    DIP            EXPIRED & LOCKED                 USERS

    DMSYS        EXPIRED & LOCKED                 SYSAUX

    DBSNMP       OPEN                             SYSAUX

    SCOTT         EXPIRED & LOCKED                 USERS

    WMSYS       EXPIRED & LOCKED                 SYSAUX

    SYSMAN      OPEN                             SYSAUX

    XDB           EXPIRED & LOCKED                 SYSAUX

    TSMSYS        EXPIRED & LOCKED                 USERS

    ORDPLUGINS    EXPIRED & LOCKED                 SYSAUX

    MGMT_VIEW     OPEN                             SYSTEM

    SI_INFORMTN_SCHEMA  EXPIRED & LOCKED            SYSAUX

    OLAPSYS        EXPIRED & LOCKED                 SYSAUX

    SYS            OPEN                             SYSTEM

    SYSTEM        OPEN                             SYSTEM

     

    21 rows selected.

     

           这里没有显示这些组件的描述信息,因为显示不全。 感兴趣的,可以自己查看一下。

    SQL> desc v$sysaux_occupants

     Name                                      Null?    Type

     ----------------------------------------- -------- ----------------------------

     OCCUPANT_NAME                                      VARCHAR2(64)

     OCCUPANT_DESC                                      VARCHAR2(64)

     SCHEMA_NAME                                        VARCHAR2(64)

     MOVE_PROCEDURE                                     VARCHAR2(64)

     MOVE_PROCEDURE_DESC                                VARCHAR2(64)

     SPACE_USAGE_KBYTES                                 NUMBER

     

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

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

     

    . 示例:

     

    2.1. 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)移动

     

    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

    --大小又变回来了。

     

    2.2  SYSAUX不能drop

     

    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.3 SYSAUX 不能重命名

    SQL> alter tablespace SYSAUX rename to DAVE;

    alter tablespace SYSAUX rename to DAVE

    *

    ERROR at line 1:

    ORA-13502: Cannot rename SYSAUX tablespace

     

    2.3 不能将SYSAUX 改成只读

     

    SQL> alter tablesapce SYSAUX read only;

    alter tablesapce SYSAUX read only

          *

    ERROR at line 1:

    ORA-00940: invalid ALTER command

     

     

     

     

    ---------------------------------------------------------------------------------------------------

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977() DBA3 群:62697850()  

    DBA 超级群:63306533(); DBA4 群: 83829929 DBA5群: 142216823

    聊天 群:40132017  聊天2群:69087192

    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    ModelForm详解
    form中choice从数据库实时更新
    django-form字段和插件widgets速查
    Form生成的label标签详解
    form+ajax实现验证
    微分方程的解
    easyui中连接按钮样式
    easyui中设置开始日期只能选择比结束日期小的日期,js代码获取日期的值
    三目表达式问题
    easyui中在formatter: function (value, row,index) {中添加删除方法
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609728.html
Copyright © 2020-2023  润新知