前言
表空間是 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;
用一個操作系統實用程序重新命名此文件如UNIX的cp或mv,或者Windows的copy命令
$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'
設置表空間online
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
SQLite?是一個被大家低估的數據庫,但有些人認為它是一個不適合生產環境使用的玩具數據庫。事實上,SQLite?是一個非常可靠的數據庫,它可以處理?TB?級的數據,但它沒有網絡層。接下來,本文將與大家共同探討?SQLite?在過去一年中最新的?SQL?功能。