Oracle基础知识Word格式文档下载.docx

上传人:b****4 文档编号:16577640 上传时间:2022-11-24 格式:DOCX 页数:11 大小:21.73KB
下载 相关 举报
Oracle基础知识Word格式文档下载.docx_第1页
第1页 / 共11页
Oracle基础知识Word格式文档下载.docx_第2页
第2页 / 共11页
Oracle基础知识Word格式文档下载.docx_第3页
第3页 / 共11页
Oracle基础知识Word格式文档下载.docx_第4页
第4页 / 共11页
Oracle基础知识Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Oracle基础知识Word格式文档下载.docx

《Oracle基础知识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Oracle基础知识Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

Oracle基础知识Word格式文档下载.docx

FixedSize 

 

2089336bytes

VariableSize 

486542984bytes

DatabaseBuffers 

570425344bytes

RedoBuffers 

6295552bytes

Databasemounted.

alterdatabaseopen;

CrashRecovery将从alterdatabaseopen开始,我们来观察其日志

==================alert.log====================

alterdatabaseopen

TueJun1418:

19:

532011

Beginningcrashrecoveryof1threads

parallelrecoverystartedwith2processes

Startedredoscan

Completedredoscan

0redoblocksread,0datablocksneedrecovery

Startedredoapplicationat

Thread1:

logseq1004,block1124,scn17136185

RecoveryofOnlineRedoLog:

Thread1Group2Seq1004Readingmem0

Mem#0:

/flashcard/oradata/G10R2/onlinelog/o1_mf_2_6v34jokt_.log

Mem#1:

/s01/flash_recovery_area/G10R2/onlinelog/o1_mf_2_6v34jotq_.log

Completedredoapplication

Completedcrashrecoveryat

logseq1004,block1124,scn17156186

0datablocksread,0datablockswritten,0redoblocksread

LGWR:

STARTINGARCHPROCESSES

ARC0:

Archivalstarted

STARTINGARCHPROCESSESCOMPLETE

ARC0startedwithpid=16,OSid=7829

Thread1advancedtologsequence1005(threadopen)

Thread1openedatlogsequence1005

Currentlog#3seq#1005mem#0:

/flashcard/oradata/G10R2/onlinelog/o1_mf_3_6v34jpmp_.log

Currentlog#3seq#1005mem#1:

/s01/flash_recovery_area/G10R2/onlinelog/o1_mf_3_6v34jpyn_.log

Successfulopenofredothread1

Becomingthe'

noFAL'

ARCH

noSRL'

BecomingtheheartbeatARCH

SMON:

enablingcacherecovery

db_recovery_file_dest_sizeof204800MBis6.81%used.Thisisa

user-specifiedlimitontheamountofspacethatwillbeusedbythis

databaseforrecovery-relatedfiles,anddoesnotreflecttheamountof

spaceavailableintheunderlyingfilesystemorASMdiskgroup.

542011

SuccessfullyonlinedUndoTablespace1.

enablingtxrecovery

DatabaseCharactersetisUTF8

OpeningwithinternalResourceManagerplan

whereNUMAPG=1,CPUs=2

replication_dependency_trackingturnedoff(noasyncmultimasterreplicationfound)

StartingbackgroundprocessQMNC

QMNCstartedwithpid=17,OSid=7831

552011

Completed:

alterdatabaseopen

注意上述单实例CrashRecovery到数据库打开的整个过程:

Beginningcrashrecoveryof1threads

Startedredoscan

Completedredoscan

Startedredoapplicationat

Completedredoapplication

Completedcrashrecoveryat

SMON:

SuccessfullyonlinedUndoTablespace1

Completed:

从上述步骤中我们可以看到三种恢复名词,即:

crashrecovery

cacherecovery

txrecovery

这和官方文档所描述的CrashRecovery概念是不一致的,我们现在来理清这几种recovery。

crashrecovery包含对redo的scan和application,显然其完成的是RollingForward前滚的工作,告警日志中出现的crashrecovery等同于官方文档中介绍的”cacherecovery”,我们可以将”Completedcrashrecovery”看做前滚完成的标志。

而txrecovery从字面就可以看出实际上是TransactionRecovery,txrecovery发生在UndoTablespaceonline之后(回滚事务的前提是Undo可用),数据完成打开操作之前(“Completed:

alterdatabaseopen”)。

注意txrecovery并不要求数据库打开前完成,仅仅是在数据库打开之前由smon启动(“SMON:

enablingtxrecovery”)。

剩下的唯一的问题是,这里的cacherecovery是什么?

显然它不是官方文档中所描述的”cacherecovery”,几乎没有任何文档介绍存在这样一个recovery操作,这也是本文重点要介绍的。

