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