《OracleDBA经典培训手册.ppt》由会员分享,可在线阅读,更多相关《OracleDBA经典培训手册.ppt(131页珍藏版)》请在三一办公上搜索。
1、Oracle DBA,Oracle ocp course content,系统安装、结构及维护备份和恢复网络管理 性能调优在国强软件中的应用 一套参考资料:oracle8i ocp教程 一个网站 http:/,Architecture and Administration,Oracle结构和维护:,Oracle 特点、结构创建数据库Oracle 数据库的访问Managing an Oracle InstanceMaintaining the Control FileMaintaining Redo Log Files Managing Tablespaces and Data FilesMan
2、aging Rollback SegmentsManaging Users,privileges,roles,概述ORACLE具有甲骨文之意,是全世界第二大软件公司。数据库、电子商务套件、erp、财务产品、开发工具培训认证。Oracle服务(server)是一个关系数据库(relational database)管理系统,提供开放、全面、完整的信息管理。特点 高性能、伸缩性 安全性:角色、权限、用户 并发控制:表锁定、行锁定 海量数据:表空间、空间数据构件 TB级 数据完整性:日志、回滚段 分布式数据库:数据库连接,Oracle 概述、特点,发展和构成,发展史6.0 性能不如sybase7.0
3、 分区技术支持分段的大型数据库8.0 面向对象8.1.6 面向internet 支持java、webserver、jdeveloper9i portal 手机上网oracle体系结构Oracle体系结构决定了数据库如何使用内存、硬盘、cpu和网络一个Oracle server包括一个Oracle实例(instance)和几个Oracle数据库文件(database file).,实例,数据库文件,Oracle instance,实例=内存分配+一组后台进程 如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance.内存被分配,进程被启
4、动,SGA,background process,Oracle文件,一个 Oracle 数据库是一个数据单位的集合。主要目的是为了储存和读取信息。Oracle 数据库可以分为逻辑(logical)结构和物理(physical)结构。物理结构指数据库中的操作系统文件的集合,包含以下三种文件:数据文件(data file)包含数据库中实际数据。数据包含在用户定义的表中,而且数据文件还包含数据词典(data dictionary),数据修改以前的映象(before-images of modified Data)索引(indexes)和其他类型的结构(other types of structure
5、s)。一个数据库中至少包含一个数据文件。数据文件的特性有:一个数据文件只能被一个数据库使用。当数据库空间不足时,数据文件具有自动扩展的特性。一个或者多个数据文件构成数据库的逻辑存储单元叫做表空间(tablespace).重作日志(Redo logs)包含对数据库的修改记录,可以在数据失败后恢复。一个数据需要至少两个重作日志文件。控制文件(Control files)包含维护和检验数据库一致性的信息。例如:控制文件用来检验数据文件和重作日志文件。一个数据库需要至少一个控制文件。,其它文件,其他文件参数文件 用来定义Oracle实例的特性。例如:他包含SGA内存的大小。口令验证文件 用来验证启动和
6、关闭Oracle实例的用户。存档重做日志文件 是重做日志的备份用以恢复数据。,Oracle 数据库逻辑与物理结构,Database Architecture,数据库结构(Database Architecture)Oracle 数据库结构包括物理(physical)和逻辑(logical)结构 物理(physical)结构包括控制文件(control files),在线重作日志(online redo log files),和数据文件(data files).逻辑logical结构包括表空间(tablespaces),段(segments),区间(extents),和数据块(data bloc
7、ks).Oracle server 可以有条理的通过表空间以及段、扩展、数据块控制磁盘空间表空间(Tablespaces)Oracle database 的数据存储在表空间中。An Oracle database can be logically grouped into smaller logical areas of space known as tablespaces.一个 tablespace 只能同时属于一个database。每个 tablespace 包含一个或多个操作系统文件数据文件(data files).一个 tablespace 可能包含一个或多个segments.Tabl
8、espaces 可以在数据库运行时使其在线。除了SYSTEM tablespace 或 有活动回滚段的 tablespace,tablespaces 可以被离线(offline)。Tablespaces 可以在读/写之间切换。,Database Architecture(Continued),数据文件 Data FilesOracle数据库tablespace包含的一个或多个文件叫做数据文件(data files)。这些物理结构在oracle服务运行时与操作系统相配合。一个数据文件只能属于一个tablespace。Oracle 服务为表空间创建一个数据文件,分配指定的磁盘空间再加上额外的一小部
9、分开销。数据库管理员在数据文件创建后可以改变它的大小或者设置为根据需要自动增长。段 SegmentsSegment指在tablespace中为特定逻辑存储结构分配的空间。例如,为表分配的所有存储空间就是就是一个segment。一个tablespace可能包含一个或多个 Segment.segment不能跨越 tablespace;但是,一个 segment 可以跨越多个属于同一 Tablespace 的 data files。每个 segment 有一个或多个extent 组成。区间 Extents通过extent 来给segment分配空间。一个或多个extents组成一个segment.当
10、一个 segment创建时,至少包含一个 extent。当 segment增长时,extents被加到 segment 中。DBA可以手工为segment 增加 extents。一个 extent 由一系列连续的 Oracle blocks组成。一个 extent 不能跨越 data file,但必须存在data file中。,The Relationships Among Segments,Extents,and Data Blocks,Data BlocksOracle server管理data files存储空间的单位叫做 Oracle blocks or data blocks.Ora
11、cle 数据库最小的存储数据单位为data blocks.Oracle data blocks是Oracle server存储、读、写的最小的存储单位。一个data block对应一个或多个分配给data file的操作系统块。在Oracle数据库创建时,初始参数文件的 DB_BLOCK_SIZE 确定Oracle数据库Data block的大小。Data block的大小应该为操作系统块的整数倍,以减少I/O量。Data block的最大尺寸依赖于操作系统。,Oracle Instance-SGA,Oracle instance 包含SGA内存结构和管理数据库的一些后台进程。Instance
12、被看成使用各个操作系统的特定方法 instance 只能同时打开和使用一个database。System Global AreaSGA是存储数据库进程共享的数据库信息的内存区域。它包含Oracle Server 数据和控制信息。分配在Oracle Server驻留的计算机虚拟内存中。SGA包含如下内存结构:共享池(shared pool)用来存储最近执行的SQL语句和最近使用的数据字典(data dictionary)的数据。这些SQL语句可能是被用户递交的也可能是存储过程调用的。数据缓冲区(database buffer cache)用来存储最近从数据文件中读写过的数据。重作日志缓冲区(re
13、do log buffer)用来记录服务或后台进程对数据库的操作。另外在SGA中还有两个可选的内存结构:Java pool:用来存储Java代码。Large pool:用来存储不与SQL直接相关的大型内存结构。例如:在备份和恢复时的数据拷贝。,Background Processes,Database Writer(DBW0)负责将数据的更改由database buffer cache写到data files。Log Writer(LGWR)负责将数据更改记录由redo log buffer写到redo log files.System Monitor(SMON)检查数据库的一致性,必要的情况
14、下,在数据库打开时执行恢复。Process Monitor(PMON)用户进程失败时,进程监控程序实现进程恢复。The Checkpoint Process(CKPT)负责更新数据库的控制文件(control files)中的状态信息。在数据缓存永久写入数据库时。),PGA(程序全局区)是内存中的区域,包含单个进程的数据和控制信息。每个服务器进程分配一个PGA,PGA由每个服务器进程独占。当用户连接入Oracle数据库并建立会话时,Oracle分配PGA。与SGA不同,PGA仅被一个进程使用。,COMMITs 步骤当 COMMIT 执行时:1 server在redo logBuffer中放置一
15、个SCN作为commit记号。2 LGWR 执行一个不间断的写操作包括所有的redo log buffer写到redo log files及commit记号。在这一点,Oracle server可以保证即使在实例失败时数据也不会丢失。3 用户被通知COMMIT完成。.4 server记录信息显示事务已经完成,锁可以被释放。数据缓冲信息独立的由DBW0执行,可能在commit前也可能在Commit后。,System Change Number无论事务在何时提交,Oracle server总是分配一个System Change Number(SCN)给这个事务。SCN自动增加,在数据库是唯一的。它
16、Oracle Server被用来作为内部的时间戳,来同步数据及保证数据读一致性。使用 SCN 可以不依靠操作系统时间来检验一致性。,SQL语句的执行过程,A、用户发出SQL请求,打开游标;B、把SQL语句语法分析,执行计划,数据字典等信息存入内存中共享池内;C、从数据文件中把相关数据块读入数据缓冲区;D、做相应操作,若做修改,先加上行级锁,经确认后,把改过前后记录内容存入重做日志缓冲区内;E、返回结果给用户,关闭游标。备注:SQL语句大小写敏感的,同样的一个语句,若大小写不同,oracle需分析执行两次,每句后必以“;”结束。,summary,In this lesson,you should
17、 have learned how to:Explain database files:data files,control files,online redo logs Explain SGA memory structures:DB buffer cache,shared SQL pool,and redo log buffer Explain primary background processes:DBW0,LGWR,CKPT,PMON,SMON,and ARC0 Explain SQL processing steps:parse,execute,fetch,数据字典,数据字典 Da
18、ta Dictionary,数据字典数据字典是Oracle数据库的重要组成。它由一组只读表组成。包括:数据库所有对象的定义(表,视图,索引,簇,同义词,序列,过程,函数,程序包,触发器)空间的分配和使用状况列的缺省值完整性约束信息用户名已授予用户的角色和权限审计信息等数据字典结构基表存放相关数据库信息的基础表视图汇总并显示存放数据字典基表中信息的视图数据字典所有者Oracle的sys用户拥有数据字典所有的基表和视图。任何Oracle用户都不能改变数据字典的任何数据。不能更新、插入、删除。数据字典的改变会影响数据库的正常运行。系统管理员需要严格管理系统用户.(sys and system),数据
19、字典分类,USER_*:用户拥有的对象ALL_*:可访问的对象DBA_*:所有对象.-7.3.4 93个-8.0.5 118个-8.1.6 165个从DICTIONARY(DICT)中可查到名称,常用的数据字典,Dba_tablespacesDba_data_filesDba_tablesDba_usersDba_viewsDba_indexesDba_db_linksDba_free_spaceDba_ind_columnsDba_jobsDba_objectsDba_rollback_segsDba_segmentsDba_sequencesDba_snappshotsDba_synony
20、msDba_tab_columnsDba_triggersDba_constraintsDba_cons_columns,PL*SQL,PL*SQL,SQL是结构化的查询语言Oracle的SQL语言包含对ANSI/ISO标准SQL语言的扩充。Oracle的SQL语言分为以下几类:DML(数据操纵语言)DDL(数据定义语言)事物处理的控制语言会话控制语句系统控制语句SQL*PLUS是Oracle的一个使用程序,它可以运行于客户端,也可以运行服务器端,通过它能够查看数据字典的信息,以及查看用户数据和结构等,运行程序。PL*SQL是Oracle的一种过程化的语言。他有自己的程序结构,有各种条件控制和
21、循环控制。通过语言,能够写数据库的存储过程和包。甚至通过PL*SQL语言还可以开发基于Web的应用。,Oracle SQL,SQL*Plus and PL*SQL,DMLSelect(从一个或多个表或视图中检索数据)select empno,ename,sal,deptno from empwhere deptno=10;复杂的select 语句:group by 子句select deptno,min(sal),max(sal)from emp group by deptno;having 子句select deptno,min(sal),max(sal)from emp where job
22、=CLERKgroup by deptnohaving min(sal)1000;Order byselect ename,deptno,sal from emp order by deptno ASC,sal DESC;for upfateselect empno,sal,comm from emp,dept where job=CLERKand emp.deptno=dept.deptno and loc=NEW YORKfor update;select empno,sal,comm from emp,dept where job=CLERKand emp.deptno=dept.dep
23、tno and loc=NEW YORKfor update of emp.sal;joinselect empno,ename,dname from emp,dept where emp.deptno=dept.deptno;,DMLupdate(改变表与视图现有行与列的值)update emp set sal=1000 where empno=7369;Insert(向表与视图中增加新行)insert into emp values(8888,abc,clerk,0000,sysdate,2000,0,10);delete(从表与视图中删除行)delete from emp where d
24、eptno=10;不支持select into,要用create as create table as select*from tablename,常用的sql函数,number functionabs(n)mod(m,n)power(m,n)round(m,n)sign(n)sort(n)开平方trunc(n,m)Date functionADD_MONTHS(d,n)LAST_DAY(d)MONTHS_BETWEEN(d1,d2)NEXT_DAY(d,char)SYSDATE.Conversion FunctionsTO_CHAR(d,format)TO_CHAR(n,format)TO_
25、NUMBERTO_DATE,character functionCONCAT(char1,char2)/*返回char1与char2的连接*/INITCAP(char)/*返回第一个字母大写的string*/LPAD(char1,n,char2)LTRIM(char,set)LOWERREPLACE(char,search_string,replacement_string)SUBSTR(char,m,n)INSTR(char1,char2,n,m)UPPER(char)LENGTH(char).其它函数NVL(expr1,expr2)USER.,SQL*Plus,SQLPlus 是Oracl
26、e 的一个实用程序.sql*plus的使用:数据库创建后,将安装scott/tiger的demo用户。sqlplus scott/tigersql/*sql*plus的命令行状态*/sql set pause on spool filename spool off,维护参数文件(init.ora),Managing an Oracle Instance,Uses of ParametersThe parameter file,commonly referred to as the init sid.ora file,is a text file that can be maintained u
27、sing a standard operating system editor.By default,it is located in the%ORACLE_HOME%database directory on Windows NT.With Oracle8i on Windows NT,the parameter file points to the%ORACLE_HOME%admin sid pfile directory where the actual parameter file is stored.The parameters in the init sid.ora file ca
28、n have a significant effect on database performance,and some need to be modified in the following ways for production systems:Size the System Global Area(SGA).Set database and instance defaults.Set user or process limits.Set limits on database resources.Define various physical attributes of the data
29、base,such as the database block size.Specify control files,archived log files,the ALERT file,and trace file locations.,Rules for Specifying Parameters Specify the values in the following format:keyword=value.All parameters are optional.The server has a default value for each parameter.This value may
30、 be operating system dependent,depending on the parameter.Parameters can be specified in any order.Comment lines begin with the#symbol.Enclose parameters in double quotation marks to include character literals.Additional files can be included with the keyword IFILE.If case is significant for the ope
31、rating system,then it is also significant in filenames.Multiple values are enclosed in parentheses and separated by commas.Note:Develop a standard for listing parameters;either list them alphabetically or group them by functionality.,Starting the Instance Usually you would start an instance without
32、mounting a database only during database creation or the re-creation of control files.Starting an instance includes the following tasks:Reading the parameter file init sid.ora Allocating the SGA Starting the background processes Opening the ALERT file and the trace filesThe database must be named wi
33、th the DB_NAME parameter either in the init SID.ora file or in the STARTUP command.Mounting the Database To perform specific maintenance operations,you start an instance and mount a database but do not open the database.For example,the database must be mounted but not open during the following tasks
34、:Renaming data files Enabling and disabling redo log archiving options Performing full database recoveryMounting a database includes the following tasks:Associating a database with a previously started instance Locating and opening the control files specified in the parameter file Reading the contro
35、l files to obtain the names and status of the data files and redo log files(However,no checks are performed to verify the existence of the data files and online redo log files at this time.)Opening the Database Normal database operation means that an instance is started and the database is mounted a
36、nd open;this allows any valid user to connect to the database and perform typical data access operations.Opening the database includes the following tasks:Opening the online data files Opening the online redo log filesIf any of the data files or online redo log files are not present when you attempt
37、 to open the database,the Oracle server returns an error.During this final stage,the Oracle server verifies that all the data files and online redo log files can be opened and checks the consistency of the database.If necessary,the System Monitor background process(SMON)initiates instance recovery.,
38、Starting UpTo start up an instance,use the following command:STARTUP FORCE RESTRICT PFILE=filenameOPEN RECOVER database|MOUNT|NOMOUNTTo open the database from STARTUP NOMOUNT to a MOUNT stage or from MOUNT to an OPEN stage,use the ALTER DATABASE command:ALTER DATABASE MOUNT|OPEN ALTER DATABASE OPEN
39、READ WRITE|READ ONLYExample:Start up the instance and open the database:STARTUP PFILE=/DISK1/initU15.Change the state of the database from NOMOUNT to MOUNT:ALTER DATABASE database MOUNT;Open the database as a read-only database:ALTER DATABASE database OPEN READ ONLY;,Quick Reference,管理控制文件,课程目标,解释控制
40、文件的使用了解控制文件的内容获取控制文件信息复用控制文件,控制文件的作用,是小的二进制文件,在:数据库MOUNT数据库运行需要使用。控制文件与一个数据库有关应该复用以防止文件丢失,控制文件的内容,数据库名数据文件位置重作日志位置表空间名当前日志文件顺序号检查点信息日志历史备分信息,影响控制文件大小的参数,控制文件的大小受下列参数影响:MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCESCONTROL_FILE_RECORD_KEEP_TIME,获取控制文件的信息,V$CONTROLFILE-NAME V$PARAME
41、TER-NAME(control_file)-VALUE V$CONTROLFILE_RECORD_SECTION-TYPE-RECORDS_SIZE-RECORDS_TOTAL-RECORDS_USED,控制文件使用的原则,复用控制文件在 CONTROL_FILES 中包含完全路径在数据库结构发生变化时备份控制文件,复用控制文件,control_files=(/DISK1/control01.con,/DISK2/control02.con),常见问题,改变控制文件的位置1.正常关闭数据库2.将控制文件从当前位置依到新的位置3.修改 initsid.ora或configsid.ora中con
42、trol_file参数.4.启动数据库,常见问题,-一个控制文件丢失 可关闭数据库复制好的控制文件-所有控制文件丢失,重建控制文件 svrmgrl startup mount svrmgrl alter database backup controlfile to trace 编辑udump下的TRACE文件 执行文件,管理表空间和数据文件,课程目标,了解数据库的逻辑结构建立表空间利用几种方法改变表空间的大小改变表空间的状态和存储参数改变数据文件位置准备需要的表空间,表空间,表空间由一组数据文件组成每个数据文件属于一个表空间每个表,索引,分区和所有其他的段均属于一个表空间但可以跨表空间的多个数
43、据文件,SYSTEM 和非SYSTEM 表空间,SYSTEM 表空间包含:数据字典信息SYSTEM 回滚段,非SYSTEM表空间包含:回滚段临时段应用数据应用索引,临时表空间,用于排序操作 不能包含永久性数据,CREATE TABLESPACE sortDATAFILE?DISK2/sort01.dbf?SIZE 50M MINIMUM EXTENT 1MDEFAULT STORAGE(INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0)TEMPORARY;,回滚表空间,用于 保存回滚段 不 要包含其他永久性数据,CREATE TABLESPACE
44、rbsDATAFILE?DISK2/sort01.dbf?SIZE 50M MINIMUM EXTENT 1MDEFAULT STORAGE(INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0);,建立表空间,CREATE TABLESPACE app_dataDATAFILE?DISK4/app01.dbf?SIZE 100M,?DISK5/app02.dbf?SIZE 100MMINIMUM EXTENT 500KDEFAULT STORAGE(INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0
45、);,存储参数,下述参数影响段的空间分配:INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE,表空间管理的一般原则,使用同样大小的子段只在表空间上指定存储参数子段大小为160K,5120KB,160MB监视子段个数超过1024的段非常大的表应单独建立表空间TEMP段应放在TEMP表空间回滚段应单独放在回滚段的表空间,给表空间增加数据文件,ALTER TABLESPACE APP_data ADD DATAFILE?DISK5/app03.dbf?SIZE 200M;,允许数据文件自动扩展,ALTER TABLESPACE app_data ADD DA
46、TAFILE?DISK6/app04.dbf?SIZE 200MAUTOEXTEND ON NEXT 10MMAXSIZE 500M;,Tablespace APP_ DATA,ALTER DATABASE DATAFILE?DISK5/app02.dbf?RESIZE 200M;,手工改变数据文件的大小,改变存储参数,ALTER TABLESPACE app_data MINIMUM EXTENT 2M;ALTER TABLESPACE app_dataDEFAULT STORAGE(INITIAL 2M NEXT 2M MAXEXTENTS 999);,将表空间OFFLINE,不能访问处于
47、OFFLINE状态的表空间的数据 SYSTEM 和包含活动回滚段的表空间不能OFFLINE,ALTER TABLESPACE app_data OFFLINE;,移动数据文件,表空间 APP_DATA 必须OFFLINE目标文件必须存在,ALTER TABLESPACE app_data RENAME DATAFILE?DISK4/app01.dbf?TO?DISK5/app01.dbf?,只读表空间,ALTER TABLESPACE app_data READ ONLY;,表空间必须在ONLINE状态 表空间中不含活动的 事物.表空间中不含活动的 回滚段 表空间中不在作在线备份,删除表空间,
48、DROP TABLESPACE app_data INCLUDING CONTENTS;,下述命令删除 APP_DATA表空间及其中的内容.,获取表空间有关的信息,DBA_TABLESPACES TABLESPACE_NAMENEXT_EXTENTMAX_EXTENTSPCT_INCREASEMIN_EXTLENSTATUSCONTENTS,获取数据文件有关的信息,DBA_DATA_FILESFILE_NAMETABLESPACE_NAMEBYTESAUTOEXTENSIBLE MAXBYTESINCREMENT_BY,一般原则,使用多个表空间为表空间指定存储参数给用户指定表空间限额,回滚段的
49、管理,课程目标,回滚段个数和大小的规划 使用合适的存储参数建立回滚段回滚段的维护从数据字典中获取回滚段的信息回滚段问题的诊断,回滚段的类型,SYSTEM非-SYSTEM私用公用,1、事物和回滚段,2、回滚段的增长,4、读一致性,介绍回退段的有关概念,3、回滚段的回缩,回滚段个数的规划,OLTP多个小的回滚段每个回滚段四个事物=N/4Batch少量的大回滚段,回滚段个数的规划,查询是否有回滚段的竞争SVRMGR select*from v$waitstat;CLASS COUNT TIME-data block 0 0sort block 0 0save undo block 0 0segmen
50、t header 0 0save undo header 0 0free list 0 0system undo header 0 0system undo block 0 0undo header 0 0undo block 0 0,回滚段的大小规划,使用同样大小的子段INITIAL,NEXT应用2KB,4KB。MINEXTENTS设为20OPTIMAL 应大于MINTEXTENTS的大小INITIAL=NEXT=1。25M/n,建立回滚段,CREATE ROLLBACK SEGMENT rbs01TABLESPACE rbsSTORAGE(INITIAL 100K NEXT 100K OP