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
4.修改表空间:联机、脱机文件:alter tablespace tbs_name
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]]
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
26.修改数据库:联机、脱机文件:alter database {datafile|tempfile} file-spec,..{online|offline}。如果是datafile offline 可以 选择 for drop
27.修改数据库:删除tomporay文件:alter database tempfile file-spec,.. drop
28.修改数据库:创建datafile文件:alter database create datafile
29.修改数据库:重命名redo文件:alter database rename redo-file-spec,.. toredo-file-spec,..
30.修改数据库:创建redo文件组:alter database add [standby] logfile [group n]
31.修改数据库:创建redo文件组成员:alter database
32.修改数据库:删除redo文件组:alter database
33.修改数据库:删除redo文件组成员:alter database
34.修改数据库:创建物理、逻辑 standby controlfile文件:alter database
35.修改数据库:备份controlfile到指定的全路径文件:alter database backup controlfile to
36.修改数据库:备份controlfile到指定的、或默认的跟踪文件:alter database backup controlfile to trace [asctlfilespec ] [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 则禁止扩展;否则自动扩展
对于用户定义的文件,禁止