oracle 与 sql server 区别 03

颜君浩
2023-12-01

oracle的表空间管理和sqlserver的文件组对比


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,.. tofile-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,.. tofile-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,.. toredo-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 asctlfilespec [reuse]

  35.修改数据库:备份controlfile到指定的全路径文件:alter database backup controlfile to   ctlfilespec [reuse]

  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 则禁止扩展;否则自动扩展

                对于用户定义的文件,禁止

 类似资料: