■建立資料檔案的SQL語句及說明
CREATE TABLESPACE 建立一個資料表空間和組成它的資料檔案
CREATE TEMPORARY TABLESPACE 建立一個暫存資料表空間和組成它的臨時資料檔案(臨時資料檔案
是一種特殊類型的資料檔案)
ALTER TABLESPACE ... ADD DATAFILE 建立並添加一個資料檔案到資料表空間
ALTER TABLESPACE ... ADD TEMPFILE 建立並添加一個臨時資料檔案到暫存資料表空間
CREATE DATABASE 建立一個資料庫和關聯的資料檔案
■建立資料表空間
SQL> create tablespace myts04
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf' size 2m
3 autoextend on
4 next 1m
5 maxsize 5m
■向空間裡添加資料檔案並指定自動成長方式
SQL> alter tablespace myts02
2 add datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' size 4m
3 AUTOEXTEND ON
4 NEXT 4K
5 MAXSIZE 5M;
■更改原有資料檔案為自動成長方式
SQL> ALTER DATABASE
2 DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf'
3 AUTOEXTEND ON
4 NEXT 2K
5 MAXSIZE 5M;
■取消自動成長方式
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf'
3 autoextend off;
■改變原資料檔案大小
SQL> alter database
2 DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' resize 5m;
也可以利用RESIZE子句來縮小資料檔案,不過必須保證縮小後的資料檔案足夠容納其中已有的資料
■在ARCHIVELOG模式下使資料檔案脫胎機
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline;
■在NOARCHIVELOG模式中使資料檔案離線
要注意,這會使資料檔案離線並立即刪除它,所以,很可能導致遺失資料檔案,這種方法一般只用於暫存資料表空間
的臨時資料檔案.
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline drop;
在這之後,如果要使資料檔案聯機,必須進行介質恢複,否則會有錯誤提示.
■修改資料表空間中所有資料檔案的可用性
ALTER TABLESPACE ... DATAFILE { ONLINE | OFFLINE }
ALTER TABLESPACE ... TEMPFILE { ONLINE | OFFLINE }
資料表空間本身的聯機或離線狀態不改變()
■修改整個資料表空間的可用性
ALTER TABLESPACE ... { ONLINE | OFFLINE }
■同一個資料表空間的資料檔案的重新命名
當改變資料檔案的位置和名稱時,Oracle只是在控制檔案和資料字典中改變了資料檔案的指標,並沒有物理
地建立新的資料檔案,也沒有重定位和重新命名任何作業系統檔案.DBA必須自己在作業系統層複製檔案,並重
定位或重新命名資料檔案.
SETUP1 SQL> alter tablespace myts04 offline normal;
將資料表空間設定為離線狀態是為了關閉該資料表空間中所有的資料檔案,以便在停止資料庫服務時不會造成
資料出現問題
SETUP2 SQL> shutdown immediate
如果不停止資料庫服務就重新命名資料檔案,會出現錯誤提示.
SETUP3 將資料檔案myts04_1.dbf重新命名為myts04_01.dbf、myts04_2.dbf重新命名為myts04_02.dbf
SETUP4 SQL> startup
SETUP5 SQL> alter tablespace myts02
rename datafile
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_2.dbf'
to
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_01.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_02.dbf';
SETUP6 SQL> alter tablespace myts04 online;
■多個資料表空間的資料檔案的重定位和重新命名
SETUP1 SQL> alter tablespace myts01 offline normal;
SQL> alter tablespace myts02 offline normal;
SETUP2 SQL> shutdown immediate
SETUP3 將myts01資料表空間的資料檔案myts01_1.dbf重新命名為myts01_01.dbf、
將myts02資料表空間的資料檔案myts02_1.dbf重新命名為myts02_01.dbf、
SETUP4 SQL> startup
SETUP5 SQL> alter database
rename file
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_1.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_1.dbf'
to
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_01.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_01.dbf';
SETUP6 SQL> alter tablespace myts01 online;
alter tablespace myts02 online;
■查詢資料檔案資訊
DBA_DATA_FILES
DBA_TEMP_FILES
DBA_EXTENTS
USER_EXTENTS
DBA_FREE_SPACE
USER_FREE_SPACE
V$DATAFILE
V$DATAFILE_HEADER
■查看資料檔案與資料表空間
SELECT f.tablespace_name "資料表空間",
Decode(d.EXTENT_MANAGEMENT,'DICTIONARY','字典','本地') "資料表空間類型",
TRUNC(SUM(f.bytes/1024000),2 ) || 'MB' "自由空間",
MIN(f.bytes) "最小位元組", MAX(f.bytes) "最大位元組",
AVG(f.bytes) "平均位元組",COUNT(f.tablespace_name) "分布在"
FROM dba_free_space f, dba_tablespaces d
Where f.tablespace_name = d.tablespace_name
GROUP BY f.tablespace_name ,d.EXTENT_MANAGEMENT