Oracle表空間設定和管理淺析
前言
表空間是 Oracle 特有的一種邏輯結構,是管理和組織 Oracle 資料檔案一種方式,一個Oracle 資料庫能夠有一個或多個表空間,而一個表空間則對應一個或多個物理的資料庫檔案。Oracle 的表空間分為永久空間和臨時表空間,同時又分為 smallfile tablespace和 bigfile tablespace。表空間管理是 Oracle dba的一項重要日常工作。
今天小編就從永久表空間管理和臨時表空間管理兩個維度,詳細介紹 Oracle表空間管理的具體操作。
永久表空間管理
1.1 建立表空間
引數說明:
- EXTENT MANAGEMENT LOCAL AUTOALLOCATE:區大小由系統自動分配。
- BLOCKSIZE 8K:塊大小為8K。
- SEGMENT SPACE MANAGEMENT AUTO:段管理是自動的。
- FLASHBACK ON:開啟閃回。
1.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;
注:日常工作中建議通過增加資料檔案的方式給表空間擴容,因為對於線上業務系統來說,通過修改資料檔案大小的方式,對業務會產生一定的影響。
1.3 重命名錶空間
1) 設定表空間離線
SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
2) 用一個作業系統實用程式重新命名此檔案如UNIX的cp或mv,或者windows的copy命令
$cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf
3) 在資料檔案線上之前使用以下命令重新命名資料庫中的資料檔案
SQL> ALTER TABLESPACE USERS RENAME DATAFILE '/u01/app/oracle/oradata/TSH1/users01.dbf' TO '/u02/app/oracle/oradata/TSH1/users01.dbf'
4)設定表空間online
SQL> ALTER TABLESPACE USERS ONLINE ;
1.4 設定表空間只讀
1) 設定表空間只讀
SQL> ALTER TABLESPACE USERS READ ONLY;
2) 設定表空間再次可寫
SQL> ALTER TABLESPACE USERS READ WRITE;
1.5 設定表空間離線、聯機
1)設定表空間離線
SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
2)設定表空間聯機
SQL> ALTER TABLESPACE USERS ONLINE;
1.6 刪除表空間
SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
1.7 修改表空間為預設永久表空間
1)修改表空間為預設永久表空間
SQL>ALTER DATABASE DEFAULT TABLESPACE users;
2)查詢當前資料庫預設的永久表空間
SQL>SELECT property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';
臨時表空間管理
2.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.2 修改臨時表空間
SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/TSH1/temp01.dbf' RESIZE 60M;
2.3 刪除臨時表空間
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
2.4 臨時表空間組管理
2.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.4.2 給臨時表空間組增加表空間
SQL> ALTER TABLESPACE temp02 TABLESPACE GROUP tmpgrp2;
2.4.3 將一個組設定為預設臨時表空間
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmpgrp1;
表空間管理涉及的檢視
為了管理ORACLE資料庫的表空間,要熟悉幾個關鍵的字典檢視:
- DBADATAFILES
- DBA_TABLESPACES
- DBAFREESPACE
- DBA_SEGMENTS
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。