前言
表空間是 Oracle 特有的一種邏輯結(jié)構(gòu),是管理和組織 Oracle 數(shù)據(jù)文件一種方式,一個Oracle 數(shù)據(jù)庫能夠有一個或多個表空間,而一個表空間則對應(yīng)一個或多個物理的數(shù)據(jù)庫文件。Oracle 的表空間分為永久空間和臨時表空間,同時又分為 smallfile tablespace和 bigfile tablespace。表空間管理是 Oracle dba的一項重要日常工作。
今天小編就從永久表空間管理和臨時表空間管理兩個維度,詳細(xì)介紹 Oracle表空間管理的具體操作。
永久表空間管理
1.1 創(chuàng)建表空間
參數(shù)說明:
- EXTENT MANAGEMENT LOCAL AUTOALLOCATE:區(qū)大小由系統(tǒng)自動分配。
- BLOCKSIZE 8K:塊大小為8K。
- SEGMENT SPACE MANAGEMENT AUTO:段管理是自動的。
- FLASHBACK ON:開啟閃回。
1.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è)務(wù)系統(tǒng)來說,通過修改數(shù)據(jù)文件大小的方式,對業(yè)務(wù)會產(chǎn)生一定的影響。
1.3 重命名表空間
1) 設(shè)置表空間脫機(jī)
SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
2) 用一個操作系統(tǒng)實用程序重新命名此文件如UNIX的cp或mv,或者windows的copy命令
$cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf
3) 在數(shù)據(jù)文件在線之前使用以下命令重命名數(shù)據(jù)庫中的數(shù)據(jù)文件
SQL> ALTER TABLESPACE USERS RENAME DATAFILE
'/u01/app/oracle/oradata/TSH1/users01.dbf'
TO
'/u02/app/oracle/oradata/TSH1/users01.dbf'
4)設(shè)置表空間online
SQL> ALTER TABLESPACE USERS ONLINE ;
1.4 設(shè)置表空間只讀
1) 設(shè)置表空間只讀
SQL> ALTER TABLESPACE USERS READ ONLY;
2) 設(shè)置表空間再次可寫
SQL> ALTER TABLESPACE USERS READ WRITE;
1.5 設(shè)置表空間脫機(jī)、聯(lián)機(jī)
1)設(shè)置表空間脫機(jī)
SQL> ALTER TABLESPACE USERS OFFLINE NORMAL;
2)設(shè)置表空間聯(lián)機(jī)
SQL> ALTER TABLESPACE USERS ONLINE;
1.6 刪除表空間
SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
1.7 修改表空間為默認(rèn)永久表空間
1)修改表空間為默認(rèn)永久表空間
SQL>ALTER DATABASE DEFAULT TABLESPACE users;
2)查詢當(dāng)前數(shù)據(jù)庫默認(rèn)的永久表空間
SQL>SELECT property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';
臨時表空間管理
2.1 創(chuàng)建臨時表空間
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.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 創(chuàng)建臨時表空間組
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 將一個組設(shè)置為默認(rèn)臨時表空間
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmpgrp1;
表空間管理涉及的視圖
為了管理ORACLE數(shù)據(jù)庫的表空間,要熟悉幾個關(guān)鍵的字典視圖:
- DBADATAFILES
- DBA_TABLESPACES
- DBAFREESPACE
- DBA_SEGMENTS
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Oracle 查看表空間的大小及使用情況sql語句
- oracle 創(chuàng)建表空間詳細(xì)介紹
- Oracle新建用戶、角色,授權(quán),建表空間的sql語句
- oracle表空間表分區(qū)詳解及oracle表分區(qū)查詢使用方法
- oracle增加表空間大小兩種實現(xiàn)方法
- Oracle 表空間查詢與操作方法
- Oracle中如何把表和索引放在不同的表空間里
- Oracle表空間數(shù)據(jù)文件移動的方法
- Oracle修改表空間大小的方法
- Linux下Oracle刪除用戶和表空間的方法