Oracle表空间中有多个数据文件时,extent怎么分配表空间实验

比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
详解Oracle本地管理表空间
  1 名词解释与表空间(Tablespace):为提供使用空间的逻辑结构,其对应物理结构是数据文件,一个表空间可以包含多个数据文件。
  本地管理表空间(Locally Managed Tablespace简称LMT):8i以后出现的一种新的表空间的管理模式,通过本地位图来管理表空间的空间使用。
  字典管理表空间(Dictionary-Managed Tablespace简称DMT):8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。
  段(Segment):数据库一种逻辑结构,如表段,索引段,回滚段等,段存在于表空间中,并对应一定的空间。
  区间,可以简称区(Extent):段的存储可以分成一个或多个区间,每个区间占用一定数量的数据块(block),在本地管理的表空间中,表空间的Extent就对应段的Extent.块(Block):数据库最小的存储单位,在本文中Block的大小约定为8192字节。
  位(Bit):本地管理表空间的空间管理单位,一个位可能等于一个区间,也可能多个位组成一个区间。
  2 本地管理表空间2.1 语法在Oracle8I的版本中,推出了一种全新的表空间管理方式:本地化管理的表空间。所谓本地化管理,就是指Oracle不再利用数据字典表来记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个位图区,在其中记录每个区的使用状况。每当一个区被使用,或者被释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。
  本地化管理的表空间的创建过程:语法:CREATE TABLESPACE 表空间名字 DATAFILE '数据文件详细信息' [EXTENT MANAGEMENT { LOCAL {AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M] ] } } ]关键字EXTENT MANAGEMENT LOCAL 指定这是一个本地化管理的表空间。对于系统表空间,只能在创建数据库的时候指定EXTENT MANGEMENT LOCAL,因为它是数据库创建时建立的第一个表空间。
  在8i中,字典管理还是默认的管理方式,当选择了LOCAL关键字,即表明这是一个本地管理的表空间。当然还可以继续选择更细的管理方式:是AUTOALLOCATE 还是 UNIFORM.。若为AUTOALLOCATE,则表明让Oracle来决定区块的使用办法;若选择了UNIFORM,则还可以详细指定每个区块的大小,若不加指定,则为每个区使用1M大小。
  2.2 本地管理优点1. 本地化管理的表空间避免了递归的空间管理操作。而这种情况在数据字典管理的表空间是经常出现的,当表空间里的区的使用状况发生改变时,数据字典的表的信息发生改变,从而同时也使用了在系统表空间里的回滚段。
  2. 本地化管理的表空间避免了在数据字典相应表里面写入空闲空间、已使用空间的信息,从而减少了数据字典表的竞争,提高了空间管理的并发性3. 区的本地化管理自动跟踪表空间里的空闲块,减少了手工合并自由空间的需要。
  4. 表空间里的区的大小可以选择由Oracle系统来决定,或者由员指定一个统一的大小,避免了字典表空间一直头疼的碎片问题。
  5. 从由数据字典来管理空闲块改为由数据文件的头部记录来管理空闲块,这样避免产生回滚信息,不再使用系统表空间里的回滚段。因为由数据字典来管理的话,它会把相关信息记在数据字典的表里,从而产生回滚信息。
  由于这种表空间的以上特性,所以它支持在一个表空间里边进行更多的并发操作,并减少了对数据字典的依赖。
  3 本地管理表空间管理机制表空间是一种为段(表,索引等)提供空间的逻辑结构,所以,当在表空间中增加,删除段的时候,数据库就必须跟踪这些空间的使用。
  如下例所示,假定一个新创建的表空间包含了五个表表一……表二……表三……表四……表五……未用空间当我们删除表四的时候,就有如下结果表一……表二……表三……空闲空间段……表五……未用空间很明显,ORACLE需要有一个机制来管理表空间中各数据文件的这些分配的或未分配的空间,为了跟踪这些可以使用的空间(包括未分配使用的和可以重复使用的),对于每一个空间,我们必须知道:1、这个可用空间位于什么数据文件2、这个空间的尺寸是多大3、如果它在用了,是哪一个段占用的这个空间直到8i之前,所有的表空间都是采用字典管理模式,为了确保能保存以上的信息,ORACLE用了两个数据字典表:UET$(已使用的区间)或FET$(空闲空间):SQL& desc UET$ Name Type Nullable Default Comments
  --------- ------ -------- ------- --------
  SEGFILE# NUMBER SEGBLOCK# NUMBER EXT# NUMBER TS# NUMBER FILE# NUMBER BLOCK# NUMBER LENGTH NUMBER
  SQL& desc FET$ Name Type Nullable Default Comments
  ------ ------ -------- ------- --------
  TS# NUMBER FILE# NUMBER BLOCK# NUMBER LENGTH NUMBER查询该表可以看到,每个使用空间或空闲空间(不一定是一个extent,可以是多个extent)都在该表中对应了一行。它的工作方式是当一个段被删除的时候,ORACLE就移动UET$中相应的行到FET$,这个过程的发生是连续的,而且可能发生等待。当并发性很高的时候,数据字典的争用就来了。另外有一个问题就是,当表的空间很不连续或表空间有大量的碎片引起这两个表的增大,那么也就会引起数据库性能上的下降。
  本地管理表空间正是为了解决这一问题来的,在表空间的空间管理上,ORACLE将存储信息保存在表空间的头部的位图中,而不是保存在数据字典中。通过这样的方式,在分配回收空间的时候,表空间就可以独立的完成操作也不用与其它对象关系。
  下面就让我们进入到本地管理表空间的内部,ORACLE是怎么实现这一工作的。
  4 用Uniform方式的本地管理表空间4.1 当uniform size值太小时SQL& create tablespace demo32 datafile '/oradata/ltest/demo32.dbf' size 10m extent management local uniform size 32k;ORA-03249: Uniform size for auto segment space managed tablespace should have at least 5 blocks注意: 我实验环境block为8k, 所以uniform size至少为40k. 4.2 当storage参数中的initial为空时SQL& create tablespace demo64 datafile '/oradata/ltest/demo64.dbf' size 10m extent management local uniform size 64k;Tablespace created SQL& select a.initial_extent / 1024 "INIT_EXTENT(K)",2 a.next_extent / 1024 "NEXT_EXTENT(K)" 3 from user_tablespaces a 4 where a.tablespace_name = 'DEMO64';INIT_EXTENT(K) NEXT_EXTENT(K)
  -------------- --------------
  64 64 SQL& create table demotab64(x number) tablespace demo64;Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOTAB64';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
  -------------------------- -------------- --------------
  DEMOTAB64 64 64注意: 建表时没有存储参数initial时, 初始化区与下一个区的大小都是64k, 与uniform size的大小一样的。
  SQL& select a.bytes / 1024 "INIT_EXTENT(K)" from user_extents a where a.segment_name = 'DEMOTAB64' and a.extent_id = 0;INIT_EXTENT(K)
  --------------
  64 SQL& select count(*) from user_extents where segment_name = 'DEMOTAB64';COUNT(*)
  ----------
  1注意: 在该段中, 产生一个区。
  4.3 当initial & uniform size时SQL& create table demotab64_1(x number) tablespace demo64 storage (initial 1K next 5k);Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOTAB64_1';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
  --------------------------- -------------- --------------
  DEMOTAB64_1 16 64注意: 此时INIT_EXTENT为16, 不是initial参数的1. SQL& select a.bytes / 1024 "INIT_EXTENT(K)" from user_extents a where a.segment_name = 'DEMOTAB64_1' and a.extent_id = 0;INIT_EXTENT(K)
  --------------
  64 SQL& select count(*) from user_extents where segment_name = 'DEMOTAB64_1';COUNT(*)
  ----------
  1 4.4 当initial & uniform size时SQL& create table demotab64_200(x number) tablespace demo64 storage (initial 200K next 20k);Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOTAB64_200';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
  -------------------------- -------------- --------------
  DEMOTAB64_200 200 64注意: initial & uniform size时, 初始化区的大小initial的大小。
  SQL& select a.bytes / 1024 "INIT_EXTENT(K)" from user_extents a where a.segment_name = 'DEMOTAB64_200' and a.extent_id = 0;INIT_EXTENT(K)
  --------------
  64 SQL& select count(*) from user_extents where segment_name = 'DEMOTAB64_200';COUNT(*)
  ----------
  4注意: 此时分配的区已经不是1个了, 是4个。 在这种情况下initial就有起做作用。 分配区的数量为: 取整(initial/uniform size) + 1
  结论: 在uniform size时, initial不管为多少时, 这个段的每一个区大小都为uniform size的大小。
  5 用autoallocate方式的本地管理表空间5.1 当storage参数中的initial为空时SQL& create tablespace demoa datafile '/oradata/ltest/demoa.dbf' size 10m extent managemenTablespace created SQL& select a.initial_extent / 1024 "INIT_EXTENT(K)",2 a.next_extent / 1024 "NEXT_EXTENT(K)" 3 from user_tablespaces a 4 where a.tablespace_name = 'DEMOA';INIT_EXTENT(K) NEXT_EXTENT(K)
  -------------- --------------
  64 SQL& create table demoatab(x number)Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOATAB';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
  ------------------------- -------------- --------------
  DEMOATAB 64 SQL& select count(*) from user_extents where segment_name = 'DEMOATAB';COUNT(*)
  ----------
  SQL& select a.segment_name, a.bytes, a.blocks from user_extents a where a.segment_name = 'DEMOATAB_1';SEGMENT_NA BYTES BLOCKS
  ---------- ---------- ----------
  DEMOATAB_1 65536 8 DEMOATAB_1
