您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Oracle 11G如何實現表空間操作”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Oracle 11G如何實現表空間操作”這篇文章吧。
查詢表空間信息
1.1: 查詢數據字典視圖DBA_TABLESPACES獲取數據庫中個表空間的名稱,狀態,管理方式,區的分配方式,段的管理方式,表空間類型等基本信息。
SELECT TABLESPACE_NAME,STATUS,EXTENT_MANAGEMENT, ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,CONTENTS FROM DBA_TABLESPACES;
Result:
1.2:查詢數據字典視圖DBA_FREE_SPACE,獲取數據庫中各個表空間空閑的統計信息:
SELECT TABLESPACE_NAME"TABLESPACE",FILE_ID, COUNT(*)"PIECES",MAX(blocks)"MAXIMUM",MIN(blocks)"MINIMUM", AVG(blocks)"AVERAGE", SUM(blocks)"TOTAL" FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME,FILE_ID;
1.3:查詢數據字典視圖DBA_TEMP_FREE_SPACE,獲取臨時表空間的表空間使用信息:
SELECT * FROM DBA_TEMP_FREE_SPACE
2.創建表空間
CREATE TABLESPACE語法:
CREATE [BIGFILE|SMALLFILE] [TEMPORARY|UNDO] TABLESPACE tbs_name
DATAFILE|TEMPFILE path/filename SIZE integer [K|M] [REUSE]
[AUTOEXTEND [OFF|ON] NEXT integer [K|M]
MAXSIZE [UNLIMITED|integer [K|M]]
[TABLESPACE GROUP tablespace_group_name]
[EXTENT MANAGEMENT DICTIONARY|LOCAL]
[AUTOALLOCATE|UNIFORM SIZE integer [K|M]]
2.1 創建一個本地管理的永久表空間TBS1,區、段采用自動管理:
CREATE TABLESPACE TBS1 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_1.DBF' size 50M;
2.2 創建一個本地管理的永久表空間TBS2,區采用定制分配,大小為512k,段采用自動管理。
CREATE TABLESPACE TBS2 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS2_1.DBF' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
2.3 創建一個本地管理的永久表空間TBS4,區采用定制分配方式,大小為512K,段采用手動管理:
CREATE TABLESPACE TBS4 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS4_1.DBF' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT SPACE MANAGEMENT MANUAL;
2.4 創建一個索引表空間INDX,存儲所有索引信息,表空間文件自動擴展每次5M,最大為100M:
CREATE TABLESPACE INDX DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/INDX_1.DBF' SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
2.5 創建一個TBS5表空間,第一個區10M,第二個區為10M,后續10%增長
CREATE TABLESPACE TBS5 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS5_1.DBF' SIZE 50M DEFAULT STORAGE(INITIAL 10M NEXT 10M PCTINCREASE 10) SEGMENT SPACE MANAGEMENT MANUAL;
3. 創建大文件表空間
3.1 查詢數據庫默認創建大文件還是小文件的表空間:
SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TBS_TYPE';
3.2 創建一個大文件表空間BIGTBS1:
CREATE BIGFILE TABLESPACE BIGTBS1 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/BIGTBS1_1.DBF' SIZE 50M AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
3.3 大文件表空間信息查詢:
SELECT T.NAME TBSNAME,RFILE#,D.NAME FNAME FROM V$TABLESPACE T,V$DATAFILE D WHERE T.TS#=D.TS# AND T.NAME='BIGTBS1'
3.4 創建非標準塊表空間
ALTER SYSTEM SET DB_16K_CACHE_SIZE=16384; CREATE TABLESPACE TBS16 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS16_1.DBF' SIZE 60M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K BLOCKSIZE 16K; SELECT TABLESPACE_NAME,BLOCK_SIZE FROM DBA_TABLESPACES;
4. 維護表空間
4.1 增加表空間文件
ALTER TABLESPACE TBS1 ADD DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_2.DBF' SIZE 10M;
4.1.2 增加TEMP表空間文件
ALTER TABLESPACE TEMP ADD TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP02.DBF' SIZE 10M;
4.2 改變數據文件大小
ALTER DATABASE DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_2.DBF' RESIZE 20M;
4.3 更改文件的擴展方式:
ALTER DATABASE DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS2_1.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
4.5 刪除表空間文件:
ALTER TABLESPACE TEMP DROP TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP02.DBF';
普通表空間只要將TEMPFILE換成DATAFILE即可
5. 設置默認表空間:
5.1 查看當前默認表空間:
SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME IN ('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');
5.2 設置默認表空間:
ALTER DATABASE DEFAULT TABLESPACE TBS1;
5.2.1 設置默認臨時表空間:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;
6. 管理臨時表空間
創建臨時表空間與創建普通表空間語法差不多,如創建一個 TEMP2臨時表空間:
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/temp2_1.DBF' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;
可以在create與temporary之間加入BIGFILE創建大文件臨時表空間(CREATE BIGFILE TEMPORARY ...)
6.1 臨時表空間組:
CREATE TEMPORARY TABLESPACE TEMP4 TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP4_1.DBF' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M TABLESPACE GROUP TEMP_GROUP1;
可以使用alter tablespace語句將臨時表空加入組或者從表空間租移除
ALTER TABLESPACE TEMP2 TABLESPACE GROUP TEMP_GROUP1; ALTER TABLESPACE TEMP4 TABLESPACE GROUP ''; ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_GROUP1;
6.2 收縮臨時表空間:
ALTER TABLESPACE temp SHRINK SPACE; ALTER TABLESPACE TEMP2 SHRINK TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/temp2_1.DBF';
7 undo表空間
7.1 創建undo表空間:
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/UNDOTBS2_1.DBF' SIZE 20M AUTOEXTEND ON NEXT 2M MAXSIZE 100M;
增加undo表空間文件與普通表空間做法一樣
切換undo表空間:
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;
7.2 UNDO信息保留時間設置:
通過初始化參數UNDO_RETENTION設置回退信息的最短保留時間,單位為妙。
show parameter UNDO
可以查出當前UNDO_RETENTION的設置,修改默認值:
ALTER SYSTEM SET UNDO_RETENTION=1800;
再啟用undo表空間的RETENTION GUARANTEE特性確保UNDO信息至少保留UNDO_RETENTION指定的時間。
ALTER TABLESPACE UNDOTBS2 RETENTION GUARANTEE;
以上是“Oracle 11G如何實現表空間操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。