《Oracle管理入门(续).ppt》由会员分享,可在线阅读,更多相关《Oracle管理入门(续).ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、OracleOracle管理入门(续)管理入门(续)目标表空间管理撤销表空间管理Database 物理与逻辑存储概念 连续块构成扩展连续块构成扩展扩展构成段扩展构成段在表空间中存放段在表空间中存放段一个或多个数据文件分一个或多个数据文件分配给表空间配给表空间数据库由实例数据库由实例来管理来管理数据文件数据文件组成数据库组成数据库DatafilesInstanceDatabaseExtentsSegmentsTablespacesDBBlocks物理物理逻辑逻辑Oracle 存储结构表空间(Tablespace):在 OS中多个文件的分组.例如:Data1.ora,system.ora,test
2、.dbf数据存储表空间对应的数据文件里良好的习惯是表存储在一个表空间,而索引存储在另外的表空间.F1.oraF2.oraF3.oraF4.oraF5.oraTablespace1Tablespace2Table1Table2Table3CREATE TABLESPACE user_dataCREATE TABLESPACE user_data DATAFILE udata.ora SIZE 10M DATAFILE udata.ora SIZE 10M EXTENT MANAGEMENT LOCAL EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMEN
3、T AUTO SEGMENT SPACE MANAGEMENT AUTOOracle 存储结构Users 与 Schemas(模式或方案)一个模式是一组模式对象的集合 如:tables,views,packages,procedures,等每个用户有一个以自己名字命名的模式当用户经过GRANT授权的就是权限.如:create tables,drop views,select from a table等.可通过在对象前加模式名来访问对象.如:sys.dbms_output模式与表空间无关.Oracle 存储结构Data Block最小的存储单位块大小在创建数据库指定Oracle块由多个OS块组成
4、 Extent(扩展)用于存放信息的一组连续块.Segment(段)一组逻辑结构的扩展.扩展在磁盘里可以是连续的或非连续的.表空间(Tablespace)与 数据文件(Datafile)TableTableTableTableIndexIndexIndexIndexTableObjectsDatabaseFilesTablespaceBLOCKBLOCKEXTENTEXTENT SEGMENTSEGMENT TABLESPACETABLESPACE DATABASEDATABASE FILEFILE DISKDISK 结构关系图BLOCKBLOCKEXTENTEXTENT SEGMENTSEG
5、MENT TABLESPACETABLESPACE DATABASEDATABASE FILEFILE DISKDISK 查询有关信息dba_extentsdba_segmentsdba_tablespacesdba_data_filesdba_free_space表空间与数据文件概述表空间和数据文件的作用使用户数据和数据字典数据相分离使不同应用程序的数据相分离将回滚段从用户数据中分离出来,这样防止了单个磁盘的故障造成的数据不可恢复。表空间与数据文件概述表空间的类型:表空间的类型:SYSTEM表空间表空间自动建立自动建立存放数据字典存放数据字典系统回滚段系统回滚段非非SYSTEM表空间表空间永
6、久表空间:存储用户数据永久表空间:存储用户数据临时表空间:存储临时数据,如用户数据进行排序时的数据临时表空间:存储临时数据,如用户数据进行排序时的数据还原表空间:用于自动还原管理,它包含了回滚记录还原表空间:用于自动还原管理,它包含了回滚记录表空间与数据文件概述表空间的状态:联机:正常状态脱机:表空间和表空间中的数据暂时不可用,用户不能访问此表空间中的数据。只读或可读写:出于只读状态的表空间指用户只能对此表空间中的数据进行读操作。字典管理和本地管理字典管理:数据字典跟踪表空间的使用情况。本地管理:使用位图来跟踪表空间的使用情况,位图存储于头文件中。建立数据表空间Createtablespace
7、data01loggingdatafiled:oracleoradatatestdata01.dbfExtentmanagementlocalsize500Muniformsize128k;表是表是Oracle数据库数据存储的基本单元,应数据库数据存储的基本单元,应用系统的主要数据都存放在表段中,因此在用系统的主要数据都存放在表段中,因此在建立数据库后,应该建立专门存放表段的数建立数据库后,应该建立专门存放表段的数据表空间。据表空间。建立UNDO表空间Createundotablespaceundotbs2Datafiled:oracleoradatatestundotbs2.dbfSize2
8、00M;Altersystemsetundo_tablespace=undotbs2;Oracle9i之前,管理之前,管理UNDO数据是使用回滚段来完成的数据是使用回滚段来完成的Oracle9i开始提供了开始提供了UNDO表空间表空间UNDO表空间上不能建立永久对象(表、索引和簇)表空间上不能建立永久对象(表、索引和簇)在在OPEN状态下某个时刻只能有一个状态下某个时刻只能有一个UNDO表空间表空间建立临时表空间CREATETEMPORARYTABLESPACEtempTEMPFILE d:oracleoradatatesttemp.dbf SIZE 5Mextentmanagementloc
9、alUNIFORMSIZE128K;用于排序操作用于排序操作PGA的排序区存放临时数据的排序区存放临时数据不能包含永久对象:表、索引和簇不能包含永久对象:表、索引和簇ALTERUSERscottTEMPORARYTABLESPACEtemp;改变表空间状态1.使表空间脱机:使表空间脱机:1.ALTERTABLESPACEusersOFFLINE;2.使表空间联机:使表空间联机:ALTERTABLESPACEusersONLINE;当建立表空间时,表空间处于联机当建立表空间时,表空间处于联机(ONLINE)(ONLINE)状态,并且该表空间是可读写。状态,并且该表空间是可读写。在进行系统维护或数
10、据维护时,可能需要改变表空间状态。在进行系统维护或数据维护时,可能需要改变表空间状态。四种方式:四种方式:Normal,temporary,immediateNormal,temporary,immediate,for recoverfor recover改变表空间读写状态1.使表空间只读:使表空间只读:1.ALTERTABLESPACEusersREADONLY;2.使表空间可读写:使表空间可读写:ALTERTABLESPACEusersREADWRITE;删除表空间DROP TABLESPACE users INCLUDING CONTENTS Anddatafiles;从数据字典中删除表
11、空间信息从数据字典中删除表空间信息数据文件不会被删除数据文件不会被删除扩展表空间增加数据文件手工改变数据文件尺寸激活数据文件自动扩展增加数据文件ALTERTABLESPACEdata01ADDDATAFILEd:testdata02.dbfSIZE100M;data01表空间表空间data02.dbfdata01.dbf手工改变数据文件尺寸ALTERDATABASEDATAFILEd:testdata02.dbfRESIZE200M;设置数据文件自动扩展ALTERDATABASEDATAFILEd:testdata02.dbfAUTOEXTENDONNEXT10MMAXSIZE500M;使数据
12、文件联机或脱机1.使数据文件脱机:使数据文件脱机:1.ALTERdatabasedatafile3OFFLINE;2.使数据文件联机:使数据文件联机:ALTERdatabasedatafileusersONLINE;显示表空间和数据文件信息显示表空间信息显示表空间所包含的数据文件显示数据文件动态信息显示临时表空间所包含的临时文件显示临时文件信息关于表空间该注意的问题1 1、SYSTEMSYSTEM表空间永远不能脱机。表空间永远不能脱机。表空间永远不能脱机。表空间永远不能脱机。2 2、当重命名数据文件、转移非系统表空间的数据文件、做物理、当重命名数据文件、转移非系统表空间的数据文件、做物理、当重
13、命名数据文件、转移非系统表空间的数据文件、做物理、当重命名数据文件、转移非系统表空间的数据文件、做物理数据库备份等情况下,就需要表空间的脱机和联机操作;有数据库备份等情况下,就需要表空间的脱机和联机操作;有数据库备份等情况下,就需要表空间的脱机和联机操作;有数据库备份等情况下,就需要表空间的脱机和联机操作;有时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的数据文件的表空间脱机,然后执行介质恢复。数据文件的表空间脱机,然后执行介质恢复。数
14、据文件的表空间脱机,然后执行介质恢复。数据文件的表空间脱机,然后执行介质恢复。3 3、当创建一个表空间时,必须至少使之包含一个以上的数据文、当创建一个表空间时,必须至少使之包含一个以上的数据文、当创建一个表空间时,必须至少使之包含一个以上的数据文、当创建一个表空间时,必须至少使之包含一个以上的数据文件;一旦某个数据文件已经存在于某个表空间中,则不能删件;一旦某个数据文件已经存在于某个表空间中,则不能删件;一旦某个数据文件已经存在于某个表空间中,则不能删件;一旦某个数据文件已经存在于某个表空间中,则不能删除该数据文件,只能通过删除整个表空间删除该文件。除该数据文件,只能通过删除整个表空间删除该文
15、件。除该数据文件,只能通过删除整个表空间删除该文件。除该数据文件,只能通过删除整个表空间删除该文件。管理撤消数据(undo data)管理撤消数据的方法有两种:自动撤消管理 手动撤消管理“撤消(undo)”一词在以前的版本中称为“回退(rollback)”。撤消段 更新事务处理更新事务处理旧的映像旧的映像新的新的映像映像撤消段撤消段表表撤消段:用途 事务处理撤消事务处理撤消事务处理恢复事务处理恢复撤消段撤消段读一致性读一致性撤消段的类型 SYSTEM:用于 SYSTEM 表空间中的对象 非 SYSTEM:用于其它表空间中对象,包括:自动模式:需要 UNDO 表空间 手动模式:专用:由一个例程获
16、取 公用:由任何例程获取 延迟:表空间处于立即脱机或临时脱机时使用,或用于恢复 自动撤消管理-概念 撤消数据是使用 UNDO 表空间来管理的。您可以为每个例程分配一个 UNDO 表空间,还要针对例程的工作量分配足够的空间。Oracle 服务器自动维护 UNDO 表空间内的撤消数据。Oracle9i自动undo段管理简化 undo 段管理设置 UNDO_MANAGEMENT 参数:AUTO 动态undo段管理MANUAL-手工管理回滚段 UNDO_RETENTION 参数定义保留undo信息的时间(秒)初始化参数初始化参数说说明明UNDO_MANAGEMENT为为 AUTO,则则 为为 自自 动
17、动 撤撤 销销 管管 理理 方方 式式;如如 果果 为为MANUAL则为回滚段管理方式则为回滚段管理方式UNDO_TABLESPACE指定所使用的撤销表空间名指定所使用的撤销表空间名UNDO_RETENTION指定保持撤销的时间长度,默认为指定保持撤销的时间长度,默认为900秒秒自动 Undo 管理表空间两种方式创建:在CREATE DATABASE命令中使用 UNDO TABLESPACE 语句使用CREATE UNDO TABLESPACE 命令对于 UNDO 表空间MINIMUM EXTENT 和 DEFAULT STORAGE 由系统生成限制:不能在undo表空间中创建对象只能定义数据
18、文件和extent_management语句建立撤销表空间 CREATEUNDOTABLESPACEtablespaceDATAFILE/path/filenameSIZEintegerK|MREUSE,/path/filenameSIZEintegerK|MREUSEAUTOEXEND OFF|ON NEXT integer K|M MAXSIZE UNLIMITED|integerK|MMINIMUMEXTENTintegerK|MDEFAULTSTORAGEstorageONLINE|OFFLINELOGGING|NOLOGGINGPERMANENT|TEMPORARYEXTENTMAN
19、AGEMENTDICTIONARY|LOCALAUTOALLOCATE|UNIFORMSIZEintegerK|M撤消表空间的创建方法撤消表空间的创建方法:在创建数据库实例时创建撤销表空间在创建数据库实例时创建撤销表空间;在使用数据库实例后创建撤销表空间:在使用数据库实例后创建撤销表空间:建立撤销表空间 CREATEUNDOTABLESPACEUNDOTBS1DATAFILE/oracle/oradata/LIVE/undotbs01.dbfSIZE2048MREUSE;撤消表空间的创建方法撤消表空间的创建方法:在在SQLSQL下创建撤销表空间:下创建撤销表空间:改变 Undo 表空间使用 A
20、LTER TABLESPACE命令更改undo表空间选项.增加数据文件到undo表空间:不允许使激活的undo表空间OFFLINEALTER TABLESPACE undotbs1ADD DATAFILE/u02/oradata/testdb/undotbs1_02.dbf AUTOEXTEND ON;切换UNDO表空间DBA可以选择切换undo表空间.一个实例同时只能有一个undo表空间处于激活状态.使用alter system命令:SQLshowparameterundoNAMETYPEVALUE-undo_managementstringAUTOundo_retentioninteger
21、900undo_tablespacestringUNDOTBS1SQLALTERSYSTEMSETUNDO_TABLESPACE=UNDOTBS2;SQL切换撤销表空间 注意切换撤消表空间的结果切换撤消表空间的结果:如果在发出语句前,实例使用的撤销表空间是如果在发出语句前,实例使用的撤销表空间是undo_tabs1undo_tabs1,则执行上面语句后,实例就用,则执行上面语句后,实例就用undo_tabs2undo_tabs2来作为当前的撤销表空间。该语句要求新来作为当前的撤销表空间。该语句要求新的撤销表空间必须存在,否则会出现错误。下面是出的撤销表空间必须存在,否则会出现错误。下面是出现错
22、误的几种情况:现错误的几种情况:该撤销表空间不存在;该撤销表空间不存在;该表空间不是一个撤销表空间;该表空间不是一个撤销表空间;该表空间已经被另外一个实例所使用。该表空间已经被另外一个实例所使用。一般来说,被撤销的撤销表空间的未完成的事务会进一般来说,被撤销的撤销表空间的未完成的事务会进入入PENDING OFFLINEPENDING OFFLINE状态。在切换成功后,现在的状态。在切换成功后,现在的撤销表空间继续该未完成的事务。撤销表空间继续该未完成的事务。如果发出如果发出SETSET语句时,不指定任何表空间,而是使用语句时,不指定任何表空间,而是使用两个单引号,如:两个单引号,如:ALTE
23、R SYSTEM SET UNDO_TABLESPACE=;ALTER SYSTEM SET UNDO_TABLESPACE=;则系统将当前正在使用的撤销表空间设置成不可用状则系统将当前正在使用的撤销表空间设置成不可用状态,并且采用原来的手动撤销表空间方法工作。态,并且采用原来的手动撤销表空间方法工作。Drop undo表空间DROP TABLESPACE与删除一般的表空间一样,可以用DROP TABLESPACE命令来删除撤销表空间。但是,不能删除正在使用的撤销表空间。当使用DROP TABLESPACE命令删除撤销表空间时,相当于使用DROP TABLESPACE .INCLUDING C
24、ONTENTS命令。SQLshowparameterundoundo_tablespacestringUNDOTBS2SQLSQLDROPTABLESPACEundotabs1;监控自动Undo段管理使用 V$UNDOSTAT 视图监视undo段管理此视图在自动和手工状态都可用.UndoBlks 列显示undo block分配的数量.查询撤消表空间使用信息9i/10g 查询下面数据字典Oracle 9i/10g中,下面数据字典仍然有效:视图说明V$UNDOSTAT撤消空间的统计信息,系统自动记录在手工方式和自动方式的运行情况统计。V$ROLLSTAT自动撤消方式的使用统计。反映撤消段的行为。V
25、$TRANSACTIONS包含有撤消段的信息。DBA_UNDO_EXTENTS撤消表空间中每个区(extent)的提交时间。查询撤消表空间使用信息V$UNDOSTAT在Oracle 9i/10g中,V$UNDOSTAT视图可以用来确定Undo空间的使用情况SQLcol开始时间开始时间fora18SQLcol结束时间结束时间fora18SQLselectTO_CHAR(MIN(Begin_Time),DD-MON-YYYYHH24:MI:SS)2开始时间开始时间,3TO_CHAR(MAX(End_Time),DD-MON-YYYYHH24:MI:SS)4结束时间结束时间,5SUM(Undoblk
26、s)使用使用Undo总块总块,6SUM(Txncount)事务执行总数事务执行总数,7MAX(Maxquerylen)最长的查询最长的查询(秒秒),8MAX(Maxconcurrency)最高并发事务最高并发事务,9SUM(Ssolderrcnt)出错出错1555总数总数,10SUM(Nospaceerrcnt)无可用空间总数无可用空间总数11fromV$UNDOSTAT;开始时间开始时间结束时间结束时间使用使用Undo总块总块事务执行总数事务执行总数最长的查询最长的查询(秒秒)最高并发事务最高并发事务出错出错1555总数总数无可用无可用-05-MAY-200508:52:05-MAY-200
27、511:14:1718103003820分配撤消表空间分配撤消表空间大小值得研究“ORA-01555 Snapshot too old.”“ORA-01555 Snapshot too old.”表空间大小估计:在在Oracle9i数据库中,设计数据库中,设计Undo表空间取代以前版本的回滚段表空间。表空间取代以前版本的回滚段表空间。Undo表空间大小的设计规范由以下公式计算:表空间大小的设计规范由以下公式计算:Undospace=UR*UPS*db_block_size+冗余量冗余量UR:表表 示示 在在 undo中中 保保 持持 的的 最最 长长 时时 间间 数数(秒秒),由由 数数 据据 库库 参参 数数UNDO_RETENTION值决定。值决定。UPS:表示在:表示在undo中,每秒产生的数据库块数量。中,每秒产生的数据库块数量。例如:在数据库中保留例如:在数据库中保留2小时的回退数据,假定每秒钟产生小时的回退数据,假定每秒钟产生200个数据库块。则个数据库块。则Undospace=2*3600*200*4K=5.8G总结表空间管理Undo表空间管理
限制150内