《oracle表空间和数据文件管理.pptx》由会员分享,可在线阅读,更多相关《oracle表空间和数据文件管理.pptx(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、增加第4 组重做日志组,含3 个成员,位于磁盘不同位置(分别为C,D,E 三个盘符根目录下),且每个重做日志文件大小15M。2、查询正在使用的日志组?3、如何删除当前正在使用的日志组?Question培训专用5、在数据库启动到什么状态时可以获得V$DATAFILE 和V$LOGFILE 视图的数据?这些数据字典视图从什么地方获取到数据?4、有哪几种情况会发生日志切换?培训专用表空间和数据文件管理培训专用目标在完成本章学习后,你将掌握下列技能:l Oracle 的存储结构l 表空间的管理l 数据文件的管理培训专用本章内容l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l
2、 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用Oracle 的存储结构l 分为物理存储结构和逻辑存储结构培训专用Oracle 的存储结构l 物理存储结构 数据库文件在磁盘中的物理存放方式 Oracle 数据库文件主要有数据文件、日志文件、参数文件、控制文件l 逻辑存储结构 数据库中数据的逻辑组织方式 Oracle 逻辑存储结构主要包括表空间、段、区、块培训专用表空间的概念l 表空间是用户可以在Oracle 系统中使用的
3、最大的逻辑存储结构。用户在数据库中建立的所有内容都会存储在表空间中。l 从物理上说数据库的数据存放在数据文件中,从逻辑上说数据是被存放在表空间中的。l 一个表空间可以有多个数据文件。一个数据文件只能属于一个表空间。培训专用数据库、表空间、数据文件、磁盘之间关系数据库表空间1 表空间3 表空间2数据文件1 数据文件3 数据文件2磁盘1 磁盘2逻辑存储结构物理存储结构培训专用大楼 数据库公司A公司BRoom601Room603Room1101Room101RoomA01表空间A表空间B数据文件1数据文件2数据文件3数据文件4数据文件5培训专用表空间的作用 控制数据库所占用的磁盘空间;控制用户所占用
4、的表空间分配,即控制用户所占用的空间分配;通过将不同表的数据、分区表中不同分区的数据放置到不同的表空间(或其中的数据文件)中,可以提高数据库的I/O性能,并有利于进行部分备份和恢复等管理工作;能够将一个表的数据和这个表的索引数据分别放置到不同的表空间(或其中的数据文件)中,以提高数据库的I/O性能;可以将表空间设置成只读状态而保持大量静态数据。培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用表空间的类型分类 表空间 存放数据系统表空间SYSTEMSYSAUX系统数据(数据字典表及其
5、数据等)非系统表空间大表空间小表空间用户数据(表、索引等)临时表空间 临时数据 回滚表空间回滚数据培训专用创建表空间l 创建表空间语法:CREATETEMPORARY|UNDOTABLESPACE 表空间名DATAFILE 子句MINIMUMEXTENT 正整数K|MBLOCKSIZE 正整数KONLINE|OFFLINELOGGING|NOLOGGINGDEFAULTSTORAGE 存储子句EXTENTMANAGEMENTDICTIONARY|LOCALAUTOALLOCATE|UNIFORMSIZE 正整数K|MSEGMENTSPACEMANAGEMENTAUTO|MANUAL;培训专用创
6、建表空间lTEMPORARY|UNDO TEMPORARY 表示创建临时表空间,UNDO 表示创建回滚表空间,如未使用表示创建永久表空间。lDATAFILE 子句 指定与表空间相关联的数据文件的位置、名称和大小。语法如下:DATAFILE|TEMPFILE 文件名SIZEK|MREUSEAUTOEXTENTOFF|ONNEXT 正整数K|MMAXSIZEUNLIMITED|正整数K|M培训专用SQLcreatetablespacemytbs01datafilec:mytbs01.dbfsize5m;SQLcreatetablespacemytbs02datafilec:mytbs02_1.db
7、fsize5m,c:mytbs02_2.dbfsize5mautoallocate;Oracle 将自动按表空间中不同对象的大小分配相应大小的区(最小区64k)。其缺点是在表空间中可能会造成一些磁盘空间的浪费。培训专用创建表空间lMINIMUMEXTENT 表空间中盘区可以分配到的最小的尺寸。该值是块的整数倍。lBLOCKSIZE 为表空间说明非标准块的大小,该选项只适用于永久表空间。lONLINE|OFFLINE 设置为ONLINE 则创建的表空间立即可以使用,设置为OFFLINE 则使表空间不可用。培训专用SQLcreatetablespacemytbs03datafilec:mytbs0
8、3.dbfsize5mautoextendonnext2mmaxsize11m;培训专用创建表空间lLOGGING|NOLOGGING 表空间中所有数据变化是否写入重做日志文件中,默认为LOGGING。lDEFAULTSTORAGE 存储子句 说明在该表空间中所创建的对象的默认存储参数。培训专用CREATE TABLESPACE mytbs04 DATAFILE C:OraDbJHH_IDX00.dbf SIZE 50MAUTOEXTEND ON NEXT 50M MAXSIZE 4000M DEFAULT STORAGE(INITIAL 24K NEXT 24KMINEXTENTS 1 MA
9、XEXTENTS UNLIMITED PCTINCREASE 0);培训专用创建表空间lEXTENTMANAGEMENT 表空间的区管理方式是采用数据字典管理方式(DICTIONARY)还是本地化管理方式(LOCAL)。10g 开始强烈建议使用本地化管理方式。本地管理方式的AUTOALLOCATE 和UNIFORM 参数指出区的大小。SEGMENTSPACEMANAGEMENT 表空间中段的管理方式采用自动管理方式(AUTO)还是手动管理方式(MANUAL)。培训专用SQLcreatetablespacemytbs05datafilec:mytbs05.dbfsizereuseuniforms
10、egmentspacemanagementauto;即管理段中已用数据块和空闲数据块的方式。虽然oracle 极力推荐auto 的方式,但是在oracle10g 中如果不使用segmentspacemanagement 子句指定为auto,则使用manual 段管理方式。培训专用使用OEM 创建表空间培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用临时表空间l 临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当临
11、时表空间不足时,表现为运算速度异常的慢。l 最好为每个数据库用户都指定一个公用的临时表空间,如果不指定,这些临时数据就都会放在SYSTEM 表空间中,从而产生大量的碎片。培训专用临时表空间 创建临时表空间l 创建一个本地管理的临时表空间TEMPTBScreatetemporarytablespacetemptbstempfilec:oracleproduct10.2.0orcltemp01.orasize50Mautoextendonnext5Mmaxsizeunlimitedextentmanagementlocal;l 把临时数据放在TEMP 临时表空间alterdatabasedefau
12、lttemporarytablespacetemptbs;l 查看临时文件信息selectfile#,status,bytes,namefromv$tempfile;培训专用SQLcreate temporary tablespace tmptsb1 tempfile c:temptmptsb1.dbf size 4m autoallocate在临时表空间不能指定为autoallocate;也不能把段刊方式指定为auto 方式。培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用回滚表
13、空间l 回滚(UNDO)表空间用于存放回滚数据,当执行DML 操作时,Oracle 会将这些操作的旧数据写入到回滚段。l Oracle9i 前管理回滚数据使用回滚段。l 从Oracle9i 开始,管理回滚数据不仅可以使用回滚段,还可以使用回滚表空间。因为规划和管理回滚段比较复杂,所以Oracle10g 已经完全丢弃用回滚段,而是使用回滚表空间来管理回滚数据。培训专用回滚表空间 回滚数据的作用l 回滚事务 当执行DML 操作修改数据时,回滚数据被存放到回滚段,而新数据则被存放到数据段中,如果事务操作存在问题,就需要回退事务,以取消事务变化。l 读一致性 用户检索数据库数据时,Oracle 总是使
14、用用户只能看到被提交过的数据或特定时间点的数据,以确保数据的一致性。l 事务恢复 如果在数据库运行过程中出现例程失败,那么当重启数据库时,后台进程SMON 会自动执行例程恢复。l 闪回查询 取得特定时间点的数据库数据,它是9i 开始新增加的特性。培训专用回滚表空间 回滚表空间的 管理参数l UNDO_MANAGEMENT 指定回滚数据的管理方式。如果要使用自动管理模式,必须设置该参数为AUTO,如果使用手工管理模式,必须设置该参数为MANUAL。l UNDO_TABLESPACE 指定例程所要使用的UNDO 表空间。l UNDO_RETENTION 控制回滚数据的最大保留时间,其默认值为900
15、 秒。培训专用回滚表空间 创建回滚表空间l 创建回滚表空间UNDOTBScreateundotablespaceundotbsdatafilec:oracleproduct10.2.0orclundo01.orasize40M;创建undo 表空间时不能指定统一区大小的选项(uniform),否则出错。l 把回滚数据放在undotbs1 回滚表空间altersystemsetundo_management=autoscope=spfile;altersystemsetundo_tablespace=undotbsscope=spfile;培训专用本章内容导航l Oracle 的存储结构l 创建
16、表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用 表空间的状态属性l 离线(Offline)状态 表空间不可用。任何保存在该表空间中的数据库对象将不可存取。具有Normal、Temporary、Immediate 和ForRecovery 四种模式。l 在线(Online)状态 用户可以访问其中的数据。l 只读(Read-Only)状态 表空间中的表只能读,不能更新。l 读写(Read-Write)状态 表空间能正常使用的状态。培训专用 表空间的状态属性loffline 状态下的四种模式:正常(Normal)默认的模式,表示表空间以正常
17、方式切换到离线状态。在此过程中,Oracle 会执行一次检查点,将相关信息写入数据文件中,然后再关闭表空间的所有数据文件;若在这个过程未发生任何错误,则进入了normal 的离线状态。下次转回Online 的时候,不需要恢复。临时(Temporary)表示表空间以临时的方式切换到离线状态。在此过程中,Oracle 会执行一次检查点,但在执行检查点的时候并不会检查各个数据文件的状态,即使某些数据文件处于不可用的状态,Oracle 也会忽略这些错误而进入temporary 状态。因此在下次转回Online 的时候,可能要恢复。培训专用 表空间的状态属性loffline 状态下的四种模式:立即(Im
18、mediate)表示表空间以立即的方式切换到离线状态。这时Oracle 不会执行检查点,也不会检查数据文件是否可用,而是直接将属于该表空间的数据文件设置为脱机状态。因此在转回Online 的时候,必须恢复。用于恢复(ForRecovery)表示表空间以用于恢复的方式切换到离线状态。如果要对表空间进行基于时间的恢复,可用此种模式。培训专用 表空间的状态设置l 把表空间users 以Temporary 方式置于离线状态altertablespaceusersofflinetemporary;l 把表空间users 置于在线状态altertablespaceusersonline;l 把表空间use
19、rs 置于只读状态altertablespaceusersreadonly;l 把表空间users 置于读写状态altertablespaceusersreadwrite;培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用表空间信息查询l 查询表空间的基本信息 SQLselecttablespace_name,contents,statusfromdba_tablespaces;查询表空间的默认存储参数 SQLselecttablespace_name,initial_extent,
20、next_extent,extent_managementfromdba_tablespaces;培训专用表空间信息查询l 查询表空间中数据文件的信息 SQLselecttablespace_name,file_name,bytes/(1024*1024)MBfromdba_data_files;查询表空间中空闲空间大小 SQLselecttablespace_name,sum(bytes/(1024*1024)free_MBfromdba_free_spacegroupbytablespace_name;培训专用-设置数据库默认表空间SQLalterdatabasedefaulttables
21、pacemytbs01;-设置数据库默认临时表空间SQLalterdatabasedefaulttemporarytablespacemytmptbs01;-查询数据库的默认表空间SQLselectusername,default_tablespace,temporary_tablespacefromdba_users;培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用删除表空间l 删除表空间语法:DROPTABLESPACE 表空间名INCLUDINGCONTENTSANDDATA
22、FILESCASCADECONSTRAINTS;INCLUDINGCONTENTS:将表空间及其中保存的数据库对象全部删除。ANDDATAFILES:删除表空间同时也删除对应的数据文件。CASCADECONSTRAINTS:删除所有的引用完整性约束。培训专用OEM 中管理表空间培训专用本章内容导航l Oracle 的存储结构l 创建表空间l 临时表空间l 回滚表空间l 表空间的状态l 表空间信息查询l 删除表空间l 数据文件管理培训专用 数据文件是用于存储数据库中数据的操作系统文件。数据文件和表空间是密不可分的,一个表空间不能没有数据文件,而一个数据文件只能属于一个表空间。培训专用 数据文件管
23、理l 数据文件用来存储数据库的数据。l 读取数据时,先从数据文件中读取数据,并存储到SGA 的数据缓冲区中,如果缓冲区中已有要读取的数据,就不要再从磁盘中读取了。存储数据时,事务提交时改变的数据先存储到数据缓冲区中,再由后台进程DBWR 决定如何将其写入到数据文件中。l 表空间在物理上表现为数据文件,通过查询数据字典视图DBA_DATA_FILES 可以了解表空间和与其对应的数据文件。培训专用数据文件创建l 创建数据文件的SQL 语句及说明SQL 语句说明createtablespace创建一个表空间和组成它的数据文件createtemporarytablespace创建一个临时表空间和组成它
24、的临时文件(临时文件是一种特殊的数据文件,用于存放临时数据,不能永久存放用户数据)altertablespaceadddatafile创建一个数据文件,并将其添加到(永久)表空间altertablespaceaddtempfile创建一个临时文件,并将其添加到临时表空间createdatabase 创建一个数据库及其和system 表空间关联的数据文件培训专用 数据文件管理 数据文件的新增和大小修改l 为表空间users 增加一个数据文件altertablespaceusertbsadddatafilec:oracleproduct10.2.0orcluser03.orasize50M;l 修
25、改数据文件user03 的大小为100Malterdatabasedatafilec:oracleproduct10.2.0orcluser03.oraresize100M;培训专用 数据文件管理 数据文件自动扩展l 查询USERTBS 表空间中各数据文件自动扩展属性selectfile_name,autoextensiblefromdba_data_fileswheretablespace_name=USERTBS;l 设置数据文件user03 可自动扩展alterdatabasedatafilec:oracleproduct10.2.0orcluser03.oraautoextendonn
26、ext10mmaxsizeunlimited;l 关闭数据文件user03 的自动扩展alterdatabasedatafilec:oracleproduct10.2.0orcluser03.oraautoextendoff;培训专用 数据文件管理 移动数据文件l 移动表空间的数据文件包括4 步:修改表空间为offline 状态 复制数据文件到另外一个磁盘 使用altertablespacerenamedatafile 语句修改数据文件的名称(适用于移动同一表空间的数据文件);或使用alterdatabaserenamefile 语句修改数据文件的名称(适用于移动多个表空间的数据文件)切换表空
27、间状态为online培训专用在OPEN 状态下移动数据文件移动同一个表空间的数据文件1、SQLaltertablespacemytbs01offline;2、把数据文件复制到新的位置3、SQLaltertablespacemytbs01renamedatafilec:mytbs01_1.dbf,c:mytbs01_2.dbftoc:newmytbs01_1.dbf,c:newmytbs01_2.dbf4、SQLaltertablespacemytbs01online;-5、备份控制文件或数据库SQLalterdatabasebackupcontrolfiletotrace培训专用移动多个表空间
28、的数据文件1、SQLaltertablespacemytbs03offline;SQLaltertablespacemytbs02offline;2、把数据文件复制到新的位置3、SQLaltertablespacemytbs01renamedatafilec:mytbs02_1.dbf,c:mytbs03_2.dbftoc:newmytbs02_1.dbf,c:newmytbs03_2.dbf4、SQLaltertablespacemytbs02online;SQLaltertablespacemytbs03online;-5、备份控制文件或数据库SQLalterdatabasebackupc
29、ontrolfiletotrace培训专用在mount 状态下移动数据文件因为系统表空间(system、sysaux)不能被脱机,所以要移动数据文件只能在mount 状态下进行。1)SQLshutdownimmediate;2)SQLstartupmount;3)移动数据文件4)SQLalterdatabaserenamefilec:oracleproduct10.2.0oradataorclsystem01.dbftoc:system01.dbf;5)SQLalterdatabaseopen;6)备份控制文件或数据库。培训专用 数据文件管理online 和offline 属性lonline
30、表示数据文件可以被正常使用。offline 表示数据文件不能被使用。offlinedrop 将数据文件置为offline 状态,并删除数据文件。只有在数据库运行在归档模式下,才可以将数据文件设为offline 状态;若运行在非归档模式下,则可以将数据文件设为offlinedrop。培训专用数据文件管理 数据文件删除l 删除一个数据文件 alterdatabasedatafilec:disk3orcluser03.oraofflinedrop;此时只是把文件状态变为recover,没有从数据库磁盘中删除文件,可恢复 恢复数据文件 介质恢复recoverdatafilec:disk3orcluse
31、r03.ora;alterdatabasedatafilec:disk3orcluser03.oraonline;培训专用查询数据文件的信息1、查询数据文件的信息 数据字典视图dba_data_files 或动态数据字典视图V$datafile2、查询临时文件的信息 数据字典视图dba_temp_files3、查询数据文件的使用信息可以在OEM 中查看4、查询数据文件的读写统计信息 动态视图v$filestat 和v$tempstat培训专用OEM 中数据文件的管理培训专用本章内容小结l Oracle 的逻辑存储结构和物理存储结构l 表空间的创建和删除语法l 表空间的4 个状态及其设置l 临时表空间和回滚表空间的理解和创建l 表空间查询相关数据字典l 数据文件的新建、修改、移动和自动扩展培训专用演讲完毕,谢谢观看!培训专用内容总结1、增加第4 组重做日志组,含3 个成员,位于磁盘不同位置(分别为C,D,E 三个盘符根目录下),且每个重做日志文件大小15M。5、在数据库启动到什么状态时可以获得V$DATAFILE 和V$LOGFILE 视图的数据。也不能把段刊方式指定为auto 方式。bytes/(1024*1024)MB。from dba_free_space。AND DATAFILES:删除表空间同时也删除对应的数据文件。演讲完毕,谢谢观看培训专用