Oracle-SYSAUX空間解讀

      網友投稿 910 2025-04-01

      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

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      SYSAUX表空間的數據庫組件

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

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

      1

      說明:

      這些組件占據這 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

      1

      2

      3

      4

      5

      6

      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

      1

      2

      3

      4

      5

      3. 不能置為read only

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

      1

      2

      3

      4

      5

      栗子:將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

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      (2)調用系統包SYS.DBMS_LOGMNR_D.SET_TABLESPACE遷移

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

      1

      2

      3

      (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

      1

      2

      3

      4

      5

      6

      7

      8

      9

      –注意,這里占空的空間變成了0. 數據遷移到了USERS 表空間

      (4)還原到SYSAUX 表空間

      Oracle-SYSAUX表空間解讀

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

      1

      2

      3

      (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

      1

      2

      3

      4

      5

      6

      7

      8

      9

      –觀察大小,復位為原來的大小

      結論:

      這是一個管理及規劃上的改進,進一步獨立SYSTEM表空間,保證其存儲及性能.

      我們在做數據庫規劃時大可借鑒Oracle這個改進,分離重要數據及次要數據,分離穩定結構及頻繁變化結構,盡量減少對重要數據及結構的影響。

      Oracle 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣在word中修改表格(word里面如何修改表格)
      下一篇:Word如何實現讓圖表的題注自動編號(word圖表標題如何自動編號)
      相關文章
      亚洲国产精华液网站w| 亚洲精品制服丝袜四区| 亚洲第一福利视频| 亚洲男同帅GAY片在线观看| 男人的天堂亚洲一区二区三区 | 亚洲成a人片在线不卡| 久久久久亚洲AV成人片| 色噜噜综合亚洲av中文无码| 亚洲天堂久久精品| 亚洲欧洲一区二区| 久久精品国产亚洲AV高清热| 久久亚洲熟女cc98cm| 亚洲麻豆精品果冻传媒| 亚洲高清无在码在线无弹窗| 亚洲黄色中文字幕| 亚洲一级免费毛片| 77777亚洲午夜久久多喷| 亚洲三级在线观看| 亚洲精华液一二三产区| 亚洲av无码偷拍在线观看| 日韩欧美亚洲中文乱码| 国产亚洲精品2021自在线| jjzz亚洲亚洲女人| 在线精品亚洲一区二区三区 | 亚洲综合激情另类小说区| 色播亚洲视频在线观看| 亚洲美免无码中文字幕在线| 亚洲成av人片在线看片| 亚洲91精品麻豆国产系列在线| 亚洲一区二区三区亚瑟| 亚洲精品天堂在线观看| 亚洲av午夜国产精品无码中文字| 国产AV无码专区亚洲AV麻豆丫| 国产成人亚洲综合在线| 亚洲中文字幕无码爆乳av中文| 亚洲欧洲日产国码av系列天堂| 亚洲VA中文字幕无码一二三区 | 亚洲日本精品一区二区| 亚洲明星合成图综合区在线| 亚洲H在线播放在线观看H| 亚洲精品无码av片|