我们来看另一个演示,这个演示用以说明cacherecovery还存在于最普通的不包含CrashRecovery的数据库打开过程中:

shutdownimmediate;

Databaseclosed.

Databasedismounted.

Databasealtered.

select*fromv$version;

BANNER

----------------------------------------------------------------

OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0-64bi

PL/SQLRelease10.2.0.4.0-Production

CORE 

10.2.0.4.0 

Production

TNSforLinux:

Version10.2.0.4.0-Production

NLSRTLVersion10.2.0.4.0-Production

select*fromglobal_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

43:

522011

ARC0startedwithpid=14,OSid=8133

Currentlog#3seq#1005mem#0:

Currentlog#3seq#1005mem#1:

IncrementalcheckpointuptoRBA[0x3ed.624.0],currentlogtailatRBA[0x3ed.944.0]

QMNCstartedwithpid=15,OSid=8135

因为是cleanshutdown,所以这里不存在crashrecovery。

但这里同样出现了”SMON:

enablingcacherecovery”,可见cacherecovery是每次实例启动instancestartup必要执行的一种恢复操作。

但问题是,这个恢复操作到底针对何种对象?

实际上cacherecovery所要恢复的是rowcache,也就是我们常说的字典缓存(dictionarycache)。

关于这个结论,肯定有很多人要问我这样说的依据是什么,对应于这个”cacherecovery”的问题,我们很难从google中得到一些启示,因为它和官方文档所描述的”cacherecovery-rollingforward”存在重名的关系。

为了证明cacherecovery所恢复的是rowcache,我们需要一个实证,从正式的系统中得到验证。

要做到这一点是比较困难的,我们需要Oracle愿意把整个databaseopen的过程变成慢动作来供我们参考,验证要用到一些调试工具,例如gdb或者dbx。

我们首先将实例启动到mount状态,并对执行startup的LOCAL进程做gdb的breakpoint断点调试:

找出LOCAL进程的系统进程号SPID

selectspidfromv$process

whereaddrin(

selectpaddrfromv$session

wheresid=(selectdistinctsidfromv$mystat))

/

SPID

------------

8326

在实例startupnomount/mount后共享池的librarycache就是可用的

selectnamespacefromv$librarycachewheregets!

=0;

NAMESPACE

---------------

SQLAREA

TABLE/PROCEDURE

而rowcache则尚未被填充,因为字典缓存来源于自举对象(bootstrap$)和字典基表

selectparameter,count,getsfromv$rowcachewherecount!

norowsselected

另开一个terminal窗口,并执行对LOCAL进程8326的gdbbreakpoint调试

[oracle@rh2~]$gdb$ORACLE_HOME/bin/oracle8326

GNUgdb(GDB) 

RedHat 

EnterpriseLinux(7.0.1-23.el5)

Copyright(C)2009FreeSoftwareFoundation,Inc.

LicenseGPLv3+:

GNUGPLversion3orlater

Thisisfreesoftware:

youarefreetochangeandredistributeit.

ThereisNOWARRANTY,totheextentpermittedbylaw. 

Type"

showcopying"

and"

showwarranty"

fordetails.

ThisGDBwasconfiguredas"

x86_64-RedHat-linux-gnu"

.

Forbugreportinginstructions,pleasesee:

...

Readingsymbolsfrom/s01/db_1/bin/oracle...(nodebuggingsymbolsfound)...done.

Attachingtoprogram:

/s01/db_1/bin/oracle,process8326

Readingsymbolsfrom/s01/db_1/lib/libskgxp10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libskgxp10.so

Readingsymbolsfrom/s01/db_1/lib/libhasgen10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libhasgen10.so

Readingsymbolsfrom/s01/db_1/lib/libskgxn2.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libskgxn2.so

Readingsymbolsfrom/s01/db_1/lib/libocr10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libocr10.so

Readingsymbolsfrom/s01/db_1/lib/libocrb10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libocrb10.so

Readingsymbolsfrom/s01/db_1/lib/libocrutl10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libocrutl10.so

Readingsymbolsfrom/s01/db_1/lib/libjox10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libjox10.so

Readingsymbolsfrom/s01/db_1/lib/libclsra10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libclsra10.so

Readingsymbolsfrom/s01/db_1/lib/libdbcfg10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libdbcfg10.so

Readingsymbolsfrom/s01/db_1/lib/libnnz10.so...(nodebuggingsymbolsfound)...done.

Loadedsymbolsfor/s01/db_1/lib/libnnz10.so

Readingsymbolsfrom/usr/lib6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1