Oracle数据库基础教程.ppt
,介绍要点,ORACLE公司及其数据库产品数据库体系结构技术综述数据库管理数据库性能调整9i产品新特性常见问题Q&A,Oracle公司及其产品,Oracle公司,Oracle是全球领先的信息管理软件供应商和全球第二大独立软件公司。年收入达110亿美元,在全世界145个国家为客户提供数据库系统、工具、应用产品以及相关的咨询、培训和支持服务,拥有42,700名员工。Oracle是第一家可开发和交付100%的基于互联网的数据库、企业业务应用、应用开发和决策支持工具等企业级软件的软件公司;,Oracle中国公司,1989年 正式进入中国市场是第一家进入中国的世界软件巨头1991年 在北京建立独资公司目前在上海、广州、成都设有办事处在电信、金融保险、政府、部队等行业拥有广泛的用户群,Oracle主要数据库产品,数据服务器产品(RDBMS)应用服务器产品(iAS)开发工具产品 Designer/Develop/programer/Jdeveloper决策支持产品(Express/Discover)应用软件(人事、财务、制造业等)其他产品(Video/Mail/Message/OEM),Oracle Internet Platform,Tools,Enterprise Manager,Applications,Oracle8i,Oracle InternetApplicationServer,RDBMS产品,可选件Standard Management PackJserverInterMedia,内含选项 Options64 Bit VLMBasic ReplicationDistributed OptionStar QueriesNet8 ObjectODBC DriverEnterprise ManagerNLS SupportExternal ProceduresPL/SQL Stored Procedures,Oracle标准版数据库-中小企业的最佳选择 数据库服务器产品-Oracle8i,8,Oracle8i 企业版的功能特性,数据库的可选件Partition OptionParallel Server OptionAdvanced SecuritySpatialVisual Information RetrievalWebDB,个人用户开发人员的最佳选择 Oracle8i Personal Edition,定位于个人用户及开发人员运行于 Desktop 平台Windows95/98/NT等可伸缩性与Oracle8i完全兼容与Oracle8i进行数据复制应用可平滑移植支持远程连接便于安装、管理,Oracle Lite DBMS:Internet 计算的移动数据库,50-750 Kbyte DBMS 支持PDA(WinCE,Palm,etc)DBA-free,自我性能调整,轻量,全面 面向对象数据库支持 全面 Java 支持 Web-enabled,强大,双向同步复制 支持无线 应用 全面方案的组成,Enterprise-ready,Partitioning Option,表和索引都可分区 适用于大型OLTP和数据仓库系统 分区对应用透明,Parallel Server Option,提高系统的可用性和伸缩性,ORACLE其他产品,Oracle9iAS(iAS 1.0.2),Oracle,数据管理服务,CORBA,OracleDataCache,Java StoredProcedures,EJBs,BC4J,Portal,Web 加速访问服务,non-OracleDB,建立 Web 应用,开发采用 Java,PERL,PL/SQL,Oracle FormsIBM 和 BEA只侧重点在Java,MSNT 只有 VBOracle提供最好的Java集成,Forms,Internet 外部用户,Intranet内部用户,PL/SQL,XML/XSL,Perl Scripting,Servlet/JSP,CORBA,EJB/BC4J,与企业后端系统的有效连接,9iAS 可以连接任何的企业后端系统任何企业应用,任何主机平台,任何非Oracle数据库IBM 只连接他的 DB/2数据库和自己的主机Microsoft 只连接 SQL-Server和 Oracle,加速访问能力-应用缓存Web Caching,Oracle9i AS,Oracle9i AS,Oracle9i AS,每个公司都希望自己的每一个站点运行都很快Web Cache提供的应用页面缓存技术比传统方式的访问至少快了3倍支持更多的用户,更快的访问,并使用更少的web服务器缓存静态和动态页面具有峰值保护和负载均衡能力,保证高可靠性,Web Cache(pre-cached pages),Oracle 应用开发工具-灵活多样的选择,模 型 驱 动 开 发高 级 语 言 编 程Java 编 程Portal 开 发,Oracle应用系统软件业务,FY2000 E-Business Suite(EB/SCM/ERP/CRM)许可证营业额达33 亿美元是北美制造业第一大 ERP公司全球 8000+位客戶,其中中国有200+位支持 99个国家,29 种語言1997年通过中国财政部门评审世界专业媒体评选Managing Automation-ERP Product of the YearIntelligent Enterprise-Readers ChoiceInformationWeek-night Ridder#1 IT Company,Oracle关系数据库体 系 构 架,Database,Oracle构架,Instance,SGA,Redo logbuffer,Data buffercache,PMON,DBW0,SMON,LGWR,CKPT,Others,Userprocess,Serverprocess,PGA,Control files,Data files,Redo logfiles,Archived log files,Parameterfile,Passwordfile,Oracle数据库文件,Passwordfile,Parameterfile,Archivedlog files,Control files,Data files,Redo logfiles,Database,其他关键物理结构,Database,Passwordfile,Parameterfile,Archivedlog files,Oracle实例,后台进程,Oracle实例:是访问Oracle数据库的途径通常是一个数据库对应一个实例,内存结构,Instance,SGA,PMON,DBW0,SMON,LGWR,CKPT,Others,执行SQL语句,连接到一个实例的方法:通过用户进程直接连接通过应用服务器进程连接Oracle服务进程类型和数量与要执行的SQL语句有关执行结果返回的行数DML语句日志的变化大小是否保证事务是可恢复的一些Oracle服务进程不会参与SQL语句的处理,连接Oracle实例,Oracle server,Server,User,Server,Application server,Browser,执行查询,分析:搜寻同样的SQL语句检查语法是否正确、对象名称是否存在以及是否有权限访问锁住在分析阶段使用的对象生成和存储执行计划执行:确定选择的行提取:把数据行返回给用户进程,共享池,库缓存区(library cache)存储SQL语句、分析代码和执行计划字典缓存区(data dictionary cache)存储表、列和其他对象的定义和权限大小由SHARED_POOL_SIZE参数确定,Shared pool,Datadictionarycache,Librarycache,数据块缓存区,存储最近被使用到的数据块每个缓存区大小由DB_BLOCK_SIZE参数确定缓存区数量由DB_BLOCK_BUFFERS参数确定,Data buffercache,程序全局区,不共享只有服务进程可以写入包含:排序区会话信息游标状态堆栈空间,重做日志缓存区,大小由LOG_BUFFER参数确定 记录实例对数据进行的修改用于前滚操作循环使用,Redo logbuffer,回滚段,DML语句,旧的数据镜像,新的数据镜像,回滚段,数据表,Database,Instance,提交(COMMIT),1,2,3,4,Userprocess,Serverprocess,Control files,Data files,Redo logfiles,日志写入进程(LGWR),LGWR写发生在:Commit命令当有1/3重做缓存区写满日志时当有1M的重做内容在DBW0写入数据文件前,Database,Instance,LGWR,Control files,Data files,Redo logfiles,其他实例进程:,其他必要的进程:数据库写入进程(DBW0)进程监控进程(PMON)系统监控进程(SMON)检查点进程(CKPT)归档进程(ARC0)在成品数据库中经常出现,Database,Control files,Data files,Redo logfiles,数据库写入进程(DBW0),DBW0写发生在:有太多的修改数据缓存空的数据缓存太少检测点出现,Instance,DBW0,SMON:系统监控进程,自动进行实例恢复前滚记录在重做日志的数据修改打开数据库供用户使用回滚未提交的事务合并自由空间回收临时段,PMON:进程监控进程,清除失败的用户进程:回滚事务释放锁资源释放其他资源,归档,数据库归档模式当发生磁盘失效时不需要做恢复操作的数据库使用非归档模式成品数据库使用归档模式ARC0进程自动归档联机重做日志保存所有对数据库做的修改,Database,Logical,Physical,Tablespace,Data file,OS block,Oracle block,Segment,Extent,Oracle存储结构,各种类型的段(一),表,表分区,索引,索引组织表,回滚段,各种类型的段(二),LOB索引,LOB段,Bootstrapsegment,嵌套表段,索引分区,临时段,存储子句优先级,Oracle default,Tablespace,Segment,盘区的分配与释放,当段在如下情况时分配盘区:创建扩展修改当段在如下情况时释放盘区:删除修改截断自动分配大小(只有回滚段),使用和空闲的盘区,数据文件,空闲盘区,已使用的盘区,文件头,数据库块,I/O的最小单元有一块或多块OS块组成由DB_BLOCK_SIZE参数设定在数据库创建时设定,数据库块组成,Header,Free space,Data,块空间利用情况参数,INITRANSMAXTRANS,PCTFREEPCTUSED,块空间的使用,Inserts,Inserts,Inserts,Inserts,1,2,3,4,PCTFREE=20PCTUSED=40,80%,80%,40%,数据字典视图,TablespacesDBA_TABLESPACES,SegmentsDBA_SEGMENTS,Data filesDBA_DATA_FILES,Free extentsDBA_FREE_SPACE,Used extentsDBA_EXTENTS,查询DBA_SEGMENTS,常用信息OWNERSEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME大小EXTENTSBLOCKSBYTES,存储字句设定INITIAL_EXTENTNEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE其他信息LocationTuning,查询DBA_EXTENTS,鉴别OWNERSEGMENT_NAMEEXTENT_ID大小BLOCKSBYTES,位置TABLESPACE_NAMERELATIVE_FNOFILE_IDBLOCK_ID,查询DBA_FREE_SPACE,位置TABLESPACE_NAME RELATIVE_FNO FILE_ID BLOCK_ID 大小BYTESBLOCKS,各种表空间的碎片,TablespaceSYSTEMTOOLSDATAnINDEXnRBSnTEMPn,FragmentationZeroVery lowLowLowHighVery high*,UsageData dictionaryApplicationsData segmentsIndex segmentsRollback segmentsTemporary segments,*是永久(PERMANENT)表空间,数据库管理,OPEN,MOUNT,NOMOUNT,SHUTDOWN,打开在控制文件中描叙的所有文件,打开控制文件,启动实例,启动和关闭数据库,启动数据库,关闭数据库,启动数据库命令,STARTUP nomount PFILE=/DISK1/initU15.ora;,启动数据库,把数据库从nomount状态改变到mount状态,ALTER DATABASE database MOUNT;,把数据库打开到只读状态,ALTER DATABASE database OPEN READ ONLY;,以只读方式打开数据库,任何数据库都可以以只读方式打开以只读方式打开的数据库可以:执行查询使用本地管理表空间进行磁盘排序操作可以使表空间的数据文件online或offline可以对offline的数据文件和表空间进行恢复操作,Axxxx,Txxoo,Ixxxo,Shutdown Mode Allow new connectionsWait until current sessions end Wait until current transactions endForce a checkpoint and close files,Nxooo,Shutdown mode:A AbortI ImmediateT TransactionalN Normal,关闭数据库选项,YES,NO,xo,不同关闭数据库的方式,Transferof Funds,Remove fundsfrom old account,Commit,Log out,Check accountbalances,Insert newfunds,ShutdownNormal,ShutdownImmediate,ShutdownTransactional,Databasedown,Databasedown,Databasedown,动态性能视图,SGA,V$PARAMETERV$SGAV$OPTIONV$PROCESSV$SESSION V$VERSIONV$INSTANCE,Control file,V$THREADV$CONTROLFILE V$DATABASEV$DATAFILEV$DATAFILE_HEADER V$LOGFILE,动态改变参数,ALTER SESSION SET SQL_TRACE=true;,ALTER SYSTEM SET TIMED_STATISTICS=true;,ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;,一些初始化参数可以在数据库运行阶段动态修改,终止用户会话,SELECT sid,serial#FROM v$session WHERE username=SCOTT;,ALTER SYSTEM KILL SESSION 7,15;,通过V$SESSION动态性能试图可以确定要终止的用户会话:,通过执行ALTER SYSTEM命令终止会话:,使用Database Configuration Assistant创建数据库,选择创建数据库方式,预定义的数据库类型,完成数据库创建,使用Export工具,$exp scott/tiger tables=(dept,emp)file=emp.dmp log=exp.log compress=n direct=y,DEPT and EMP tables,emp.dmp,Export,使用Import工具,Import,emp.dmp,$imp scott/tiger tables=(dept,emp)file=emp.dmp log=imp.log ignore=y,imp.log,Database,OEM控制台实例管理,OEM控制台会话管理,OEM控制台表空间管理,OEM控制台数据文件管理,OEM控制台用户管理,OEM控制台角色管理,OEM控制台表管理,OEM控制台视图管理,数据库性能调整,性能调整,谁来调整?应用程序的设计者 应用程序的开发者 数据库管理员 系统管理员 为什么要调整 怎样调整,调整目标,数据库的响应时间 数据库的高可用性 数据库的命中率 内存利用率 访问最少的数据块 内存中cache的数据块 共享的程序代码 尽可能快的读写数据 保证用户不需等待资源,调整步骤,1.对设计进行调整2.对应用进行调整3.对内存进行调整4.对磁盘I/O进行调整5.调整减少资源冲突6.对操作系统进行调整,诊断信息,Trace文件:警告日志文件 后台进程的trace文件 用户的trace文件,警告日志文件,警告日志文件由一系列按时间排列的信息和错误组成 检查警告日志文件可以:发现oracle内部错误(ORA-600)和数据库块错误 观察数据库操作 查看非缺省的初始化参数 定期清除警告日志文件,警告日志文件,Userprocess,Serverprocess,BACKGROUND_DUMP_DEST=$ORACLE_HOME/rdbms/log,Alert log file,Instance,SGA,Shared pool,用户跟踪文件,启动或停止会话级或实例级服务器跟踪进程:ALTER SESSION命令SET_SQL_TRACE_IN_SESSION过程 初始化参数SQL_TRACE用户跟踪文件包含被跟踪的会话的SQL语句的统计信息在做数据库调整时用户的跟踪文件是很有用的,用户跟踪文件,Userprocess,Serverprocess,存放在参数USER_DUMP_DEST指定的目录下,Instance,SGA,Shared pool,视图、包和工具,动态故障诊断、性能和数据字典视图 V$xxx动态故障诊断和 性能视图 DBA_ xxx 数据字典视图 UTLBSTAT.SQL 和UTLESTAT.SQL 脚本 Oracle等待事件 企业管理事件服务 Oracle诊断和调整工具,数据字典和专用视图,在运行ANALYZE命令 后数据字典和专用试图存储了有用的统计信息:DBA_TABLES,DBA_TAB_COLUMNS DBA_CLUSTERS DBA_INDEXES,INDEX_STATS INDEX_HISTOGRAM,DBA_HISTOGRAMS这些统计信息是静态的,在再次运行ANALYZE命令之前是不会改变的,动态故障诊断和性能视图,V$视图 是基于X$表的视图 使用V$FIXED_TABLE查看 X$表 通常不会直接查询 动态和连续地变化 命名含义不明确在数据库启动时被生成,在数据库关闭时被清除,故障诊断和调整,Instance/DatabaseV$DATABASE TV$INSTANCE TV$OPTION TV$PARAMETER T/P V$BACKUP TV$PX_PROCESS_SYSSTAT T/PV$PROCESS TV$WAITSTAT T/PV$SYSTEM_EVENT T/P,MemoryV$BUFFER_POOL_STATISTICS T/PV$DB_OBJECT_CACHE TV$LIBRARYCACHE PV$ROWCACHE PV$SYSSTAT T/P V$SGASTAT P,DiskV$DATAFILE T/PV$FILESTAT T/PV$LOG TV$LOG_HISTORY TV$DBFILE T/PV$TEMPFILE PV$TEMPSTAT P,User/SessionV$LOCK PV$OPEN_CURSOR TV$PROCESS TV$SORT_USAGE T/PV$SESSION T/PV$SESSTAT T/PV$TRANSACTION TV$SESSION_EVENT T/PV$SESSION_WAIT T/PV$PX_SESSTAT PV$PX_SESSION PV$SESSION_OBJECT_CACHE P,ContentionV$LOCK T/PV$ROLLNAME T/PV$ROLLSTAT T/PV$WAITSTAT T/PV$LATCH T/P,系统级统计信息,会话级统计信息,T 故障诊断T/P故障诊断/性能调整,收集系统的统计信息,V$STATNAME statistic#name class,V$SYSSTAT statistic#name class value,V$SGASTAT pool name bytes,V$EVENT_NAME event#name parameter1 parameter2 parameter3,V$SYSTEM_EVENT event total_waits total_timeouts time_waited average_wait,收集会话的统计信息,V$STATNAME statistic#name class,V$SESSTAT sid statistic#value,V$SESSION_WAIT sid seq#event p1/2/3text wait_time seconds_in_wait state,V$SESSION sid serial#username osuser,V$SESSION_EVENT sid event total_waits total_timeouts time_waited average_wait max_wait,V$EVENT_NAME event#name parameter1 parameter2 parameter3,使用UTLBSTAT和UTLESTAT,收集数据库性能数据 产生报表 用SYSDBA角色在SQL*Plus运行 设置TIMED_STATISTICS参数为TRUE,收集统计信息,utlbstat.sql,Examines the instance,Stores statistics in BEGIN tables,utlestat.sql,Examines the tables,Produces a report,report.txt,Stores statistics in END tables,统计信息报告,Library cache统计信息 系统统计信息 等待事件统计信息 Latch统计信息 回滚段竞争统计信息 Buffer等待信息 数据字典命中统计信息 每个数据文件和表空间I/O统计信息,Library Cache 统计信息,SQL Rem Select Library cache statistics.The pinhitrate should be high.SQL select namespace library,gets,3 round(decode(gethits,0,1,gethits)/decode(gets,0,1,gets),3)4 gethitratio,pins,6 round(decode(pinhits,0,1,pinhits)/decode(pins,0,1,pins),3)7 pinhitratio,reloads,invalidations 9 from stats$lib;LIBRARY GETS GETHITRATI PINS PINHITRATI RELOADSINVALIDAT-BODY 105 1 105 1 0 0CLUSTER 10 1 9 1 0 0INDEX 0 1 0 1 0 0OBJE 0 1 0 1 0 0PIPE 0 1 0 1 0 0SQL AREA 2036.987 12822.982 95 0TABLE/PROCED 553.98 3714.969 81 0TRIGGER 917 1 917.997 3 08 rows selected.,I/O统计信息,SQL Rem Select Library cache statistics.The pinhitrate should be high.SQL select namespace library,gets,3 round(decode(gethits,0,1,gethits)/decode(gets,0,1,gets),3)4 gethitratio,pins,6 round(decode(pinhits,0,1,pinhits)/decode(pins,0,1,pins),3)7 pinhitratio,reloads,invalidations 9 from stats$lib;LIBRARY GETS GETHITRATI PINS PINHITRATI RELOADSINVALIDAT-BODY 105 1 105 1 0 0CLUSTER 10 1 9 1 0 0INDEX 0 1 0 1 0 0OBJE 0 1 0 1 0 0PIPE 0 1 0 1 0 0SQL AREA 2036.987 12822.982 95 0TABLE/PROCED 553.98 3714.969 81 0TRIGGER 917 1 917.997 3 08 rows selected.,Oracle等待事件,V$EVENT_NAME视图包含所有事件,包括字段EVENT#、NAME、PARAMETER1、PARAMETER2 和 PARAMETER3,事件统计视图,V$SYSTEM_EVENT:所有会话的等待事件 V$SESSION_EVENT:每个会话的等待事件 V$SESSION_WAIT:当前活动会话等待的事件,V$SYSTEM_EVENT视图,V$SESSION_EVENT视图,SID EVENT TOTAL_WAITS AVERAGE_WAIT-10 buffer busy waits 12 5 10 db file sequential read 129 0 10 file open 1 0 10 SQL*Net message to client 77 0 10 SQL*Net more data to client 2 0 10 SQL*Net message from client 76 0,SQL select sid,event,total_waits,average_wait 2 from v$session_event where sid=10;,V$SESSION_WAIT视图,SID SEQ#EVENTWAITSTATETIME-11284pmon timer0WAITING21697rdbms ipc message0WAITING3183rdbms ipc message0WAITING44688rdbms ipc message0WAITING5114smon timer0WAITING614SQL*Net message from client-1WAITEDSHORTTIME,SQL SELECT sid,seq#,event,wait_time,state 2FROM v$session_wait;,调整字典缓存区的工具,V$LIBRARYCACHE,Shared pool,Library cacheShared SQL and PL/SQL,V$SQLAREA,V$SQLTEXT,V$DB_OBJECT_CACHE,report.txt,V$SGASTAT,SHARED_POOL_SIZEOPEN_CURSORSSESSION_CACHED_CURSORSCURSOR_SPACE_FOR_TIME,Data dictionarycache,UGA,设置字典缓存区大小,设置存储包、视图以及表等对象必须的全局内存空间设置存储常用SQL语句的内存空间为了避免内存空间碎片应预留大内存保存经常使用的对象把大的匿名块转换成小的调用包函数的匿名块,调整目标和技巧,调整目标:服务进程在内存中能找到数据对于OLTP系统有90%命中率调整技巧:增加数据块缓存区大小使用多个缓存区把经常访问的小表缓存到内存另外设置排序和并行读缓存区,SQL UPDATE emp 2 SET sal=sal*1.1 3 WHERE empno=7369;,LGWR,ARCH,Archivedlog files,SQL DELETE FROM s_emp 2 WHERE empno=7400;,Serverprocess,Serverprocess,重做日志缓存区,减少重做操作,更少的重做操作产生更少的重做日志内容,也就需要更小的重做日志缓存区减少重做操作的方法:不使用归档模式的直接装载数据在归档模式下使用NOLOGGING模式直接装载数据使用NOLOGGING模式直接装载插入数据在使用SQL语句是使用NOLOGGING模式,调整排序操作,尽可能的避免排序操作进可能保证排序操作在内存中完成,减少交换和换页操作分配适当的临时空间,减少空间申请操作如何避免排序操作在创建索引时使用NOSORT参数使用UNION ALL操作代替UNION操作在做表联接的时候使用索引为在ORDER BY子句中引用的列创建索引为列做分析在为大对象做分析时使用ESTIMATE参数而不是 COMPUTE参数,调整回滚段,事务在访问回滚段的时候不需要等待在正常的运行阶段回滚段不需要扩展用户和包应该尽量少使用回滚段应该没有事务出现回滚段不够错误数据读取者应该总是能够查询到读一致镜像数据,9i产品新特性,高可用性,零数据丢失灾难保护在线数据演化精确的数据库修复自助的错误更正,实现连续的数据可用性,Oracle9i 提供持续的数据可用性-存储数据最安全的地方,计划外宕机,系统故障,数据故障和灾难,系统维护,数据库维护,人为错误,Data Guard完全没有数据丢失的解决方案,Flashback Query/Log Miner访问过去数据的时间机器,Dynamic Reconfiguration调整系统性能而无须中断,Online Redefinition在线对表进行重组和定义,Real Application Clusters30秒内完成切换,计划宕机,Oracle9i 数据卫士Data Guard,日志接收,日志应用,Broker 管理接口,备用系统,可选延迟,StandbyLogs,日志发送,主系统,日志,Oracle9i Data Guard 数据卫士-灾难保护,零数据丢失保护 Zero Loss Mode通过同步/非同步的日志传送 减低人为错误通过 延迟传送方式 Delayed ModeGraceful Switch Over主系统和备用系统可交替使用Data Guard Manager OEM 图形工具设置,监控及管理,备用系统,Delayed andZero Loss Modes(Both),主系统,在线重新定义-减少计划宕机时间,在线 schema 重新定义增加,修改,删除表字段 完全在线索引操作 创建,重建 在线表重组 在线结构分析验证无中断的更新查询,Oracle9i 闪回查询-纠正人为错误,允许查看任意时间点的数据 简单的SQL 接口方便确定过去的变化 系统管理undo信息用户或应用级控制访问,解决 人为错误 的挑战,Fast-Start 故障恢复,Oracle9i 自动恢复数据数据库管理员 可以设置恢复时间限制 Oracle9i 大大减少恢复时间 减少延缓的回滚操作影响,案例:高OLTP 业务和批量操作的恢复时间,Oracle9i Log Miner-取消任意的变化,查询日志内容 SQL 接口支持主要数据类型 按值查询 GUI和命令行接口,可伸缩性和性能,通过集群技术提高事务处理的吞吐量可伸缩的会话状态管理细致的自动的资源管理对于电子商务起关键作用的优化特性,支持千万级的Internet用户,Oracle9i Real Application Clusters-线性扩展,完全的内存熔合 支持 读/读,读/写,写/写方式的资源争夺 在集群环境,任何应用可随意扩展 应用系统可以不必考虑集群是否存在 线性的扩展-增加节点,增加性能,Oracle9i 真正应用集群服务器,随节点增减而伸缩自如 增加系统的容错性任何应用程序不需修改即可运行每当增加节点集群环境变得更可靠只有所有节点都宕了,整个系统才可能停止,所有数据 A-Z,应用程序,所有数据 A-Z,应用程序,1026,1900,3648,0,500,1000,1500,2000,2500,3000,3500,4000,单节点,双节点,四节点,用户数,Oracle Applications Scalability,Near-Linear Scalability,Real Application Clusters使Oracle 应用软件获得近线性的扩展性,提高关键系统的性能,基于CPU和内存的查询优化,而不仅仅基于硬盘I/O提高分布式查询的优化PL/SQL 本地编译,缓存,回滚段,共享池,个人内存,Oracle9i 服务器更易于管理智能,动态,自我优化(一),Oracle9i 服务器更易于管理智能,动态,自我优化(二),备份与恢复可重新开始的备份与恢复备份保持策略自描述备份文件基于快速启动的恢复可恢复语句Oracle 文件管理(Managed Files),常见问题Q&A,不同版本数据库数据倒出/倒入(一),问题描述不同版本的 Oracle 数据库之间的数据交换,经常用到不同版本的 exp/imp 工具,采用正确的版本的工具做 exp/imp 才能成功的完成数据交换/转移解决方法定义 源数据库 数据倒出的数据库目标数据库 数据倒入的数据库原则使用源/目标数据库中版本较低的 exp 工具进行倒出使用目标数据库相同版本的 imp 工具进行倒入,倒出时需要在数据源数据库运行的脚本源数据库 目标数据库 运行脚本名称8.x.x 7.x.x catexp7.sql7.x.x 6.x.x catexp6.sq例子From 7.3.3 to 8.1.6 exp7.3.3 imp8.1.6From 8.1.5 to 8.0.6 exp8.0.6 imp8.0.6From 8.1.7 to 8.1.6 exp8.1.6 imp8.1.6From 8.1.7 to 7.3.4 exp7.3.4 imp7.3.4运行 catexp7.sql,不同版本数据库数据倒出/倒入(二),如何将数据 exp 到多个数据文件,例子exp demo/demo file=(orders_1.dmp,orders_2.dmp,orders_3.dmp)log=orders.log filesize=1g tables=orders注意点imp 例子imp demo/demo file=orders_1.dmp tables=oraders log=oraders.logexp时提供文件名的数量,如何倒出某个表的部分数据,适用情况部分数据的转移备份符合某种条件的数据语法:Query=“一个 where 条件”例子$exp scott/tiger query=”where ename like KING%”tables=emp file=exp.dmpC:exp scott/tiger query=“”where ename like KING%”tables=emp file=exp.dmp参数文件中Query=“where ename like KING%”,如何提高Import/Export性能,