oracle原理Word格式文档下载.docx

上传人:b****3 文档编号:15047086 上传时间:2022-10-27 格式:DOCX 页数:12 大小:2.04MB
下载 相关 举报
oracle原理Word格式文档下载.docx_第1页
第1页 / 共12页
oracle原理Word格式文档下载.docx_第2页
第2页 / 共12页
oracle原理Word格式文档下载.docx_第3页
第3页 / 共12页
oracle原理Word格式文档下载.docx_第4页
第4页 / 共12页
oracle原理Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

oracle原理Word格式文档下载.docx

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

oracle原理Word格式文档下载.docx

selectstatusfromv$instance;

数据库启动分为三个阶段

startupnomount;

1.nomount:

打开参数文件,此时分配内存和后台进程

STATUS

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

STARTED

alterdatabasebackupcontrolfiletotraceas'

/tmp/ctl'

;

startupmount;

/alterdatabasemount;

2.mount:

打开控制文件

MOUNTED

startup/alterdatabaseopen;

3.open:

打开数据文件和日志文件

OPEN

关闭数据

shutdownimmediate

强制关闭数据库

shutdownabort

startupforce=shutdownabort+startup

数据库在挂载状态(nomount)

【因修改参数后数据库无法打开,可先挂载到这个状态,然后指定pfile=‘’进行开启数据库。

打开参数文件pfile(文本)orspfile(二进制)

$ORACLE_HOME/dbs找

先找SPFILE,发现spfile不在,然后再去找pfile

动态初始化参数文件spfile格式:

spfile+数据库实例名.ora

静态初始化参数文件pfile格式:

init+数据库实例名.ora

查看当前数据库用的是哪种模式的参数文件pfile(文本)/spfile(二进制)

showparameterspfile;

NAMETYPEVALUE

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

spfilestring/u01/app/oracle/product/11.2.0

/db_1/dbs/spfileorcl.ora

创建pfile

createpfilefromspfile;

创建spfile

createspfilefrompfile;

Filecreated.

createpfile='

路径/文件名'

fromspfile;

startuppfile='

spfile在此目录

[oracle@caizhibin~]$cd$ORACLE_HOME/dbs

生成的pfile也在$ORACLE_HOME/dbs

-rw-r--r--1oracleoinstall807May1409:

48initorcl.ora

启动数据库时查找参数文件顺序

spfileSID.ora->

spfile.ora->

initsid.ora

指定pfile来启动数据库

startuppfile='

/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

spfile情况下:

修改参数文件里的参数有两种模式spfile|memory|both

altersystemsetundo_retention=1000scope=memory;

1.生产环境和测试环境都用spfile,除非自己想看文本的参数

2.修改的模式有三种spfile|memory|both,pfile默认是memory,spfile默认是both,both=spfile+memory

.

3.memory是立即生效的,不会写进物理的参数文件里面。

1.利用spfile创建pfile

2.用pfile启动数据库

3.修改undo_retention=1000

4.用spfile启动数据库

5.修改undo_retention=1000,再创建pfile,然后catpfile文件里的undo_retention是否等于1000

告警日志

/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

SGA:

比较重要的事sharedpool,databuffercache,logbuffer

脏缓存:

databuffer和数据文件不一致,只有DML才会产生脏缓存。

自由缓存:

databuffer和数据文件一致。

LRU算法:

插入一个新块时,判断冷段最后一个块

1.如果判断是不经常使用的块,则踢掉,然后把新块加入到冷段最前头。

2.如果端盘是经常使用的块,则放在热段最前头。

logbuffer:

1.作用防止断电,导致的数据丢失。

logbuffer写进日志文件是顺序写。

10g:

开启ASMM

设置sga大小

自动管理SGA:

databuffercache,sharedpool,largepool.

logbuffer需要手动管理

设置PGA大小(9i开始自动管理)

11g:

showparameterpga

pga_aggregate_targetbiginteger0

showparametersga

sga_targetbiginteger0

showparametermemory

memory_targetbiginteger1472M

setlin200

colCOMPONENTfora40

1*SELECTcomponent,current_size/1024/1024,min_size,max_sizeFROMv$memory_dynamic_components

/

COMPONENTCURRENT_SIZE/1024/1024MIN_SIZEMAX_SIZE

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

sharedpool240234881024251658240

largepool161677721616777216

javapool161677721616777216

streamspool000

SGATarget880922746880922746880

DEFAULTbuffercache592620756992637534208

KEEPbuffercache000

RECYCLEbuffercache000

DEFAULT2Kbuffercache000

DEFAULT4Kbuffercache000

DEFAULT8Kbuffercache000

DEFAULT16Kbuffercache000

DEFAULT32Kbuffercache000

SharedIOPool000

PGATarget592620756992620756992

ASMBufferCache000

16rowsselected.

查询表时,数据库后台将请求放入内存中进行HASH运算,HASH将表按表的对象号+数据文件号+数据块号进行运算,然后将计算出来的结果和HASH表的桶数相除取余。

HASHtable的大小=BUCKET桶*8字节,HASHtable是由BUCKET组成。

一个块占8KB,数据库最小操作IO单位是8KB,无论数据是多小,都是操作8KB。

每个BUCKET桶是由一个或多个BH【bufferheader】组成,每个BH由buffer块组成,每个buffer块是8kb。

也存在0个BH的BUCKET。

每个bufferheader指向一个BUCKET桶,bufferheader包含

计算例子400MB的高速缓存区buffercache,400*1024换成KB÷

8=51200个块,而桶的数量最少是块的2倍。

一个桶可能占多个块,也有可能是分不到1个块。

当用户执行发起请求时,语句的运行是在数据库高速缓冲区中运行,运行机制是首先数据库进行会先在数据库高速缓存区查询结果,如果没有就在数据文件中查询,在数据文件查找后就加载到数据库高速缓存区,在用户没有执行commit时,执行语句前,数据库会生成一条redo记录,并将执行语句放入到重做日志缓冲区,当数据累计到1MB,或3秒【举例】,redo记录达重做日志缓冲区1/3,或commit,会将redo记录写入日志文件。

当服务器宕机,数据库会将日志文件拿出执行语句,放入到重做日志缓冲区重新执行,然后数据库会自动commit。

redo记录在日志文件中按时间写。

大致流程:

1、事务开始;

2、在buffercache中找到需要的数据块,如果没有找到,则从数据文件中载入buffercache中;

3、事务修改buffercache的数据块,该数据被标识为“脏数据”,并被写入logbuffer中;

4、事务提交,LGWR进程将logbuffer中的“脏数据”写入redologfile中;

5、当发生checkpoint,CKPT进程更新所有数据文件的文件头中的信息,DBWn进程则负责将BufferCache中的脏数据写入到数据文件中。

附:

checkpoint由ckpt进程触发oracle进行checkpoint动作,将databuffer中的脏块(已经写在redo里记录但是没有写到datafile里的)的内容写入到datafile里并释放站用的空间,由dbw后台进程完成,并修改controlfile和datafile的scn.

一般手工执行(altersystemcheckpoint)是由于要删除某个日志但是该日志里还有没有同步到datafile里的内容,就需要手工checkpoint来同步数据,然后就可以droplogfileg

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

当前位置:首页 > 成人教育 > 成考

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

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