初識(shí)Oracle表空間設(shè)置與管理
前言
表空間是 Oracle 特有的一種邏輯結(jié)構(gòu),是管理和組織 Oracle 數(shù)據(jù)文件一種方式,一個(gè)Oracle 數(shù)據(jù)庫能夠有一個(gè)或多個(gè)表空間,而一個(gè)表空間則對(duì)應(yīng)一個(gè)或多個(gè)物理的數(shù)據(jù)庫文件。Oracle 的表空間分為***空間和臨時(shí)表空間,同時(shí)又分為 smallfile tablespace和 bigfile tablespace。表空間管理是 Oracle dba的一項(xiàng)重要日常工作。
今天小編就從***表空間管理和臨時(shí)表空間管理兩個(gè)維度,詳細(xì)介紹 Oracle表空間管理的具體操作。
一、***表空間管理
1. 創(chuàng)建表空間
參數(shù)說明:
- EXTENT MANAGEMENT LOCAL AUTOALLOCATE:區(qū)大小由系統(tǒng)自動(dòng)分配。
- BLOCKSIZE 8K:塊大小為8K。
- SEGMENT SPACE MANAGEMENT AUTO:段管理是自動(dòng)的。
- FLASHBACK ON:開啟閃回。
2. 修改表空間
(1) 修改數(shù)據(jù)文件大小
- SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/TSH1/users01.dbf'
- RESIZE 10M;
(2) 增加表空間數(shù)據(jù)文件
- ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/TSH1/users02.dbf' SIZE 20M AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED;
注:日常工作中建議通過增加數(shù)據(jù)文件的方式給表空間擴(kuò)容,因?yàn)閷?duì)于在線業(yè)務(wù)系統(tǒng)來說,通過修改數(shù)據(jù)文件大小的方式,對(duì)業(yè)務(wù)會(huì)產(chǎn)生一定的影響。
3. 重命名表空間
- 設(shè)置表空間脫機(jī)
- SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
- $cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf
- SQL> ALTER TABLESPACE USERS RENAME DATAFILE
- '/u01/app/oracle/oradata/TSH1/users01.dbf'
- TO
- '/u02/app/oracle/oradata/TSH1/users01.dbf'
- SQL> ALTER TABLESPACE USERS ONLINE ;
4. 設(shè)置表空間只讀
- 設(shè)置表空間只讀
- SQL> ALTER TABLESPACE USERS READ ONLY;
- SQL> ALTER TABLESPACE USERS READ WRITE;
5. 設(shè)置表空間脫機(jī)、聯(lián)機(jī)
- 設(shè)置表空間脫機(jī)
- SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
- SQL> ALTER TABLESPACE USERS ONLINE;
6. 刪除表空間
- SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
7. 修改表空間為默認(rèn)***表空間
- 修改表空間為默認(rèn)***表空間
- SQL>ALTER DATABASE DEFAULT TABLESPACE users;
- SQL>SELECT property_value from database_properties where property_name=’DEFAULT_PERMANENT_TABLESPACE’;
二、臨時(shí)表空間管理
1. 創(chuàng)建臨時(shí)表空間
- SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE
- '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
- EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
參數(shù)說明:EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M:區(qū)管理為本地管理,且區(qū)大小為1M。
2. 修改臨時(shí)表空間
- SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/TSH1/temp01.dbf'
- RESIZE 60M;
3. 刪除臨時(shí)表空間
- SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
4. 臨時(shí)表空間組管理
(1) 創(chuàng)建臨時(shí)表空間組
- SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE
- '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
- TABLESPACE GROUP tmpgrp1;
說明:
增加一個(gè)名為tmpgrp1的臨時(shí)表空間組。
(2) 給臨時(shí)表空間組增加表空間
- SQL> ALTER TABLESPACE temp02 TABLESPACE GROUP tmpgrp2;
(3) 將一個(gè)組設(shè)置為默認(rèn)臨時(shí)表空間
- SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmpgrp1;
表空間管理涉及的視圖
為了管理ORACLE數(shù)據(jù)庫的表空間,要熟悉幾個(gè)關(guān)鍵的字典視圖:
- DBADATAFILES
- DBA_TABLESPACES
- DBAFREESPACE
- DBA_SEGMENTS