23 rows selected当自动分配时,发现开始第一个区分配8个块(64K), 到17区开始, 每个区分配128个块(大小1M)。 我做过实验当initial足够大时, 第一个区的大小不一定都是64K, 可以是1M, 8M, 64M 甚至是256M. 5.2 当initial & uniform size时SQL& create table demoatab_1(x number) tablespace demoa storage (initial 1K next 5k);Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOATAB_1';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
  -------------------------- -------------- --------------
  DEMOATAB_1 16 SQL& select a.bytes / 1024 "INIT_EXTENT(K)" from user_extents a where a.segment_name = 'DEMOATAB_1' and a.extent_id = 0;INIT_EXTENT(K)
  --------------
  64 SQL& select count(*) from user_extents where segment_name = 'DEMOATAB_1';COUNT(*)
  ----------
  1 5.3 当initial & uniform size时SQL& create table demoatab_200(x number) tablespace demoa storage (initial 200K next 5k);Table created SQL& select a.table_name,2 a.initial_extent / 1024 "INIT_EXTENT(K)",3 a.next_extent / 1024 "NEXT_EXTENT(K)" 4 from user_tables a 5 where a.table_name = 'DEMOATAB_200';TABLE_NAME INIT_EXTENT(K) NEXT_EXTENT(K)
