共計(jì) 4778 個(gè)字符,預(yù)計(jì)需要花費(fèi) 12 分鐘才能閱讀完成。
這篇文章主要為大家展示了“Oracle 11G 如何實(shí)現(xiàn)表空間操作”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Oracle 11G 如何實(shí)現(xiàn)表空間操作”這篇文章吧。
查詢表空間信息
1.1:查詢數(shù)據(jù)字典視圖 DBA_TABLESPACES 獲取數(shù)據(jù)庫中個(gè)表空間的名稱,狀態(tài),管理方式,區(qū)的分配方式,段的管理方式,表空間類型等基本信息。
SELECT TABLESPACE_NAME,STATUS,EXTENT_MANAGEMENT,
ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,CONTENTS
FROM DBA_TABLESPACES;
Result:
1.2:查詢數(shù)據(jù)字典視圖 DBA_FREE_SPACE,獲取數(shù)據(jù)庫中各個(gè)表空間空閑的統(tǒng)計(jì)信息:
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:查詢數(shù)據(jù)字典視圖 DBA_TEMP_FREE_SPACE, 獲取臨時(shí)表空間的表空間使用信息:
SELECT * FROM DBA_TEMP_FREE_SPACE
2. 創(chuàng)建表空間
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 創(chuàng)建一個(gè)本地管理的永久表空間 TBS1, 區(qū)、段采用自動(dòng)管理:
CREATE TABLESPACE TBS1 DATAFILE
/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_1.DBF size 50M;
2.2 創(chuàng)建一個(gè)本地管理的永久表空間 TBS2,區(qū)采用定制分配, 大小為 512k,段采用自動(dòng)管理。
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 創(chuàng)建一個(gè)本地管理的永久表空間 TBS4,區(qū)采用定制分配方式,大小為 512K, 段采用手動(dòng)管理:
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 創(chuàng)建一個(gè)索引表空間 INDX,存儲(chǔ)所有索引信息,表空間文件自動(dòng)擴(kuò)展每次 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 創(chuàng)建一個(gè) TBS5 表空間,第一個(gè)區(qū) 10M, 第二個(gè)區(qū)為 10M,后續(xù) 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. 創(chuàng)建大文件表空間
3.1 查詢數(shù)據(jù)庫默認(rèn)創(chuàng)建大文件還是小文件的表空間:
SELECT PROPERTY_NAME,PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME= DEFAULT_TBS_TYPE
3.2 創(chuàng)建一個(gè)大文件表空間 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 創(chuàng)建非標(biāo)準(zhǔn)塊表空間
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. 維護(hù)表空間
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 改變數(shù)據(jù)文件大小
ALTER DATABASE DATAFILE /usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_2.DBF RESIZE 20M;
4.3 更改文件的擴(kuò)展方式:
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. 設(shè)置默認(rèn)表空間:
5.1 查看當(dāng)前默認(rèn)表空間:
SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME IN (DEFAULT_PERMANENT_TABLESPACE , DEFAULT_TEMP_TABLESPACE
5.2 設(shè)置默認(rèn)表空間:
ALTER DATABASE DEFAULT TABLESPACE TBS1;
5.2.1 設(shè)置默認(rèn)臨時(shí)表空間:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;
6. 管理臨時(shí)表空間
創(chuàng)建臨時(shí)表空間與創(chuàng)建普通表空間語法差不多,如創(chuàng)建一個(gè) TEMP2 臨時(shí)表空間:
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 創(chuàng)建大文件臨時(shí)表空間(CREATE BIGFILE TEMPORARY …)
6.1 臨時(shí)表空間組:
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 語句將臨時(shí)表空加入組或者從表空間租移除
ALTER TABLESPACE TEMP2 TABLESPACE GROUP TEMP_GROUP1;
ALTER TABLESPACE TEMP4 TABLESPACE GROUP
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_GROUP1;
6.2 收縮臨時(shí)表空間:
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 創(chuàng)建 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 信息保留時(shí)間設(shè)置:
通過初始化參數(shù) UNDO_RETENTION 設(shè)置回退信息的最短保留時(shí)間,單位為妙。
show parameter UNDO
可以查出當(dāng)前 UNDO_RETENTION 的設(shè)置,修改默認(rèn)值:
ALTER SYSTEM SET UNDO_RETENTION=1800;
再啟用 undo 表空間的 RETENTION GUARANTEE 特性確保 UNDO 信息至少保留 UNDO_RETENTION 指定的時(shí)間。
ALTER TABLESPACE UNDOTBS2 RETENTION GUARANTEE;
以上是“Oracle 11G 如何實(shí)現(xiàn)表空間操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!