sqlserver裡對資料庫檔案的管理比較簡單,主要的概念有:
1.檔案組。資料庫物件的儲存分配單位 。目的是為了容納更多的資料庫檔案、擴充空間
2.檔案。檔案組的成員,有空間分配是否自動成長的管理
3.預設檔案組
4.唯讀檔案組。這是在sqlserver2005後才有的概念,sqlserver2000沒有!
5.master、tempdb資料庫。用於基本的字典、臨時空間管理
oracle裡對資料庫檔案的管理就比較複雜了,基本的概念:
1.資料表空間
2.資料表空間的資料檔案成員
3.預設資料表空間
4.唯讀資料表空間
5.離線資料表空間
6.離線資料表空間資料檔案成員
7.system、sysaux、undo、temporary資料表空間專門作為資料自動、undo、臨時空間存在
8.bigfile檔案
9.對空間進行[logging|nologging|force logging]
從上的基本對比中:
1.oracle的空間管理有sqlserver所沒有的許多特性
2.oracle的管理變得複雜了。其實某些特性完全可以依賴於os,也許這就是oracle為了平台無關所做的妥協吧
oracle資料表空間的基本要素
1.性質:使用者的永久資料表空間、undo資料表空間、temporary資料表空間
2.是否使用bigfile特性
3.名稱
4.資料表空間檔案成員,如果使用bigfile特性,只能使用一個檔案成員:datafile、tempfile
5.是否記錄日誌:logging、nologging、force logging。不能使用者temporary、undo資料表空間上
6.是否聯機:noline、offline
7.資料區塊尺寸:blocksize {2k、4k......}。必須要相應配置db_nk_cache_size初始化參數。且值不能小於os的塊大小!temporary資料表空間不能使用非標準的資料區塊!
8.擴充區管理員模式:extent management {dictionary|local [autoallocate|uniform [size n[m|k|g..]] ]}。注意temporary、undo資料表空間各有特殊要求!
9.段管理員模式:segment space management {auto|manual}。不能使用者temporary、undo資料表空間上
10.閃回特性是否開啟:flashback {on|off}。不能使用者temporary、undo資料表空間上
11.閃回保留模式:retention {guarantee|noguarantee}
oracle的和資料表空間相關的基本操作
0.注意:
1.temporary資料表空間只能使用add tempfile file-spec一個語句
2.undo表空見可以修改的地方也十分有限
3.system資料表空間不允offline 和 read
......
1.增加資料表空間:create [bigfile] tablespace tbs_name datafile file-spec,..
2.修改資料表空間:增加、刪除檔案:alter tablespace tbs_name {add|drop} {datafile|tempfile}file-spec,..
3.修改資料表空間:移動、重新命名檔案:alter tablespace tbs_name rename datafile file-spec,.. to file-spec,..
4.修改資料表空間:聯機、離線檔案:alter tablespace tbs_name {datafile|tempfile}{online|offline}
5.修改資料表空間:資料表空間名稱:alter tablespace tbs_name rename to new_tabs_name
6.修改資料表空間:記錄模式:alter tablespace tbs_name {logging|nologging|[no] force logging}
7.修改資料表空間:資料表空間聯機、離線模式:alter tablespace tbs_name {online|offline}
8.修改資料表空間:修改讀、寫入模式:alter tablespace tbs_name read {only|write}
9.修改資料表空間:修改閃回模式:alter tablespace tbs_name flashback {on|off}
10.修改資料表空間:修改閃回資料保留模式:alter tablespace tbs_name retention{guarantee|noguarantee}
11.修改資料表空間:修改bigfile檔案的尺寸:alter tablespace tbs_name resize n{k|m|g|t}
12.修改資料表空間:修改bigfile檔案的區自動擴充模式:alter tablespace tbs_name autoextend {off|on [next n maxsize [m|unlimited] ]}
13.修改資料表空間:修改temporary空間的組模式:alter tablespace tbs_name group {group_name|‘’}
14.修改資料表空間:在permanent 和 temporary模式間轉換:alter tablespace tbs_name {permanent|temporary}。轉化前需要考慮temporay資料表空間的諸多限制,否則不會成功
15.修改資料表空間:修改是否線上backup模式:alter tablespace tbs_name {begin|end} backup
16.修改資料表空間:修改讀、寫入模式:alter tablespace tbs_name read {only|write}
17.設定預設資料表空間:alter database set default [temporary] tablespace tbs_name
18.刪除資料表空間:drop tablespace tbs_name [including contents [{and|keep} datafiles]] [cascade contraints]
19.omf管理方式。只要設定db_create_file_dest即可。並且可以和使用者定義方式混合使用
20.查詢資料表空間的基本資料:select * from dba_tablespaces;select * from v$tablespace;
21.查詢資料表空間資料檔案的基本資料:select * from dba_data_files;select * from v$datafile;
22.查詢temporary資料表空間、資料檔案的基本資料:select * from dba_temp_files;select * from v$tempfile;select * from dba_tablespace_groups;
23.修改資料庫:修改資料、臨時檔案的大小:alter database {datafile|tempfile} file-spec,.. resize n{k|m|g|t}。不限於bigfile或smallfile。
24.修改資料庫:修改資料、臨時檔案的區自動擴充模式:alter database {datafile|tempfile} file-spec,.. autoextend {off|on [next n maxsize [m|unlimited] ]}。不限於bigfile或smallfile。
25.修改資料庫:移動、重新命名檔案:alter database rename file file-spec,.. to file-spec,..
26.修改資料庫:聯機、離線檔案:alter database {datafile|tempfile} file-spec,..{online|offline}。如果是datafile offline 可以 選擇 for drop
27.修改資料庫:刪除tomporay檔案:alter database tempfile file-spec,.. drop [including datafiles]
28.修改資料庫:建立datafile檔案:alter database create datafile { file-spec,.. | newfilenumber} as {file-spec,.. | new}
29.修改資料庫:重新命名redo檔案:alter database rename redo-file-spec,.. to redo-file-spec,..
30.修改資料庫:建立redo檔案組:alter database add [standby] logfile [group n] redo-file-spec,..
31.修改資料庫:建立redo檔案群組成員:alter database add [standby] logfile member redo-file-spec,... to group n
32.修改資料庫:刪除redo檔案組:alter database drop [standby] logfile { redo-file-spec|group n}
33.修改資料庫:刪除redo檔案群組成員:alter database drop [standby] logfile member redo-file-spec,...
34.修改資料庫:建立物理、邏輯 standby controlfile檔案:alter database create [logical|physical] standby controlfile as ctlfilespec [reuse]
35.修改資料庫:備份controlfile到指定的全路徑檔案:alter database backup controlfile to ctlfilespec [reuse]
36.修改資料庫:備份controlfile到指定的、或預設的追蹤檔案:alter database backup controlfile to trace [as ctlfilespec ] [reuse] [{resetlogs|noresetlogs}]
37.修改資料庫:刪除redo檔案群組成員:alter database
附記:oracle資料庫檔案的管理
oracle的資料庫檔案,用在以下語句上:
1.create database
2.alter database
3.create controlfile
4.create tablespace
5.alter tablespace
oracle的資料庫檔案主要有兩種類型:datafile_tempfile、redo_logfile。其主要區別在於:redo_logfile檔案不能自動autoextend!
指定資料庫檔案的主要規範如下:
‘full_path_filename’ [size n] [reuse] [autoextend {off|on next maxsize {unlimited|m}}]
注意:
size 可以有多種文字單位{k|m|g|t|p|..},但是如果不指定單位,就是byte位元組
對於undo資料表空間的檔案,必須指定size。其他的資料表空間如果檔案已經存在 或者 使用 omf 可以不指定size
如果忽略autoextend :
對於omf,如果指定了size 則禁止擴充;否則自動擴充
對於使用者定義的檔案,禁止
............................蒼天啊、大地啊,預設全部都是自動多好啊!!!.........................................