ORACLE管理员必备手册

上传人:无*** 文档编号:127066739 上传时间:2022-07-29 格式:PPTX 页数:97 大小:563.65KB
收藏 版权申诉 举报 下载
ORACLE管理员必备手册_第1页
第1页 / 共97页
ORACLE管理员必备手册_第2页
第2页 / 共97页
ORACLE管理员必备手册_第3页
第3页 / 共97页
资源描述:

《ORACLE管理员必备手册》由会员分享,可在线阅读,更多相关《ORACLE管理员必备手册(97页珍藏版)》请在装配图网上搜索。

1、Jan-15-20001 预备知识 SQL语句 PL/SQL 关系数据库基本原理 相关知识 UNIX NT 网络Jan-15-20002 当前主流数据库及其简介当前主流数据库及其简介ORACLESYSBASEINFORMIXSQL SERVERDB2关系数据库概念简介关系数据库概念简介ORACLE数据库结构数据库结构Jan-15-20003 关系数据库元素关系数据库元素 实体和联系实体和联系 键(键(key)数据完整性数据完整性 SQL语言语言Jan-15-20004数数据据库库数数学学模模型型日日常常数数据据处处理理表(TABLE)关系(Relation)文件(File)行(ROW)元组(T

2、uple)记录(Record)列(COLUMN)属性(Attribue)字段(Field)Jan-15-20005 实体(实体(Entity):客观存在的并可相互区分的):客观存在的并可相互区分的“事物事物”实体通常成为表,表由行和列组成,每一行描述实体的一个示例,每一列实体通常成为表,表由行和列组成,每一行描述实体的一个示例,每一列描述实体的一个特征描述实体的一个特征 实体在逻辑数据库设计时被确定实体在逻辑数据库设计时被确定 联系(联系(Relation):实体之间存在的对应或连接关系):实体之间存在的对应或连接关系 一对一关系(一对一关系(1:1):表中的一行与相关表中的零行或多行相关):

3、表中的一行与相关表中的零行或多行相关 一对多关系(一对多关系(1:n):表中的一行与相关表中的零行或多行相关):表中的一行与相关表中的零行或多行相关 多对多关系(多对多关系(n:m):表中的多行与相关表中的零行或多行相关):表中的多行与相关表中的零行或多行相关 联系的实现:在关系数据库设计中,联系通常利用逻辑键来实现。联系的实现:在关系数据库设计中,联系通常利用逻辑键来实现。Jan-15-20006 主键主键 超键(超键(Super Key):在一个关系中能唯一表示元组的属性集):在一个关系中能唯一表示元组的属性集 侯选键(侯选键(Candidate Key):一个属性集能唯一标识元组而又不含

4、多):一个属性集能唯一标识元组而又不含多余的属性余的属性 主键(主键(Primary Key):被选用的侯选键):被选用的侯选键 外键外键 公共键(公共键(Common Key):两个关系中具有相容(或相同)的属性):两个关系中具有相容(或相同)的属性或属性组或属性组 外键(外键(Foreign Key):如果公共键是其中一个关系的主键,那么这):如果公共键是其中一个关系的主键,那么这个公共键在另一个关系中称为外键个公共键在另一个关系中称为外键 组合键组合键 组合键(组合键(Composit Key):由两个或两个以上属性(列)组成的键):由两个或两个以上属性(列)组成的键Jan-15-200

5、07 实体完整性实体完整性 关系中的元组在组成主键的属性上不能有空值,也不能有重复值,关系中的元组在组成主键的属性上不能有空值,也不能有重复值,否则就不能起到唯一标识元组的作用否则就不能起到唯一标识元组的作用 域完整性域完整性 关系中的属性取值的正确性限制,包括数据类型、精度、取值范围、关系中的属性取值的正确性限制,包括数据类型、精度、取值范围、是否允许空值等是否允许空值等 参照完整性参照完整性 反映了实体之间存在的某种约束条件。要求外键的值不允许参照不反映了实体之间存在的某种约束条件。要求外键的值不允许参照不存在的主键的值,它使主键和外键之间的值保持一致或相容,来维存在的主键的值,它使主键和

6、外键之间的值保持一致或相容,来维护数据库数据的一致性或相容性护数据库数据的一致性或相容性 业务规则业务规则 一般包括数据完整性、参照完整性、遵循组织的任一其他需求,以一般包括数据完整性、参照完整性、遵循组织的任一其他需求,以便保证业务的正确运行便保证业务的正确运行Jan-15-20008 数据操纵语言(数据操纵语言(DML)SELECT DELETE INSERT UPDATE 数据定义语言(数据定义语言(DDL)CREATE 定义数据库实体结构定义数据库实体结构 ALTER 修改数据库实体结构修改数据库实体结构 DROP 删除数据库实体删除数据库实体 GRANT/REVOKE数据库对象的权限

7、管理数据库对象的权限管理 数据控制语言(数据控制语言(DCL)COMMIT/ROLLBACK SAVEPOINTJan-15-20009SQL*NET字符集字符集SQL*PLUS数据库对象介绍数据库对象介绍Jan-15-200010TNS是是Transparent Network Substrate(透明网络层)的缩写(透明网络层)的缩写服务器上监听进程与服务器上监听进程与listener.ora文件文件客户机上客户机上tnsnames.ora文件文件Jan-15-200011LISTENER=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=100.100

8、.100.100)(PORT=1521)SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=ora1)(ORACLE_HOME=/oracle/app/oracle/product/8.0.5)Jan-15-200012yy1=(description=(address=(protocol=tcp)(host=100.100.100.100)(port=1521)(connect_data=(sid=ora1)Jan-15-200013SQL*PLUS常用命令介绍常用命令介绍DUAL空表的作用空表的作用SQL 语句语句SQL常用函数介绍常用函数介绍S

9、QL*PLUS使用常用技巧使用常用技巧Jan-15-200014SET(设置当前的SQL*PLUS的系统环境):ECHO,HEADING,SERVEROUPUT,TIMING,TIME,LONG,LINESIZE,ARRAYSIZE,AUTOCOMMIT,COPYCOMMIT,PAUSESHOW(显示当前的系统环境):USERSAVE存储当前的内容到某一文件:SAVE 文件名文件名GET读取某一文件的内容:GET 文件名文件名RUN和/(运行当前的文件或某一特定的文件):RUN可运行当前缓冲区中的内容也可运行某一特定的文件可运行当前缓冲区中的内容也可运行某一特定的文件。CONN连接某一用户:C

10、ONN username/passwordalias Jan-15-200015DISC从某一连接中退出:DISCCOLUMN格式化某一列的显示格式:COLUMN COLUMN_NAME FORMAT AXXXDESC查看某一对象的描述:DESC OBJECT_NAMEEDIT编辑当前缓冲区中的内容或某一特定的文件:EDIT 或或EDLIST显示当前缓冲区中的内容:LIST或或LSPOOL把运行结果重定向:SPOOL 某一文件,结束某一文件,结束SPOOL OFF,默认的扩展名为,默认的扩展名为LSTJan-15-200016EXIT:退出当前的连接和:运行单独的脚本和在脚本中运行脚本cre.

11、sqlcre.sqlAPPEND:在当前的语句的末尾增加内容append 或或 aCHANGE:改变当前最后一行的内容,用特定的内容替换指定的内容。C/student/teacher清屏命令:SHIFT+DEL(clear scr)Jan-15-200017:作用:根据WHERE条件从表,视图,SNAPSHOT中获取数据。语法:select distinct(all default)column_name(expt,*)from table(view,snapshot,subqueryselect list)dblink where(start with condition)(connect

12、by condition)group by expr(having condition)union(union all,minus,intersect)order by(expr,position,c_alias)asc(desc)for update of(table,view snapshot)column nowaitJan-15-200018UPDATE:作用:该语句用于修改表或基表的VIEW中的已存在的数据,如果要执行该语句必须拥有UPDATE PRIVILEGE。语法:update table(view,snapshot)dblink t_alias set(column_arra

13、ay)=subquery2 or column=value or=subquery3 where conditionJan-15-200019INSERT:作用:该语句用于插入单条或一组记录到相应的表和基于单表的VIEW,如果要执行该语句必须拥有INSERT PRIVILEGE。语法:insert into schema.table(view or subquery1)dblink(column_name)values(column_values)(or subquery2)(as select from )Jan-15-200020DELETE:作用:该命令用于从表或基于单表的VIEW中删除

14、一些记录,如果要执行该语句必须拥有DELETE PRIVELEGE。语法:delete from table(view)dblink alias where conditionCOMMIT:ROLLBACK:Jan-15-200021CREATE TABLE:CREATE TABLE(COLUMN NAME)CREATE TABLE AS SELECT COLUMN NAME(*)FROM TABLE_NAMECOPY FROM TO REPLACE(CREATE)ALTER TABLE:DROP TABLE:CREATE(ALTER/DROP)INDEX:Jan-15-200022NVL:把

15、空值用某一特定值进行替换:把空值用某一特定值进行替换DECODE:作用是对特定的值进行选择,并指定一默认值:作用是对特定的值进行选择,并指定一默认值TO_CHAR:把某一数据类型转换成:把某一数据类型转换成CHAR型型TO_DATE:把某一数据类型转换成:把某一数据类型转换成DATE型,须考虑特定的数据格式型,须考虑特定的数据格式TO_NUMBER:把某一数据类型转换成:把某一数据类型转换成NUMBER型型LTRIM:把某一:把某一CHAR型数据的左边空格删除型数据的左边空格删除RTRIM:把某一:把某一CHAR型数据的右边空格删除型数据的右边空格删除INSTR:获取某些字符在某一字符串中的位

16、置:获取某些字符在某一字符串中的位置SUBSTR:把某一字符串截取特定长度,得到另一字符串:把某一字符串截取特定长度,得到另一字符串Jan-15-200023LPAD:把某一字符串按照一定位数进行特定字符的左扩展:把某一字符串按照一定位数进行特定字符的左扩展RPAD:把某一字符串按照一定位数进行特定字符的右扩展:把某一字符串按照一定位数进行特定字符的右扩展CHR:把某一:把某一10进制的的进制的的NUMBER转换成相应的转换成相应的CHARREPLACE:把某一字符串的内容用某一特定的字符进行替换:把某一字符串的内容用某一特定的字符进行替换ADD_MONTHS:把某一日期进行加一个月处理:把某

17、一日期进行加一个月处理COUNT:对某一数据进行个数统计:对某一数据进行个数统计SUM:对某一:对某一NUMBER型数据进行相加处理型数据进行相加处理MAX:提取某一:提取某一NUMBER型数据的最大值型数据的最大值MIN:提取某一:提取某一NUMBER型数据的最小值型数据的最小值Jan-15-200024通配符通配符:完全通配符:完全通配符:%可匹配任意各字符。可匹配任意各字符。部分通配符:部分通配符:_可匹配单个字符可匹配单个字符伪列类型伪列类型:CURRVAL和 NEXTVAL:提取提取SEQUENCE中的当前值和下一值。在使用时应先使用中的当前值和下一值。在使用时应先使用NEXTVAL

18、,才能使,才能使用用CURRVALLEVEL:对于对于SELECT语句中的层次查询返回的层次语句中的层次查询返回的层次ROWID:数据的物理地址,类似于指针,由数据的物理地址,类似于指针,由18位组成,位组成,BLOCKID(8位位).COLUMNID(4位)位).FILEID(4位)位)ROWNUM:得到返回的行的个数得到返回的行的个数Jan-15-200025在SQL*PLUS环境中如何进行交互式输入:利用替代符利用替代符&如何利用SQL生成SQL脚本:SPOOL的功能的功能如何在两个数据库中进行数据的复制:COPY FROM TO APPEND,CREATE,INSERT,REPLACE

19、Jan-15-200026CLUSTERDATABASE LINKFUNCTIONINDEXTABLEPROCEDUREPACKAGEPACKAGE BODYSEQUENCESYNONYMTRIGGERVIEWJan-15-200027数据库管理员(数据库管理员(DBA)职责:)职责:数据库物理设计数据库物理设计数据库启动数据库启动/关闭关闭数据库安装,配置数据库安装,配置数据库存储管理数据库存储管理数据库安全管理数据库安全管理数据库故障检测数据库故障检测网络管理网络管理数据库性能检测及优化数据库性能检测及优化数据库备份与恢复数据库备份与恢复Jan-15-200028定时检查alert.log

20、文件用utlbstat/utlestat产生数据库性能报告对应用进行跟踪分析*对OPS定时检测冲突情况定时对数据库中的表和索引进行统计和分析数据库用户和安全管理数据库表空间管理协助应用开发人员进行设计和分析数据库故障处理(数据库补丁).Jan-15-200029SGA(System Global Area)Database bufferShare pool Redo buffer用户进程DBWRSMONPMONLGWRARCHRECOLcknDnnnCKPTData filesControl files Redo log filesJan-15-200030DBWRLGWRCKPTSMONPM

21、ONinstanceSGAData bufferRedo LogbufferLibrarycacheData dictionarycacheShared poolControlfilesControlfilesControlfilesdatafilesControlfilesRedo logfilesALTERfileParameterfilePasswordfileUserProcessServerProcessPGABackground processARCHArchivedlog filesJan-15-200031Oracle ServerControlfilesControlfile

22、sUserProcessServerProcessServerPGAJan-15-200032SELECT*FROM emp ORDER BY ename;statementhandlehandleresultsOKOKparseExecuteFetchJan-15-200033DBWRLGWRCKPTSMONPMONinstanceSGAData bufferRedo LogbufferLibrarycacheData dictionarycacheShared poolARCHControlfilesControlfilesControlfilesdatafilesControlfiles

23、Redo logfilesServerProcessUPDATE empSET sal=sal*2WHERE empname=王海王海13452Jan-15-200034DBWRLGWRCKPTSMONPMONinstanceSGAData bufferRedo LogbufferLibrarycacheData dictionarycacheShared poolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedo logfilesServerProcessUserProcess1234Jan-15-200035

24、svrmgrl/svrmgrm sqldba orapwd SQL*Loader Export/Import OEMJan-15-200036CategoryCommandsExampleCommand that do not needdatabase connectionExitRemarkSetShowSpoolSet charwidth 20Set numwidth 8:set the column display widthSpool credb.logShow all :Display current settingsShow spoolCommands needing Oracle

25、privilegesConnect/disconnectDescribeExecuteShow errorsShow parameterShow SGACommands needing specialOracle privilegeConnect as sysdbaConnect as sysoperArchive logRecover databaseStartup/shutdownJan-15-200037SHUTDOWNNOMOUNTMOUNTOPEN实例启动实例启动打开实例打开实例所需要的所需要的控制文件控制文件打开控制打开控制文件中定文件中定义的所有义的所有文件文件12Jan-15-

26、200038启动命令启动命令STARTUP FORCE RESTRICT PFILE=filename EXCLUSIVE|PARALLEL|SHARED OPEN RECOVER database|MOUNT|NOMOUNT并行数据库启动步骤并行数据库启动步骤-启动启动DLM锁锁-startup parallel-启动监听进程启动监听进程Jan-15-200039 关闭数据库命令关闭数据库命令 shutdown normal|transactional|immediate|abort 关闭数据库步骤关闭数据库步骤 -停止监听进程停止监听进程-查看系统中是否存在活动进程查看系统中是否存在活动进

27、程-用用normal方式或方式或shutdown immediate关闭数据库关闭数据库Jan-15-200040数据库关闭模式数据库关闭模式AITN允许新连接允许新连接NNNN等待当前会话结束等待当前会话结束NNNY等待当前事务结束等待当前事务结束NNYY强制强制 CKPT 并关闭文件并关闭文件NYYYJan-15-200041 设置环境变量设置环境变量 NT ORADMIN80-NEW-SID TEST-INTPWD password-STARTMODE auto-PFILE inittest.ora UNIX ORACLE_HOME ORACLE_SID.数据库安装数据库安装 参数设置参

28、数设置Jan-15-200042spool crdbtest.lststartup nomount pfile=inittest.oraCreate database test maxlogfiles 10maxlogmembers 5maxdatafiles 100maxloghistory 100logfilegroup 1(/dev/rdrd/drd4,/dev/rdrd/drd5)size 10m,group 2(/dev/rdrd/drd6,/dev/rdrd/drd7)size 10mdatafile/dev/rdrd/drd10 size 100m character set z

29、hs16cgb231280;Jan-15-200043 sql.bsq 创建数据库基表 catalog.sql 数据字典视图 catproc.sql PL/SQL dbms*.sql&prvt*.plb 数据库包体/包头 pupbld.sqlJan-15-200044 监控日志文件监控日志文件 install.log make.log holdfile.log 常见安装问题解决常见安装问题解决Jan-15-200045 控制文件作用控制文件作用 控制文件信息控制文件信息数据库名称数据库名称数据文件定位数据文件定位重做日志文件定位重做日志文件定位表空间名称表空间名称当前当前sequence号号c

30、heckpoint信息信息备份信息备份信息.控制文件管理控制文件管理备份备份重建重建保持控制文件的多个复本保持控制文件的多个复本Jan-15-200046 V$CONTROLFILE NAME V$PARAMETER NAME(control_file)V$CONTROLFILE_RECORD_SECTION TYPE RECORDS_SIZE RECORDS_TOTAL RECORDS_USEDJan-15-200047DatabaseTablespaceSegmentExtentOracleBlockO/S BlockData fileLogicalPhysicalJan-15-20004

31、8 表空间管理表空间管理 Create tablespace alter tablespace drop tablespace 回滚段管理回滚段管理 create rollback segment alter rollback segment drop rollback segmentJan-15-200049 DBA_TABLESPACE DBA_DATA_FILES DBA_SEGMENTS DBA_EXTENTS DBA_FREE_SPACE DBA_FREE_SPACE_COALESCEDJan-15-200050重做日志文件作用重做日志文件作用归档模式归档模式重做日志文件管理重做日志

32、文件管理-ALTER SYSTEM SWITCH LOGFILE;-ALTER SYSTEM CHECKPOINT;-ALTER DATABASE ADD LOGFILE-ALTER DATABASE ADD LOGFILE MEMBER-ALTER DATABASE RENAME FILE-ALTER DATABASE DROP LOGFILE-ALTER DATABASE DROP LOGFILE MEMBER-ALTER DATBASE CLEAR LOGFILE-ARCHIVE LOG LIST Jan-15-200051datafiles5051controlfile100101t1

33、t2Without archivingWith archivingdatafiles5051controlfile100101t1t25151515151519952Jan-15-200052 V$DATABASE V$INSTANCE V$THREAD V$LOG V$LOGFILEJan-15-200053 用户管理用户管理 create user alter user drop user 用户权限用户权限.profileJan-15-200054数据库的备份方案有以下几种数据库的备份方案有以下几种:l全部或部分卸出备份(全部或部分卸出备份(exp)l增量卸出备份增量卸出备份l冷备份冷备份

34、l热备份热备份l归档备份归档备份l整个文件系统的复制整个文件系统的复制Jan-15-200055exp help=yExample:exp scott/tiger file=exp.dmp log=exp.log buffer=4096000 full=y/n indexes=y/n rows=y/n compress=y/n OWNER list of owner usernamesTABLES list of table namesGRANTS export grants(Y)INCTYPE incremental export typeINDEXES export indexes(Y)C

35、ONSTRAINTS export constraints(Y)CONSISTENT cross-table consistencySTATISTICS analyze objects(ESTIMATE)Jan-15-2000561.数据库必须运行在数据库必须运行在archive模式下模式下svrmgrl startup mountsvrmgrl alter database archivelog;2.冷冷/热备份热备份3.数据库控制文件备份数据库控制文件备份Jan-15-200057数据库恢复:数据库恢复:数据表空间数据表空间/数据恢复数据恢复控制文件恢复控制文件恢复根据备份方案的不同,恢复

36、也有以下两种方法:根据备份方案的不同,恢复也有以下两种方法:1.数据数据imp(倒入)(倒入)2.表空间表空间recoverJan-15-200058imp help=yExample:imp scott/tiger file=exp.dmp full=y rows=y index=y log=imp.log 注意:注意:由于在由于在imp的过程中,部分约束及角色将由于对象倒入的先后顺的过程中,部分约束及角色将由于对象倒入的先后顺序而丢失,必须用手工重新创建或进行第二次序而丢失,必须用手工重新创建或进行第二次imp(不倒入数据)(不倒入数据)对比对比imp.log和和exp.log文件,观察是

37、否存在数据未倒入文件,观察是否存在数据未倒入Jan-15-200059临时表空间:临时表空间:临时表空间并不包含真正的数据,恢复的方法是删除临时表空临时表空间并不包含真正的数据,恢复的方法是删除临时表空间并重建即可间并重建即可系统表空间:系统表空间:系统处于系统处于noarchivelog模式下或备份不可用,重建数据库模式下或备份不可用,重建数据库系统处于系统处于archivelog模式下,恢复步骤同用户表空间模式下,恢复步骤同用户表空间回滚表空间:回滚表空间:删除回滚段,删除回滚表空间,重建回滚表空间及回滚段删除回滚段,删除回滚表空间,重建回滚表空间及回滚段Jan-15-200060用户表空

38、间:用户表空间:错误现象:错误现象:在启动数据库时出现在启动数据库时出现ORA-01157,ORA-01110或操作系统级错或操作系统级错误如误如ORA-07360;在关闭数据库;在关闭数据库(使用使用shutdown 或或shutdown immediate)时出现错误时出现错误ORA-01116,ORA-01110及操作系统级错误及操作系统级错误ORA-073681.用户的表空间可以被轻易地重建用户的表空间可以被轻易地重建 最近导出的对象是可用的或表空间中的对象可以被轻易地重建等最近导出的对象是可用的或表空间中的对象可以被轻易地重建等.在这种情况下,最简单的方法是在这种情况下,最简单的方法

39、是offline并删除该数据文件,删除表并删除该数据文件,删除表空间并重建表空间以及所有的对象并重建表空间及所有对象空间并重建表空间以及所有的对象并重建表空间及所有对象.2.数据库运行在数据库运行在archivemode下,恢复步骤为:下,恢复步骤为:将备份回拷覆盖被损坏的数据文件;回拷(冷将备份回拷覆盖被损坏的数据文件;回拷(冷/热)备份后生成的热)备份后生成的所有日志文件所有日志文件svrmgrl recover datafile filename;svrmgrl alter database open resetlogs;Jan-15-200061控制文件的恢复:控制文件的恢复:1.存在

40、一个或多个控制文件可用存在一个或多个控制文件可用关闭数据库,复制可用的控制文件关闭数据库,复制可用的控制文件2.所有的控制文件均被破坏所有的控制文件均被破坏重建控制文件:重建控制文件:svrmgrl startup nomountsvrmgrl cre.sql-重建控制文件脚本重建控制文件脚本Jan-15-200062CREATE CONTROLFILE REUSE DATABASE YY1 NORESETLOGS NOARCHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 256 MAXINSTANCES 8 MAXLOGHISTORY

41、800LOGFILE GROUP 1/dev/rdrd/drd1 SIZE 10M,GROUP 2/dev/rdrd/drd2 SIZE 10M,GROUP 3/dev/rdrd/drd6 SIZE 10M,DATAFILE /usr/ora/db/system.dbf,/usr/ora/db/rbs.dbf,.;RECOVER DATABASEALTER DATABASE OPEN;Jan-15-200063数据库优化工作重要性数据库优化工作重要性数据库优化过程数据库优化过程数据库优化基础知识数据库优化基础知识数据库优化内容数据库优化内容数据库性能诊断工具数据库性能诊断工具优化技巧及脚本优化

42、技巧及脚本ORACLE技术热线技术热线Jan-15-200064 ORACLE数据库系统数据存储的物理结构和逻辑结构数据库系统数据存储的物理结构和逻辑结构 模式对象的组成模式对象的组成 ORACLE数据库系统的进程以及内存结构构成数据库系统的进程以及内存结构构成 ORACLE锁的概念介绍锁的概念介绍 二阶段提交的概念二阶段提交的概念 用户、角色、权限的概念的介绍用户、角色、权限的概念的介绍 举例介绍举例介绍ORACLE是如何处理一个事务是如何处理一个事务Jan-15-200065l首先必须有一台主机或数据库服务器运行一个首先必须有一台主机或数据库服务器运行一个ORACLE INSTANCEl工

43、作站运行一个应用,它试图通过适当的工作站运行一个应用,它试图通过适当的SQL*NET驱动同服务器取得联系驱动同服务器取得联系l如果该服务器也正在运行适当的如果该服务器也正在运行适当的SQL*NET驱动。服务器检测到应用的连接请求,驱动。服务器检测到应用的连接请求,开始为此用户进程创建一个专用的服务器进程开始为此用户进程创建一个专用的服务器进程l客户端的用户执行一个客户端的用户执行一个SQL语句并提交此进程语句并提交此进程l服务器进程收到此服务器进程收到此SQL语句,并开始检验在语句,并开始检验在ORACLE的共享池中是否存在同样的的共享池中是否存在同样的SQL语句。如果在共享池中发现该语句。如

44、果在共享池中发现该SQL语句,服务器进程开始检验该用户是否对语句,服务器进程开始检验该用户是否对请求的数据有操作的权限,然后使用在共享池中的请求的数据有操作的权限,然后使用在共享池中的SQL语句去执行该语句。如果语句去执行该语句。如果该该SQL语句在共享池中不存在,就为此语句分配一个新的共享池区以便它能够被语句在共享池中不存在,就为此语句分配一个新的共享池区以便它能够被解析、执行解析、执行l服务器进程从实际的数据文件或共享池中取回必须的数据服务器进程从实际的数据文件或共享池中取回必须的数据l服务器进程在在共享池中修改数据。在上述所作的生效之后,服务器进程在在共享池中修改数据。在上述所作的生效之

45、后,DBWR后台进程把后台进程把修改后的数据块永久的写入硬盘。在此事务提交成功之后,修改后的数据块永久的写入硬盘。在此事务提交成功之后,LGWR进程立即把此进程立即把此事务记录到在线的事务记录到在线的redo log filel如果此事务成功,服务器进程通过网络返回一个成功的信息给应用程序。如果该如果此事务成功,服务器进程通过网络返回一个成功的信息给应用程序。如果该事务不成功,将返回一个适当的信息事务不成功,将返回一个适当的信息l在上述的事务过程中,其余的后台进程同样在运行,等待着条件符合而被触发。在上述的事务过程中,其余的后台进程同样在运行,等待着条件符合而被触发。此外,数据库服务器还管理着

46、其他用户的事务,并且在不同事务之间提供数据一此外,数据库服务器还管理着其他用户的事务,并且在不同事务之间提供数据一致性,防止不同事务对相同数据操作致性,防止不同事务对相同数据操作Jan-15-200066数据库建库优化数据库建库优化数据库初始化文件数据库初始化文件数据库空间优化数据库空间优化系统设计优化系统设计优化SQL语句优化语句优化SGA优化优化I/O、CPU优化优化系统性能瓶颈分析系统性能瓶颈分析常见问题分析常见问题分析Jan-15-200067 表空间设计的原则为表空间设计的原则为:把由用户创建的其余表空间同把由用户创建的其余表空间同SYSTEM表空间进行分离表空间进行分离 把系统的数

47、据表空间同索引表空间分离把系统的数据表空间同索引表空间分离 把操作频繁和不经常操作的表划分在不同的表空间中把操作频繁和不经常操作的表划分在不同的表空间中 分离用户数据和回滚段的数据以防止某个磁盘出现故障丢失数据分离用户数据和回滚段的数据以防止某个磁盘出现故障丢失数据 为特殊类型的数据库使用保留某个表空间为特殊类型的数据库使用保留某个表空间 回滚表空间分配原则回滚表空间分配原则 临时表空间分配原则临时表空间分配原则Jan-15-200068一个事务的回退信息可以写到当前例程中正在被使用的任何的一个回滚段中一个事务的回退信息可以写到当前例程中正在被使用的任何的一个回滚段中一个事务的所有回退信息只能

48、写入一个回滚段中一个事务的所有回退信息只能写入一个回滚段中多个事务的回退信息可以同时写入同一个回滚段中,甚至可以同时写入一个多个事务的回退信息可以同时写入同一个回滚段中,甚至可以同时写入一个EXTENT中中当回滚段的当回滚段的EXTENT中的所有事务都被提交或回退了,此中的所有事务都被提交或回退了,此EXTENT就可以被重新使用就可以被重新使用一旦回滚段的某个一旦回滚段的某个EXTENT被重新使用,在此被重新使用,在此EXTENT中的所有信息都不在可用中的所有信息都不在可用在系统需要更多的空间时,如果回滚段的下一个在系统需要更多的空间时,如果回滚段的下一个EXTENT中有活动事务,例程就会扩展

49、中有活动事务,例程就会扩展此回滚段此回滚段select、insert、update、delete语句都可能会使数据库从多个回滚段去读数据语句都可能会使数据库从多个回滚段去读数据回滚段的头永远不会移入当前被回滚段的头永远不会移入当前被rollback的事务为所占用的的事务为所占用的extent中中当回滚段的头进行扩展时,他是按顺序的,不会跳过环中的当回滚段的头进行扩展时,他是按顺序的,不会跳过环中的EXTENT如果回滚段的头不能使用下一个如果回滚段的头不能使用下一个extent,它就会另外分配一个,它就会另外分配一个extent,并把它插入环中,并把它插入环中Jan-15-200069 ORAC

50、LE 存储基本单位-BLOCK 建表参数 建索引参数 索引结构公用的变长标题(common and variable header)A表目录(table directory)B行目录(row directory)C未用空间(free space)D行数据(row data)EJan-15-200070CREATE TABLE schema.table(col datatype DEFAULT expr col_constraint.|table_cons,col datatype DEFAULT expr col_cons.|table_cons.)PCTFREE integer PCTUSE

51、D integer INITRANS integerMAXTRANS integer TABLESPACE tablespaceSTORAGE storage_clause PARALLEL(DEGREE integer|DEFAULT INSTANCES integer|DEFAULT )|NOPARALLEL CACHE|NOCACHE|CLUSTER cluster(column,column.)ENABLE enable_clause|DISABLE disable_clause .AS subqueryJan-15-200071 ORACLE优化方式优化方式 COST_BASED(基

52、于代价)(基于代价)RULE_BASED(基于规则)(基于规则)索引的使用索引的使用 如何写高效的如何写高效的SQL语句语句 写相同的写相同的SQL语句,保证程序能够利用共享池的内容,加快语句,保证程序能够利用共享池的内容,加快程序的执行速度程序的执行速度 写能够利用索引并且能够符合基于代价的优化条件的写能够利用索引并且能够符合基于代价的优化条件的SQL语语句句 尽量利用尽量利用PL/SQL的特性减少网络的传输的特性减少网络的传输 使用存储过程,以减少网络的传输和提高系统的编译速度使用存储过程,以减少网络的传输和提高系统的编译速度Jan-15-200072COLUMN1(=,utlxplan.

53、sql 修改修改init.ora文件,设置文件,设置TIMED_STATISTICS=TRUE2.sql execute dbms_system.set_sql_trace_in_session(sid,serial#,true)3.sql execute dbms_system.set_sql_trace_in_session(sid,serial#,false)4.tkprof trc_file text_file sys=y/n explain=user/passwd Jan-15-200078TKPROF输出的文件中关键字含义:输出的文件中关键字含义:count一个语句被语法分析、执行

54、和取数的次数一个语句被语法分析、执行和取数的次数cpu对语句的所有语法分析,执行或取数调用的总对语句的所有语法分析,执行或取数调用的总CPU时间(以秒计)时间(以秒计)elapsed 对语句的所有语法分析,执行或取数调用的总耗费时间(以秒计)对语句的所有语法分析,执行或取数调用的总耗费时间(以秒计)disk对所有语法分析,执行或取数调用的,从磁盘数据文件上数据块物理对所有语法分析,执行或取数调用的,从磁盘数据文件上数据块物理读的总数读的总数query对所有语法分析,执行或取数调用的,以一致方式检索的缓冲区总数,对所有语法分析,执行或取数调用的,以一致方式检索的缓冲区总数,对查询来说,通常用一致

55、性方式检索缓冲区对查询来说,通常用一致性方式检索缓冲区current以当前方式检索的缓冲区总数。对以当前方式检索的缓冲区总数。对INSERT,UPDATE和和DELETE语语句通常用当前方式检索缓冲区句通常用当前方式检索缓冲区Query和和current的和是存取的缓冲区的的和是存取的缓冲区的总数总数rows由由SQL语句处理的总行数。对于语句处理的总行数。对于SELECT语句而言,返回的行数出现语句而言,返回的行数出现在取数的步骤,对在取数的步骤,对UPDATE、DELETE和和INSERT语句而言,处理的语句而言,处理的行数出现在执行步骤行数出现在执行步骤Jan-15-200079Exam

56、ple:在执行:在执行tkprof ora_1000.trc out.txt explain=sys/sys sys=no后输出如下:后输出如下:.SELECT WORK_TYPE_ID FROM WORK_AREA W,STAFF_MEMBER S WHERE W.WORK_AREA_ID=:b1 AND S.WORK_AREA_ID=:b1 AND S.STAFF_ID=:b3 AND S.STS=Acall count cpu elapsed disk query current rows-Parse 0 0.00 0.00 0 0 0 0Execute 1 0.00 0.00 0 0

57、0 1Fetch 1 23.0 0.00 32230 22 2 43993-total 2 23.00 0.00 39930 22 2 43993 Rows Execution Plan-0 SELECT STATEMENT GOAL:CHOOSE 1 NESTED LOOPS 43993 TABLE ACCESS GOAL:ANALYZED(FULL)OF STAFF_MEMBER 29 TABLE ACCESS GOAL:ANALYZED(BY ROWID)OF WORK_AREA 29 INDEX GOAL:ANALYZED(UNIQUE SCAN)OF SYS_C007339(UNIQ

58、UE).Jan-15-200080设置设置TIMED_STATISTICS=TRUEsvrmgrl utlbstatsvrmgrl utlestat系统将生成系统将生成report.txt文本文件便于分析文本文件便于分析 Jan-15-200081Jan-15-200082ORACLE提供了一个非常实用的故障判断命令提供了一个非常实用的故障判断命令oerr,格式:,格式:oerr ora error_no,使用该命令能够解决大多数使用,使用该命令能够解决大多数使用ORACLE中所遇到的中所遇到的“故障故障”:Example1:$oerr ora 30100301,00000,error in

59、adding log file%s-file cannot be created/*Cause:The creation of the log file failed/*Action:Check:1)there is enough space on the device/2)the name of the file is valid/3)the device is online/4)an IO error occurred/consult associated errors for further information.Jan-15-200083Example2:$oerr ora 1542

60、01542,00000,tablespace%s is offline,cannot allocate space in it/*Cause:Tried to allocate space in an offline tablespace/*Action:Bring the tablespace online or create the object in/other tablespace Jan-15-200084Example 3:$oerr ora 403104031,00000,unable to allocate%s bytes of shared memory(%s,%s,%s)/

61、*Cause:More shared memory is needed than was allocated in the/shared pool./*Action:Either use the dbms_shared_pool package to pin large/packages,reduce your use of shared memory,or increase the/amount of available shared memory by increasing the value of the/init.ora parameter shared_pool_size.Jan-1

62、5-200085对于以下错误,一般是由于对于以下错误,一般是由于ORACLE的的bug引起,需要通过引起,需要通过ORACLE技术技术支持解决:支持解决:ORA-00600错误错误00600,00000,internal error code,arguments:%s,%s,%s,%s,%s,%s,%s,%s”/*Cause:This is the generic internal error number for Oracle program/exceptions.This indicates that a process has encountered an/exceptional con

63、dition./*Action:Report as a bug-the first argument is the internal error number ORA-07445错误错误Jan-15-200086ORA-00600 4097故障现象:故障现象:在进行存储过程编译时(对数据字典 v$source 进行插入操作时)出现 ORA-006004097原因分析:原因分析:该错误和 rollback segment 有关,可能是 ORACLE 的一个 bug。但是如果按照以下的非法步骤进行操作也可能导致如上错误:删除原有回滚段;重新创建与旧回滚段名称相同、数量相同的回滚段;用 abort选

64、项关闭数据库解决方法:解决方法:1、删除除系统回滚段以外所有的回滚段。2、建一些比较小的回滚段。3、建和原先回滚段名称、大小相同的回滚段。4、确认新建回滚段的 segment_id 比原来大。5、删除所建的较小的回滚段。Jan-15-200087ORA-01555错误:错误:01555,00000,snapshot too old:rollback segment number%s with name%s too small/*Cause:rollback records needed by a reader for consistent read are/overwritten by oth

65、er writers/*Action:Use larger rollback segments解决方法:解决方法:加大加大rollback segment大小。大小。减少提交次数。减少提交次数。对部分数据进行操作而不是整张表。对部分数据进行操作而不是整张表。增加更多的增加更多的rollback segment。修改代码,避免在提交时提取数据(避免交叉提交)。修改代码,避免在提交时提取数据(避免交叉提交)。确认在处理过程的不同时间内外部查询不会重新访问相同的块确认在处理过程的不同时间内外部查询不会重新访问相同的块。Jan-15-200088ORA-006004519错误错误错误现象:Errors

66、 in file$ORACLE_HOME/rdbms/log/ora_28379.trcORA-00600:internal error code,arguments:4519,67113756,2,解决:出现以上错误是数据块被破坏引起的,可以执行如下的package进行分析:svrmgrl select dbms_utility.data_block_address_file(67113756)from dual;svrmgrl select dbms_utility.data_block_address_block(67113756)from dual;通过对应的block_id和file_id查找被破坏的实体类型、owner等:svrmgrl select segment_name,segment_type,owner from dba_extents where file_id=file#and block#between block_id and block_id+blocks-1;如果出现的错误并非系统的表或索引,则可以通过备份然后重新创建实体的方法如果出现的错误并非系统的

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!