Oracle11g新特性及常用维护.docx
《Oracle11g新特性及常用维护.docx》由会员分享,可在线阅读,更多相关《Oracle11g新特性及常用维护.docx(75页珍藏版)》请在冰豆网上搜索。
Oracle11g新特性及常用维护
Oracle11g新特性及
常用维护工具详解V1.0
目录
第1章ORACLE11g体系结构介绍1
1.1ORACLE11g的后台进程介绍1
1.2ORACLE11g的内存结构2
第2章ORACLE11g新特性及新功能使用4
2.1Oracle11g自动共享内存管理(ASMM)4
2.1.1SGA自动调整原理4
2.1.2自动调整参数构成4
2.1.3相关视图5
2.1.4如何设置使用自动内存管理5
2.2Oracle11g日志管理6
2.2.1Oracle11g日志概述6
2.2.2Oracle11g日志路径6
2.2.3ADRCommandInterpreter(ADRCI)介绍及使用:
7
2.3Oracle11g逻辑备份和恢复8
2.3.1DataPump导出8
2.3.2DataPump导入11
2.4Oracle11gFlashback特性12
2.4.1闪回版本12
2.4.2闪回事务13
2.4.3闪回丢弃13
2.4.4闪回表15
2.4.5闪回数据库16
2.4.6闪回数据存档17
2.5Oracle11gASM24
2.5.1ASM概述24
2.5.2ASM实例24
2.5.3关于ASM文件26
2.5.4ASM磁盘组27
2.5.5ASM局限性27
2.5.6使用SQL*Plus配置ASM28
2.6Oracle11gAWR和ADDM29
2.6.1Oracle11gAWR概述29
2.6.2使用AWR进行信息采集需要的空间占用30
2.6.3Snapshots(快照)30
2.6.4基线管理31
2.6.5基线模板管理32
2.6.6AWR数据传递33
2.6.7AWR报表生成35
2.6.8ADDM(AutomaticDatabaseDiagnosticMonitor)概述37
2.6.9设置初始化参数启用ADDM38
2.6.10ADDM结果分析38
2.6.11使用ADDM诊断数据库性能问题39
2.7Oracle11g强大的企业管理器功能(OEM)41
2.7.1使用EMCA工具配置数据库控制41
2.7.2使用EMCA配置RAC数据库控制42
2.7.3使用emctl命令启动、停止42
2.7.4OEM使用及功能介绍43
第3章ORACLE11g使用过程中常见问题53
3.1Oracle11g默认安装使用保留的11g增强安全设置(包括审记和默认的口令概要文件53
3.1.1oracle数据库时提示“ORA-28002:
7天之后口令将过期”53
3.1.2Oracle11g版本中密码大小写敏感54
3.1.3数据库alert日志中报ORA-1654:
unabletoextendindexSYS.I_AUD1......错误54
3.2oracle11GSYSAUX空间严重不足,alter日志报ORA-1683和ORA-1688错55
3.3ORACLE11g如何启用客户端web管理57
3.4解决ORACLE11GRACVIP资源切换时间过长58
3.5如何卸载OracleClusterware58
第4章常用命令说明62
4.1附一:
expdp62
4.2附二:
Impdp64
4.3附三:
adrci66
4.4附四 :
emctl68
4.5附五:
asmcmd68
关键词:
Oracle11gASMMFlashbackASMAWRADDMOEMexpdpimpdpadrciemctlADR新特性
摘要:
本文主要针对Oracle11g常用新特性、新功能(主要包括Oracle11g的体系结构、自动共享内存管理、日志管理、逻辑备份和恢复、Flashback特性、ASM、AWR和ADDM、强大的企业管理器功能(OEM))进行介绍,使具有Oracle9i基础的工程师能在较短的时间内掌握Oracle11g的新功能。
缩略语清单:
ASMM:
AutoSharedMemoryManagement
ASM:
AutomaticStorageManagement
AWR:
AutomaticWorkloadRepository
ADDM:
AutomaticDatabaseDiagnosticMonitor
OEM:
OracleEnterpriseManagement
ADR:
AutomaticDiagnosticRepository
参考资料清单:
《Oracle11g维护培训课件.ppt》
S
M
《oracleonlinedocument(11g)》
第1章ORACLE11g体系结构介绍
1.1ORACLE11g的后台进程介绍
ORACLE11g的后台进程如下图:
上面的三个箭头为instance与RECO,PMON,SMON三个进程之间的交互;下面主要包括与buffercache交互的DBW0进程,该进程同时也和数据文件交互;与redologbuffer交互的LGWR进程,该进程同时也与redologfiles交互。
上面的插图也包括其他进程,例如ARC0,该进程主要完成redolog的归档;CKPT是指数据DBWx进程在从dbbuffer写入datafile时,CKPT进程完成数据文件和控制文件标记更新,以保证数据文件和控制文件的一致性。
另外在11g中增加了如下进程:
∙ASMB进程在使用了ASM的数据库实例中运行。
它负责与管理存储的ASM实例通信、向ASM实例提供更新的统计信息,并向ASM实例提供一个“心跳”,让ASM实例知道它还活着,而且仍在运行;
∙RBAL重新平衡(Rebalance,RBAL)进程,RBAL进程也在使用了ASM的数据库实例中运行。
向ASM磁盘组增加或去除磁盘时,RBAL进程负责处理重新平衡请求(即重新分布负载的请求);
∙MMAN内存管理器(memorymanager,MMAN)进程,在启用了自动设置SGA大小后,完成内存参数的自动调节。
∙MMNL可管理性监视器灯(manageabilitymonitorlight,MMNL)完成频繁的与权重相关的任务,包括历史会话获取及度量计算。
∙MMON可管理性监视器(manageabilitymonitor,MMON)完成各种后台管理任务,例如当某一个给定的参数值超过了阀值就给出内部告警。
在RAC数据库中,主要包括如下进程:
∙LMON(GlobalEnqueueServiceMonitor)LMON进程通过cluster监控全局排队等待和资源并且完成排队等待恢复工作。
∙LMD(GlobalEnqueueServiceDaemon)LMD进程管理每个instance内部引入的远端资源请求。
∙LMS(GlobalCacheServiceProcess)LMS进程通过在GRD中记录信息来维护数据文件状态和每个缓冲块的信息;该进程同时也控制远端instance的消息流和管理全局的数据块访问和数据块影象在不同的实例buffercache中迁移(这个也即我们通常所说的cachefusion特性)。
1.2ORACLE11g的内存结构
ORACLE11g的内存结构如下图:
中间的圆角矩形框代表SGA,主要包括,theJavapool,thebuffercache,theredobuffer,thesharedpool,theStreamspool,andthelargepool,OtherComponents(主要包括:
Keepbuffercache,Recyclebuffercache,nKBlockSizebuffercache);在圆角矩形框之外主要包括:
serverprocesses,backgroundprocesses,和Oracleprocesses,每一个进程都有自己的PGA。
第2章
ORACLE11g新特性及新功能使用
2.1Oracle11g自动共享内存管理(ASMM)
2.1.1SGA自动调整原理
AutoMemoryManagement是Oracle10g提出来的一个新特性,在最新的Oracle11g数据库中又得到了进一步的发展。
Oracle新引入了一个名为MMAN(MemoryManager)的后台进程,每隔很短的一段时间,MMAN进程就会启动,然后去询问一下Oracle提供的各个内存组件顾问,顾问则将这5个可以自动调整的内存池的、建议的大小尺寸,返回给MMAN。
于是,MMAN进程就会根据该返回的值,来设置各个内存池,建议使用spfile,使用了spfile,还会将这些顾问得出的建议值写入spfile里,下次启动实例时,就可以直接把顾问得出的建议值拿来作为启动内存池的依据了。
2.1.2自动调整参数构成
通过使用自动内存管理,Oracle数据库中的PGA和SGA内存之间可以互相转换,根据当前的工作负载来自动设定Oracle内存区域中的PGA和SGA的大小。
这种间接的内存转换依赖于操作系统的共享内存的释放机制来获得内部实例的调优。
目前这种技术可以应用于Linux,Solaris,HPUX,AIX和Windows等操作系统上。
在Oracle10g的数据库中,只有SHARED_POOL_SIZE、DB_CACHE_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、STREAMS_POOL_SIZE五个SGA组件可以被自动调整,其中PGA的最大值由初始化参数PGA_AGGREGATE_TARGET决定,SGA的最大值由初始化参数SGA_TARGET决定。
在Oracle11g数据库中,使用自动内存管理特性不再需要设定参数PGA_AGGREGATE_TARGET和SGA_TARGET,因为这两个参数都已经被修改成自动调优的,除非想指定PGA和SGA的最小值才需要设定这两个参数。
在Oracle11g数据库中,则需要设置一个叫做MEMORY_TARGET的初始化参数,这个参数是指整个Oracle实例所能使用的内存大小,包括PGA和SGA的整体大小,在MEMORY_TARGET的内存大小之内,PGA和SGA所用的内存可以根据当前负载情况自动相互转换。
如果当初始设定的MEMORY_TARGET的内存不够当前数据库使用的时候,Oracle11g还提供了另外一个初始化参数MEMORY_MAX_TARGET,当原始设定的内存不够使用的时候,可以手工来动态调节MEMORY_TARGET的大小,但是不允许超过MEMORY_MAX_TARGET的值。
下面这张图简单明了的描述出了Oracle11g数据库内存大小的设定参数。
2.1.3相关视图
此外,Oracle11g数据库还提供了几个用于监控自动内存管理的视图:
V$MEMORY_DYNAMIC_COMPONENTS:
描述当前所有内存组件的状态
V$MEMORY_RESIZE_OPS:
循环记录最后800次的SGA大小调整请求
X$KMGSTFR:
循环记录最后800次的SGA的转换地址
_MEMORY_MANAGEMENT_TRACING=23:
对于所有的内存转换调整行为均记录保存为跟踪文件
说明:
如果LOCK_SGA参数为TRUE,则不能使用自动存储管理。
2.1.4如何设置使用自动内存管理
ALTERSYSTEMSETMEMORY_MAX_TARGET=nMSCOPE=SPFILE;
ALTERSYSTEMSETMEMORY_TARGET=nM;
ALTERSYSTEMSETSGA_TARGET=0;
ALTERSYSTEMSETPGA_AGGREGATE_TARGET=0;
说明:
在设置自动内存管理时,如果db_cache_size、shared_pool_size等不为0,则表示该参数的最小值。
2.2Oracle11g日志管理
2.2.1Oracle11g日志概述
Oracle11g日志文件有两种格式:
1)与以前一样为文本格式;
2)为xml格式,使用adrci查看。
警告日志文件:
警告日志文件记录了数据库运行中的一些操作命令和主要事件结果
●它被用来诊断日常数据库运行错误信息.
●每条都对应有时间戳信息.
后台跟踪文件:
后台跟踪文件记录有被后台进程检测到的错误信息.
●当后台进程遇到错误时才被创建
用户跟踪文件:
用户跟踪文件当用户进程通过服务器进程连接到Oracle服务器时产生。
●一个用户跟踪文件包含跟踪到的SQL执行语句或用户通讯错误信息.
●当用户会话过程中遇到错误信息时产生.
●它的大小定义在MAX_DUMP_FILE_SIZE中,缺省为10M.
2.2.2Oracle11g日志路径
可以通过查询V$DIAG_INFO视图获取相关日志路径:
NAMEVALUE
------------------------------------------------------------------
DiagEnabledTRUE
ADRBasef:
\app\a37403
ADRHomef:
\app\a37403\diag\rdbms\ora11g\ora11g
DiagTracef:
\app\a37403\diag\rdbms\ora11g\ora11g\trace
DiagAlertf:
\app\a37403\diag\rdbms\ora11g\ora11g\alert
DiagIncidentf:
\app\a37403\diag\rdbms\ora11g\ora11g\incident
DiagCdumpf:
\app\a37403\diag\rdbms\ora11g\ora11g\cdump
HealthMonitorf:
\app\a37403\diag\rdbms\ora11g\ora11g\hm
DefaultTraceFilef:
\app\a37403\diag\rdbms\ora11g\ora11g\trace\ora11g_ora_7492.trc
ActiveProblemCount0
ActiveIncidentCount0
日志路径比较:
诊断数据
以前的位置
ADR位置
前台进程跟踪
USER_DUMP_DEST
$ADR_HOME/trace
后台进程跟踪
BACKGROUND_DUMP_DEST
$ADR_HOME/trace
预警日志数据
BACKGROUND_DUMP_DEST
$ADR_HOME/alert&trace
核心转储
CORE_DUMP_DEST
$ADR_HOME/cdump
意外事件转储
USER|BACKGROUND_DUMP_DEST
$ADR_HOME/incident/incdir_n
2.2.3ADRCommandInterpreter(ADRCI)介绍及使用:
AutomaticDiagnosticRepository(ADR):
一个存放数据库诊断日志、跟踪文件的目录,称作ADRbase,对应初始化参数DIAGNOSTIC_DEST,如果设置了ORACLE_BASE环境变量,DIAGNOSTIC_DEST等于ORACLE_BASE,如果没有设置ORACLE_BASE,则等与ORACLE_HOME/log。
ADRCICommand-LineUtility命令行工具,使用该工具查看ADR中的日志和跟踪信息,查看健康报告;还可以将相关错误日志和信息打包成zip文件,以便提供给oraclesupport分析。
2.2.3.1使用ADRCI查看Oracle数据库后台报警日志(alert_sid.log)
1)、查看完整alert信息:
adrci>>SHOWALERT
2)、查看最新alert信息:
adrci>>SHOWALERT–TAIL
3)、查看最新20条alert信息:
adrci>>SHOWALERT-TAIL20
4)、只查看600的错误
adrci>>SHOWALERT-P"MESSAGE_TEXTLIKE'%ORA-600%'"
查看ORA-错误信息
5)、用以下命令获取adrci下命令的帮助:
代码:
HELPcommand
adrci>>help show alert
2.2.3.2跟踪文件
查看跟踪文件常用的有:
1)、列出所有跟踪文件:
SHOWTRACEFILE
2)、模糊查询跟踪文件,比如某个进程的,注意这里区分大小写
SHOWTRACEFILE %mmon%
3)、可以指定某个路径SHOWTRACEFILE%mmon%-PATH/home/steve/temp
4)、象ls那样按时间排序SHOWTRACEFILE-RT
2.3Oracle11g逻辑备份和恢复
导出/导入工具集仍是跨多个平台转移数据所需劳动强度最小的首选实用工具。
导入只是将每条记录从导出转储文件中读出来,然后使用常见的INSERTINTO命令将其插入到目标表中,因此导入可能是个很慢的过程。
进入OracleDataPump,OracleDatabase11g中的导出/导入工具包的更新更快的同类工具,它被设计来成倍地加速这个过程。
DataPump反映了整个导出/导入过程的彻底革新。
它不是使用常见的SQL命令,而是应用专用API来以更快得多的速度加载和卸载数据。
导出性能比在直接模式下提高了10-15倍,导入过程性能提高了5倍。
此外,与使用导出实用工具不同,它还能够只取出特定类型的对象(如过程)。
2.3.1DataPump导出
SQL>createdirectorydump_diras‘E:
\ORA11GBAK’
SQL>grantread,writeondirectorydump_dirtoicdmain;
接下来,我们将导出数据:
expdpicdmain/icddirectory=dump_dirdumpfile=icdmain090522.dmpjob_name=ICDMAIN_EXPORT
Expdp命令的具体使用请参考附一(EXPDP说明)
注意上面的参数job_name,这是个特殊的参数,在原来的导出中没有。
所有的DataPump工作都通过作业来完成。
DataPump作业—与DBMS作业不同—只是服务器进程,它代表主进程处理数据。
主进程(称为主控制进程)通过高级队列(AQ)来协调这项工作;它通过在运行期内创建的一个特殊的表(称为主表)来实现这个目的。
在我们的例子中,如果您在expdp运行时检查用户ANANDA的模式,您将注意到一个表ICDMAIN_EXPORT的存在(对应参数job_name)。
当expdp结束时,这个表被丢弃。
导出监控
当DataPumpExport(DPE)运行时,按Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。
相反,它将显示DPE提示符(如下所示)。
进程现在被认为处于“交互式”模式:
Export>
这种方法允许在这个DPE作业上输入几条命令。
要查看概要,在提示符下使用STATUS命令:
Export>status
作业:
ICDPUB_JOB
操作:
EXPORT
模式:
SCHEMA
状态:
EXECUTING
处理的字节:
0
当前并行度:
1
作业错误计数:
0
转储文件:
E:
\ORA11GBAK\ICDPUB.DMP
写入的字节:
4,096
Worker1状态:
进程名:
DW01
状态:
EXECUTING
记住,这只是状态显示。
导出在后台工作。
要继续在屏幕上查看消息,从Export>提示符下使用命令CONTINUE_CLIENT。
并行操作
可以通过PARALLEL参数为导出使用一个以上的线程来显著地加速作业。
每个线程创建一个单独的转储文件,因此参数dumpfile应当拥有和并行度一样多的项目。
您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:
expdpicdpub/abc123directory=DPDATA1
dumpfile=expicdpub_%U.dmpparallel=4job_name=icdpub_Export
注意dumpfile参数拥有一个通配符%U,它指示文件将按需要创建,格式将为expicdpub_nn.dmp,其中nn从01开始,然后按需要向上增加。
在并行模式下,状态屏幕将显示四个工作进程。
(在默认模式下,只有一个进程是可见的。
)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。
否则,与维护DataPump作业相关的开销可能超过并行线程的效益,并因此而降低性能。
并行方式只有在表的数量多于并行值并且表很大时才是有效的。
数据库监控
可以从数据库视图获得关于运行的DataPump作业的更多信息。
监控作业的主视图是DBA_DATAPUMP_JOBS,显示在作业上有多少个工作进程(列DEGREE)在工作。
另一个重要的视图是DBA_DATAPUMP_SESSIONS,当它与上述视图和V$SESSION结合时将给出主前台进程的会话SID。
selectsid,serial#
fromv$sessions,dba_datapump_sessionsd
wheres.saddr=d.saddr;
这条指令显示前台进程的会话。
更多有用的信息可以从警报日志中获得。
当进程启动时,在警报日志中显示如下:
DM00startedwithpid=29,OSid=26928,jobICDPUB.ICDPUB_JOB
SatMay2310:
36:
582009
DM00startedwithpid=37,OSid=25968,jobICDPUB.ICDPUB_JOB
SatMay2310:
37:
012009
DW01startedwithpid=26,OSid=34624,wid=1,jobICDPUB.ICDPUB_JOB
SatMay2310:
40:
282009
它显示为数据泵操作启动的会话的PID。
您可以用以下查询找到实