日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle-SYSAUX表空间解读

發布時間:2025/3/21 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 TableSYSTEM
Enterprise Manager RepositoryOEM_REPOSITORY
LogMinerSYSTEM
Logical StandbyLogical Standby
OLAP API History TablesCWMLITE
Oracle Data MiningODM
Oracle SpatialSYSTEM
Oracle StreamsSYSTEM
Oracle TextDRSYS
Oracle Ultra SearchDRSYS
Oracle interMedia ORDPLUGINS ComponentsSYSTEM
Oracle interMedia ORDSYS ComponentsSYSTEM
Oracle interMedia SI_INFORMTN_SCHEMA ComponentsSYSTEM
Server Manageability Components New in Oracle Database 10g
Statspack RepositoryStatspack Repository
Unified Job SchedulerNew in Oracle Database 10g
Workspace ManagerSYSTEM

查看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表空间解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。