[ 责任编辑:之极 ]
人与人的社交关系已经完全迁移到…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyteposts - 10,&
comments - 34,&
trackbacks - 0
--==============================--Oracle&表空间与数据文件--==============================/*一、概念&&&&表空间:是一个或多个数据文件的逻辑集合&&&&表空间逻辑存储对象:永久段--&如表与索引&&&&&&&&&&&&&&&&&&&&&&&&临时段--&如临时表数据与排序段&&&&&&&&&&&&&&&&&&&&&回滚段--&用于事物回滚或闪回内存的撤销数据&&&&表空间分类:系统表空间(system、sysaux),非系统表空间&&&&&&&一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间。&&&&&&&不可或缺的几个表空间:&&&&SYSTEM ---&字典表空间,不能被损坏&&&&UNDO&&&&---&dml,dql把数据快照到此,数据提交即消失(用于恢复)&&&&SYSAUX&&---&10g&高并发系统繁忙时,会造成system争用,将工具放到SYSAUX,减轻system的压力,SYSAUX不影响系统(影响性能)&&&&TEMP&&&&---&临时数据相关的内容&&&&USERS&&&---&10g&&用户数据从system拨离出来&&&&&&二、Oracle的存储结构&&&&1.Schema:&用户---&创建相关对象、表、视图、序列、函数、存储过程、包等&&&&2.逻辑结构:database数据库---&tablespace表空间---& segment段---&extent区间----& block块&&&&&&&&&&&&逻辑结构是Oracle内部管理数据库中对象的方式&&&&3.物理结构:OS&&block ---&datafile&物理结构通常是一系列数据文件&&&&4.举例描述scott用户创建对象的组织方式&*/&&&--查看scott用户的默认表空间及数据文件&&&&SQL&&select&USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2&&from&dba_users&&&&&&3&&where&username&=&'SCOTT';&&&&&USERNAME&&&&&&&&&&&&&&&&&&&&&&&DEFAULT_TABLESPACE&&&&&&&&&&&&&TEMPORARY_TABLESPACE&&&&------------------------------ ------------------------------ ------------------------------&&&&SCOTT&&&&&&&&&&&&&&&&&&&&&&&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&TEMP&&&&&SQL&&col&name&format a50&&&&SQL&&select&t1.name,t2.name&&&--查看表空间及数据文件&&&&&&2&&from&v$tablespace t1,v$datafile t2&&&&&&3&&where&t1.ts#&=&t2.ts#;&&&&&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&NAME&&&&-------------------------------------------------- --------------------------------------------------&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/system01.dbf&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/undotbs01.dbf&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/sysaux01.dbf&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/users01.dbf&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/example01.dbf&/*&&&&scott--&emp(table)--&数据定义(位于)--&system表空间&&&&&&&&&&&&&&&&&&&&&&数据(位于)&&--&user表空间(逻辑存储)--&表段--&区间--&内存块&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&--&索引段等--&区间--&内存块&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&user表空间(物理存储)--&user01.dbf&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&--&采用本地管理,包含头部信息,可用、已用等位图信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&当databuffer缓冲区满则调用dbwr进程将数据写入到物理文件当中&*/&&&&/*&三、创建表空间&&&&&--简要语法:&&&&CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name&&&&DATAFILE datafile spec | TEMPFILE tempfile spec&&&&[MINIMUM EXTENT minimum extent size]&&&&[BLOCKSIZE blocksize]&&&&[[COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)]&&&&[LOGGING|NOLOGGING]&&&&[FORCE LOGGING]&&&&[ONLINE|OFFLINE]&&&&[EXTENT MANAGEMENT DICTIONARY |&&&&LOCAL [AUTOALLOCATE|UNIFORM SIZE size]]&&&&[SEGMENT SPACE MANAGEMENT MANUAL|AUTO]&&&&[FLASHBACK ON|OFF]&&&&&&&--创建表空间的条件&&&&1.具有create tablespace的权限,DBA角色具有该权限,sysdba,sysoper&&&&2.创建的是bigfiel&,还是smallifle&&超过T&级别应考虑bigfile&&&&3.新建的表空间的I/O,是否会导致磁盘I/O不够用&&&&4.datafile后跟的路径应该具备写的权限&&*/&&&&&&&--查看缺省是BIGFILE&还是SMALLFILE,当缺省为SMALLFILE,创建表空间不指定表空间类型则为SMALLFILE&&&&SQL&&select&PROPERTY_NAME,PROPERTY_VALUE&from&database_properties&where&PROPERTY_NAME&like&'%TBS%';&&&&&PROPERTY_NAME&&&&&&&&&&&&&&&&&&PROPERTY_VALUE&&&&------------------------------ --------------------------------------------------&&&&DEFAULT_TBS_TYPE&&&&&&&&&&&&&&&SMALLFILE&&&&&&&--修改创建表空间为大或小表空间的默认值&&&&SQL&&alter&database&set&default&bigfile tablespace;&&&&&Database&altered.&&&&&SQL&&select&PROPERTY_NAME,PROPERTY_VALUE&from&database_properties&where&PROPERTY_NAME&like&'%TBS%';&&&&&PROPERTY_NAME&&&&&&&&&&&&&&&&&&PROPERTY_VALUE&&&&------------------------------ --------------------------------------------------&&&&DEFAULT_TBS_TYPE&&&&&&&&&&&&&&&BIGFILE&&&&&&&--改回为缺省值&&&&SQL&&alter&database&set&default&smallfile tablespace;&&&&&Database&altered.&&&&&&&--建议创建表空间时最好带上[BIGFILE | SMALLFILE]参数,以免参数设置导致创建了不合理的表空间&&&&/*&&&&注意:&&&&大表文件(bigfile)最大可以存放个T的容量。头文件的大小达到了G-->block,普通的头文件大小为M----&block。&&&&create bigfile tablespace && datafile &&........;&&&&&&&好处:减少了数据文件的个数,管理方便,大的对象的存放得到了优化。减少了control文件的信息,控制文件定义了datafile的个数。&&&&&&&bigfile只能存在一个数据文件,所以要保证分配的的磁盘具有足够的空间。&*/&&&&&&&&&&--演示创建表空间&&&&SQL&&create&tablespace TBS1 datafile&'/u01/app/oracle/oradata/orcl/tbs1.dbf'&size&100m;&&&&&Tablespace created.&&&&&SQL&&col&name&format a50&&&&&&&&&&SQL&&select&t1.name,t2.name&&&&&&2&&from&v$tablespace t1,v$datafile t2&&&&&&3&&where&t1.ts#&=&t2.ts#;&&&&&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&NAME&&&&-------------------------------------------------- --------------------------------------------------&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/system01.dbf&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/undotbs01.dbf&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/sysaux01.dbf&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/users01.dbf&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/example01.dbf&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/tbs1.dbf&&&&&&&/*&&&&创建临时表空间:&&&&创建临时表空间,不能使用非标准数据块,另临时表空间不能存放永久对象。*/&&&&CREATE&TMEPORARY TABLESPACE tablespace_name&&&&TEMPFILE&'...'&SIZE&n&&&&&CREATE&TEMPORARY TABLESPACE T2 TEMPFILE&'/opt/oracle/oradata/orcl/t2.dbf'&&&&size&100m;&&&&/*&&&&临时表空间具有以下特征:&&&&&&&临时数据文件不能置为只读&&&&&&&临时数据文件不能重命名&&&&&&&监时数据文件的日志方式总是NOLOGGING&&&&&&&&&&临时表空间扩容:*/&&&&--(1)重置临时文件大小&&&&&&&&alter&database&tempfile&'/opt/oracle/oradata/orcl/t2.dbf'&resize 150m;&&&&&--(2)让临时文件能自动扩展&&&&&&&alter&database&&tempfile&'/opt/oracle/oradata/orcl/t2.dbf'&&&&&&&autoextend&on&next 10m&maxsize&50m;&&&&&--(3)增加临时文件&&&&&&&alter&tablespace t2&add&tempfile&'/disk8/oracle/t2b.dbf'&size&50m;&&&&&--查看临时文件&&&&&&&select&TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)"&&&&&&&from&dba_temp_files;&&&&&--默认临时表空间:&&&&&&&&select&*&from&database_properties;&&&&&--修改默认临时表空间:&&&&&&&ALTER&DATABASE&DEFAULT&TEMPORARY TABLESPACE T2;&&&&&&&/*&&&&&&&&默认临时表空间最好要指定一下,如果没有指定默认的临时表空间,那么将使用system表空间作为排&&&&&&&序区&&&&&&&&默认临时表空间有一定的限制:&&&&&&&&&&&默认临时表空间不能删除&&&&&&&&&&&默认临时表空间不能脱机&&&&&&&&&&&&&&&获得创建表空间的语句:*/&&&&&&&SELECT&dbms_metadata.get_ddl('TABLESPACE','SYSTEM')&FROM&dual;&&&&&/*&&&&临时表空间组:&&&&&&&10G引入的,是一组临时表空间,只能由临时表空间组成。组名不能与临时表空间同名&&&&&&&临时表空间不能显示的创建和删除,当把第一个临时表空间分配给某个临时表空间组的时候,自动创建&&&&&&&临时表空间组,将最后一个临时表空间,删除时,组也将自动删除。&&&&&&创建临时表空间组:&&&&&&&1、创建临时表空间的时候&*/&&&&&&&&CREATE&TEMPORARY TABLESPACE tablespace_name TEMPFILE&'...'&SIZE&n&&&&&&&&TABLESPACE&GROUP&group_name;&&&&&&&&&ALTER&TABLESPACE tablespace_name TABLESPACE&GROUP&group_name;&&&&&&&&&&&ALTER&TABLESPACE T3 TABLESPACE&GROUP&TEMP_GRP;&&&&&--查看临时表空间组的信息:&&&&&&&dba_tablespace_groups&&&&&&&&SELECT&*&FROM&DBA_TABLESPACE_GROUPS;&&&&&--将临时表空间组成员移除:&&&&&&&ALTER&TABLESPACE tablespace_name TABLESPACE&GROUP&'';&&&&&--可将系统默认的临时表空间设为临时表空间组:&&&&&&&ALTER&DATABASE&DEFAULT&TEMPORARY TABLESPACE tablespace_name;&&&&&--删除临时表空间:&&&&&&&--将所有成员全移出去,便自动删除&&&&&--创建UNDO表空间(还原表空间):&&&&/*&&&&创建语法:*/&&&&&&&CREATE&UNDO TABLESPACE tablespace_name DATAFILE&'...'&SIZE&n&&&&&SQL&&CREATE&UNDO TABLESPACE undo2&&&&&&&DATAFILE&'/opt/oracle/oradata/orcl/undo2_01.dbf'&SIZE&200M,&&&&&&&'/opt/oracle/oradata/orcl/undo2_02.dbf'&size&100m;&&&&&--修改当前系统的UNDO表空间:&&&&&&&ALTER&SYSTEM&SET&UNDO_TABLESPACE=tablespace_name&&&&&/*&&&&&UNDO表空间扩容:&&&&&&&()重置DATAFILE大小&&&&&&&()让DATAFILE能AUTOEXTEND&&&&&&&()添加数据文件&&&&&删除UNDO表空间&*/&&&&&&&DROP&TABLESPACE tablespace_name&&&&&&&&/*&&&&&&&注:当前的UNDO表空间不能删除&&&&&&&&&&&系统只能使用一个UNDO表空间&*/&&&&&&--创建表空间的详细语法:/docs/cd/B28359_01/server.111/b28286/statements_7003.htm#SQLRF01403&&&&&&&&&&&&&&&&&/*四、表空间的管理方式:&&&&字典管理:oracle 8i(不包括i),只存在一种表空间的管理模式,即字典管理表空间(DMT)&&&&&&&DMT是指oracle的空间分配或回收是通过数据库中的数据字典表来记录和管理的&&&&&&&用于管理的两个数据字典表分别是:UET$(used extents)和FET$(freeextents)&&&&&&&&&&&&&其工作方式是:当建立一个新的段或者段在表空间时,oracle通过一系列的SQL语句来完成这个工作&&&&&&&且和前面的两个字典表有关,在繁忙的系统中会造成竞争和等待(另一个DMT会带来的问题是空间碎片)&&&&&&&&&&本地管理(LMT):&&&在i的R2版本后成了默认的选项&&&&&&&LMT在表空间的数据文件头部加入了一个位图区域,在其中记录每个extent的使用状况&&&&&&&当extent被使用或者被释放,oracle会更新头部的记录来反映这个变化,不产生回滚信息&&&&&&&&因为仅仅操作数据文件头部的几个数据块,不用操作数据字典,LMT比DMT要快,尤其是在繁忙的时候更明显&&&&&--查看表空间使用的管理方式:&*/&&&&SQL&&select&TABLESPACE_NAME,EXTENT_MANAGEMENT,BLOCK_SIZE,STATUS,CONTENTS,FORCE_LOGGING,BIGFILE&&&&&&2&&from&dba_tablespaces;&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&EXTENT_MAN BLOCK_SIZE STATUS&&&&CONTENTS&&FOR&BIG&&&&------------------------------ ---------- ---------- --------- --------- --- ---&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&PERMANENT&NO&&NO&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&UNDO&&&&&&NO&&NO&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&PERMANENT&NO&&NO&&&&TEMP&&&&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&TEMPORARY&NO&&NO&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&PERMANENT&NO&&NO&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&PERMANENT&NO&&NO&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&LOCAL&&&&&&&&&&&&8192 ONLINE&&&&PERMANENT&NO&&NO&&&&&--DMT&和LMT&的相互转换&&&&&&&--将字典管理的表空间转换为本地管理&&&&&&&exec&dbms_space_admin.tablespace_migrate_to_local('表空间名')&&&&--表空间名用大写&&&&&&&&--将本地管理的表空间转换为字典管理&&&&&&&exec&dbms_space_admin.tablespace_migrate_from_local('表空间名')&&&&&&&&--表空间改名:&&&&&&&&--必须在open状态下,system , sysaux&不能改名&&&&&&&ALTER&TABLESPACE XXX RENAME&TO&YYY&&&&&&&&&&&&&&&&--表空间的扩容:&&&&&&/*&&&&&&表空间的大小由组成它的所有数据文件的大小之和来决定&&&&&&扩容的方法:*/&&&&&&&&&--(1)重置数据文件大小&&&&&&&&&&&&ALTER&DATABASE&DATAFILE&'...'&|&FileNo RESIZE XX&&&&&&&&&--(2)设置数据文件能自动增长&&&&&&&&&&&ALTER&DATABASE&DATAFILE&'... '|&FileNo AUTOEXTEND&ON&|&OFF&NEXT 20M&MAXSIZE&300M;&&&&&&&&&&&&--查看哪些表空间为自动增长&&&&&&&&&&&SELECT&FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE&FROM&dba_data_files;&&&&&&&&&&&&&&&&&&/* (3)添加数据文件&&&&&&&&&&&&&&&&&增加到表空间中的数据文件不能直接从表空间中删除,除非删掉整个表空间&&&&&&&&&&&增加数据文件将有助于均衡I/O&&&&&&&&&&&一个表空间文件最多为个,文件越多,执行一次检查点的代价越高&&*/&&&&&&&&&&&&&&&&&&&&&ALTER&TABLESPACE tablespace_name&&ADD&DATAFILE&'...'&SIZE&XX;&&&&&&&&&&&&&&&&ALTER&TABLESPACE tbs2&ADD&DATAFILE&'/u01/app/oracle/oradata/orcl/tbs2.dbf'&size&200m autoextend&on&;&&&&&&&&&&&&&&--表空间的四种状态:&&&&&&&online&&&&&&&offline&&&&&&&read&only&&&&&&&read&write&&&&&&&/*&&&&offline:&&&&&&&一个表空间的正常状态是联机(ONLINE),有时需要将某一个表空间进行脱机,以进行数据库维护&&&&&&&如:&&&&&&&&&&&在数据库打开的状态下移动数据文件&&&&&&&&&&&在数据库打开的情况下恢复一个表空间或数据文件&&&&&&&&&&&执行表空间的脱机备份(虽然可以进行进行联机备份)&&&&&&&&&&&使数据库某一部分不可访问,让其它部分能正常访问。&&&&&&&&表空间脱机的时候,将产生检查点事件,该表空间上的数据是不能访问的&&&&&&&&命令:*/&&&&&&&ALTER&TABLESPACE tablespace_name OFFLINE;&&&&&&&&--联机命令:&&&&&&&ALTER&TABLESPACE tablespace_name ONLINE;&&&&&&&&&&&&&--在脱机后,有可能无法再联机,这时要做数据的介质恢复&&&&&&&ALTER&DATABASE&RECOVER TABLESPACE tablespace_name&&&&&&&ALTER&TABLESPACE tablespace_name ONLINE;&&&&&&&/*&&&&read only:&&&&&&&&不能执行DML语句,可以使用的为DDL,DQL语句&&*/&&&&&&&ALTER&TABLESPACE tablespace_name&READ&ONLY;&&&&&&&read&write:&&&&&&&ALTER&TABLESPACE tablespace_name&READ&WRITE;&&&&&&&--一些表空间的特殊状态&&&&&&&tablespacename&&&&&&&&&&&&onlie&&&&&&&&&&&&read&&only&&&&&&&&&&system&&&&&&&&&&&&&&&&&&必须online&&&&&&&必须read&write&&&&&&&&&&sysaux&&&&&&&&&&&&&&&&&&可以offline&&&&&&不能read&only&&&&&&&&&&undo&&&&&&&&&&&&&&&&&&&&不能offline&&&&&&不能read&only&&&&&&&&&&--查看表空间的状态&&&&SQL&&select&tablespace_name,file#,v.status,v.enabled&from&dba_data_files d,&&&&&&2&&v$datafile v&&&&&&3&&where&d.file_id&=&v.file#;&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&&&&&&FILE# STATUS&&ENABLED&&&&------------------------------ ---------- ------- ----------&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1 SYSTEM&&READ&WRITE&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2 ONLINE&&READ&WRITE&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3 ONLINE&&READ&WRITE&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4 ONLINE&&READ&WRITE&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&5 ONLINE&&READ&WRITE&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&6 ONLINE&&READ&WRITE&&&&&&&&&&&&--几种状态的相互转换的演示&&&&--将表空间置为只读&&&&SQL&&alter&tablespace users&read&only;&&&&&Tablespace altered.&&&&&SQL&&update&scott.emp&set&sal&=&sal&+&50&where&ename&=&'SCOTT';&--置为只读后不可更新&&&&update&scott.emp&set&sal&=&sal&+&50&where&ename&=&'SCOTT'&&&&&&&&&&&&&&&*&&&&ERROR at line 1:&&&&ORA-00372:&file&4 cannot be modified at this&time&&&&ORA-01110:&data&file&4:&'/u01/app/oracle/oradata/orcl/users01.dbf'&&&&&&SQL&&select&tablespace_name,file#,v.status,v.enabled&from&dba_data_files d,&&&&&&2&&v$datafile v&&&&&&3&&where&d.file_id&=&v.file#&and&tablespace_name&=&'USERS';&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&&&&&&FILE# STATUS&&ENABLED&&&&------------------------------ ---------- ------- ----------&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4 ONLINE&&READ&ONLY&&&&&&&--将表空间置为脱机&&&&SQL&&alter&tablespace users offline;&&&&&Tablespace altered.&&&&&SQL&&update&scott.emp&set&sal&=&sal&+&100&where&ename&=&'SCOTT';/*置为脱机后不可更新*/&&&&update&scott.emp&set&sal&=&sal&+&100&where&ename&=&'SCOTT'&&&&&&&&&&&&&&&*&&&&ERROR at line 1:&&&&ORA-00376:&file&4 cannot be&read&at this&time&&&&ORA-01110:&data&file&4:&'/u01/app/oracle/oradata/orcl/users01.dbf'&&&&&&&--将表空间置为联机&&&&SQL&&alter&tablespace users online;&&&&&&&Tablespace altered.&&&&&SQL&&select&tablespace_name,file#,v.status,v.enabled&from&dba_data_files d,&&&&&&2&&v$datafile v&&&&&&3&&where&d.file_id&=&v.file#&and&tablespace_name&=&'USERS';&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&&&&&&FILE# STATUS&&ENABLED&&&&------------------------------ ---------- ------- ----------&&&&USERS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4 ONLINE&&READ&ONLY&&&&&&&--注意,readonly&状态下的表空间可以删除数据,仅仅是不能插入或更新数据,如下&&&&SQL&&delete&from&scott.emp&where&ename&=&'SCOTT';&&&&&SQL&&rollback;&&&&&Rollback&complete.&&&&&--将表空间置为读写状态&&&&SQL&&alter&tablespace users&read&write;&&&&&Tablespace altered&&&&&&&--表空间数据文件的重命名或重定位&&&&--方法一,在open状态下且处于archive模式:&&&&&&&--1、查出数据文件位置和所属的表空间&&&&&&&&&&&select&TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)"&&&&&&&&&&&from&dba_data_files;&&&&&&&&--2、将数据文件所在的表空间离线&&&&&&&&&&&alter&tablespace uu offline;&&&&&&&&--3、在操作系统下将文件移动到另外一个位置,或重命名(建议使用cp)&&&&&&&&&&&host mv&/opt/oracle/oradata/orcl/tt.dbf&/disk9/uu1.dbf&&&&&&&&&&&&&--4、修改控制文件,将数据文件的指针重新指向到另一个位置(执行rename)&&&&&&&&&&&alter&tablespace uu rename datafile&'/opt/oracle/oradata/orcl/tt.dbf'&&&&&&&&&&&to&'/disk9/uu1.dbf';&&&&&&&&--5、表空间在线&&&&&&&&&&&alter&tablespace uu online&&&&&&&&&&--方法二,不能脱机的表空间&&&&&&&--1、关闭数据库,再启动到mount状态&&&&&&&&&&&startup mount&&&&&&&--2、在操作系统下,移动或重命名文件&&&&&&&&&&&host mv&/opt/oracle/oradata/orcl/tt.dbf&/disk9/uu1.dbf&&&&&&&--3、修改控制文件&&&&&&&&&&&alter&database&rename&file&'/disk8/uu.dbf'&to&'/disk8/uu2.dbf';&&&&&&&&&&&&&--4、打开数据库&&&&&&&&&&&alter&database&open;&&&&/*&&&&&删除表空间:&&&&&&&&&&意味着表空间和数据文件的信息从数据库中删除,同时也应该将相应的操作系统文件删除&&&&&&&不能删除的表空间&&&&&&&&&&&系统表空间&&&&&&&&&&&有活动回滚段的表空间&&&&&&&&&&&默认临时/永久表空间&&&&&&&命令:&&*/&&&&&&&&&&&DROP&TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES]]&&&&&&&&&&&&&&&INCLUDING CONTENTS&&&&&&&&&&&&&&&&--&删除表空间及所有段&&&&&&&&&&&&&&INCLUDING CONTENTS [AND DATAFILES]&--删除表空间、所有段、数据文件、同时删除系统中的物理文件&&&&&&&&&&&&&&&&&--限制某个用户对表空间的使用:&&&&ALTER&USER&user_name&QUOTA n&ON&tablespace_name;&&&&&ALTER&USER&scott QUOTA 10m&on&UU;&&&&--取消限制&&&&ALTER&USER&user_name&QUOTA UNLIMITED&ON&tablespace_name;&&&&&GRANT&UNLIMITED TABLESPACE&TO&user_name;&&&&&--单个数据文件离线:&&&&&&&--1、查看有哪些数据文件&&&&&&&&&&&SELECT&name&FROM&v$datafile;&&&&&&&&--2、离线&&&&&&&&&&&ALTER&DATABASE&DATAFILE&'...'&OFFLINE;&&&&&&&&&&&&&--3、在线&&&&&&&&&&&&&ALTER&DATABASE&DATAFILE&'... '&ONLINE&&&&&&&&--&&有可能提示要进行介质恢复:&&&&&&&&&&&RECOVER DATAFILE&'...'&;&&&&&&&&&&&&ALTER&DATABASE&RECOVER TABLESPACE tablespace_name;&&&&&&&&--&&之后再将文件再线&&&&&--重命名数据文件(同前面移动数据文件一样)&&&&--获取表空间和数据文件信息&&&&&&&--表空间信息&&&&&&&&&&&dba_tablespaces&&&&&&&&&&&v$tablespace&&&&&&&--数据文件信息&&&&&&&&&&&dba_data_files&&&&&&&&&&&v$datafile&&&&&&&--临时数据文件信息&&&&&&&&&&&dba_temp_files&&&&&&&&&&&v$tempfile&&&&&&&&&&--查看系统默认的表空间及临时表空间:&&&&&&&&&SQL&&select&PROPERTY_NAME,PROPERTY_VALUE&from&database_properties&&&&&&&2&&where&PROPERTY_NAME&like&'DEFAULT%';&&&&&--修改改系统的默认表空间:&&&&&&&SQL&ALTER&DATABASE&DEFAULT&TABLESPACE tablespace_name&&&&&--修改系统的默认临时表空间:&&&&&&&SQL&ALTER&DATABASE&DEFAULT&TEMPORARY TABLESPACE tablespace_name&&&&&--查看用户默认表空间:&&&&&&&SQL&select&USERNAME,USER_ID,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE&from&dba_users;&&&&&--修改用户默认表空间:&&&&&&&SQL&ALTER&USER&user_name&DEFAULT&TABLESPACE tablespace_name&&&&&&&&&&--查看表空间的使用情况:&&&&&&&dba_data_files;&&&&&&&dba_free_space;&&&&&&&&&&&&&&&&&--例:查每个表空间的剩余空间&&&&&&&SQL&&select&tablespace_name,sum(bytes/1024/1024)&&&&&&&&&2&&from&dba_free_space&group&by&tablespace_name;&&&&&&&/*五、数据文件&&&&数据文件是数据库中最重要的一个要求,是所有的数据库内容存放的地方&&&&datafile是按照表空间为组织单位,表空间的构成是按照段区块为层次---数据文件的逻辑结构&&&&datafile就是表空间的物理文件。&&&&datafile中的内容是通过dbwr把data buffer cache中的dirty buffer data&写入的&&&&dbwr触发:&&&&&&&&ckpt触发,dirty buffer&到一定量的时候,data buffer caceh&的内存空间快用完了&&&&&&&查询空闲内存空间超时,表空间offline/read only,表的drop, truncate&开始执备份表空间的时候&*/&&&&&&&&&&--查看数据文件&&&&SQL&&select&file#&,name,status,enabled,bytes/1024/1024 M&from&v$datafile;&&&&&&&&&FILE#&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&STATUS&&ENABLED&&&&&&&&&&&&&M&&&&---------- -------------------------------------------------- ------- ---------- ----------&&&&&&&&&&&&1&/u01/app/oracle/oradata/orcl/system01.dbf&&&&&&&&&&SYSTEM&&READ&WRITE&&&&&&&&490&&&&&&&&&&&&2&/u01/app/oracle/oradata/orcl/undotbs01.dbf&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&&30&&&&&&&&&&&&3&/u01/app/oracle/oradata/orcl/sysaux01.dbf&&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&250&&&&&&&&&&&&4&/u01/app/oracle/oradata/orcl/users01.dbf&&&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&&&5&&&&&&&&&&&&5&/u01/app/oracle/oradata/orcl/example01.dbf&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&100&&&&&&&&&&&&6&/u01/app/oracle/oradata/orcl/tbs1_1.dbf&&&&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&100&&&&&&&&&&&&7&/u01/app/oracle/oradata/orcl/tbs1_2.dbf&&&&&&&&&&&&ONLINE&&READ&WRITE&&&&&&&&&60&&&&&&&&&&&&&&&&SQL&&select&tablespace_name,file_name,user_bytes/1024/1024 M&from&dba_data_files;&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&FILE_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&M&&&&------------------------------ ------------------------------------------------------- ----------&&&&USERS01&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/users01.dbf&&&&&&&&&&&&&&&&&&&&4.9375&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/sysaux01.dbf&&&&&&&&&&&&&&&&&249.9375&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/undotbs01.dbf&&&&&&&&&&&&&&&&&29.9375&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/system01.dbf&&&&&&&&&&&&&&&&&489.9375&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/example01.dbf&&&&&&&&&&&&&&&&&99.9375&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/tbs1_1.dbf&&&&&&&&&&&&&&&&&&&&99.9375&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&/u01/app/oracle/oradata/orcl/tbs1_2.dbf&&&&&&&&&&&&&&&&&&&&59.9375&&&&&--数据文件的增加与删除&&&&--为TBS1增加一个数据文件&&&&SQL&&alter&tablespace tbs1&add&datafile&'/u01/app/oracle/oradata/orcl/tbs1_3.dbf'&size&10m autoextend&on;&&&&--还有一种创建表空间时不指定大小,而是重用一个存在的dbf要用resue参数,reuse&是把原有的结构拿来用,里面的数据是用不了的,因为早都没有了。&&&&&&&--删表空间中的数据文件,g以后的版本才用以下功能,在之前版本的就只能把表空间给干掉。&&&&SQL&&alter&tablespace tbs1&drop&datafile&'/u01/app/oracle/oradata/orcl/tbs1_3.dbf';&&&&&&&--有数据的数据文件不能删。第一个不能删,如果要删就把表空间干掉,数据文件中有数据写入的文件也不能删除,如下&&&&SQL&&alter&tablespace tbs1&drop&datafile 7;&&--7是v$datafile中的file#.&&&&alter&tablespace tbs1&drop&datafile 7&&&&*&&&&ERROR at line 1:&&&&ORA-03262:&the&file&is&non-empty&&&&&&&/*&&&&数据文件的日志记录&&&&&&&只有temp表空间是nologing&&别的都是logging的&&&&&&&&日志记录的几种模式&&&&&&&&&&&&&&nologin&&&&&&&&&&并不是不记录日志而是记录的很少&&&&&&&&&&&logging&&&&&&&&&&正常记录日志信息&&&&&&&&&&&force logging&&&&记录的日志比logging还详细&记录信息非常多&&用于DG data guard&容灾的情况&*/&&&&SQL&&select&tablespace_name&,logging,force_logging&from&dba_tablespaces;&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&LOGGING&&&FOR&&&&------------------------------ --------- ---&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&TEMP&&&&&&&&&&&&&&&&&&&&&&&&&&&NOLOGGING&NO&&&&USERS01&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&NOLOGGING&NO&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&&&&--修改表空间中日志文件记录的方式&&&&&&&SQL&&alter&tablespace tablespace_name nologging&|&logging&|&force logging;&&&&&&&SQL&&alter&tablespace example logging;&&&&&Tablespace altered.&&&&&SQL&&alter&tablespace tbs1 force logging;&&&&&Tablespace altered.&&&&&SQL&&select&tablespace_name&,logging,force_logging&from&dba_tablespaces;&&&&&TABLESPACE_NAME&&&&&&&&&&&&&&&&LOGGING&&&FOR&&&&------------------------------ --------- ---&&&&SYSTEM&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&UNDOTBS1&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&SYSAUX&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&TEMP&&&&&&&&&&&&&&&&&&&&&&&&&&&NOLOGGING&NO&&&&USERS01&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&EXAMPLE&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&NO&&&&TBS1&&&&&&&&&&&&&&&&&&&&&&&&&&&LOGGING&&&YES& &
你恨一个人是因为你爱他;你喜欢一个人,是因为他身上有你没有的;你讨厌一个人是因为他身上有你有的东西;你经常在别人面前批评某人,其实潜意识中是想接近他。
293031123456789101112131415161718192021222324252627282930123456789
一些简单系统,留着备用!
java技术网站
平时常去的网站
吸血鬼日记第三季
阅读排行榜
评论排行榜

我要回帖

更多关于 oracle extent 的文章

 

随机推荐