一、ORACLE结构组件
记得有点乱,学到哪写到哪,忘记了可以查,算是留点痕迹~~
用户进程--服务器进程
用户的command是通过服务器进程来完成(启动用户进程,建立连接,调度服务器进程)
实例是操作数据库的一种手段,一个实例只能操作一个数据库
实例(SGA:共享池、数据块缓冲区、重做日志缓冲区,后台进程:PMON、SMON、DBWR、LGWR、CKPT)
数据库(数据文件、控制文件、重做日志文件)
关闭数据库:shutdown immediate
启动数据库:startup nomount,alter database mount,alter database open
查看内存:show sga
查看所有的后台进程:select * from v$bgprocess;
有PADDR地址的才是有效进程
数据库物理结构(必须有的):控制文件,数据文件,重做日志文件(最少两个)
select * from v$controlfile;
select * from v$datafile;
select * from v$logfile;
数据库内存结构:SGA(shared pool,databae buffer cache,redo log buffer),PGA
redo log buffer最终要写到在线日志文件,database buffer最终要写到数据文件里
show parameter shared
show parameter db_cache
show parameter log
show parameter sga
SGA动态的调整,但不可超过SGA_MAX_SIZE设定的大小
语言设置
alter session set nls_language=american;
SHARED POOL
包括两部分:library cache(经常使用的SQL、PL/SQL,包括shared SQL area和shared PL/SQL area,使用的算法是最近最少使用算法),data dictionary cache(用户权限信息、访问的数据对象、结构信息)
ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
dictionary cache也叫row cache
DATABASE BUFFER CACHA
show parameter db,2K--32K五个登记,database buffer cache以块为单位
由DB_BLOCK_SIZE决定大小,可在pfile的init文件查看
alter system set db_cache_size=96M
对内存做出建议
alter system set db_cache_advice=on;
REDO LOG BUFFER CACHE
大小由LOG——BUFFER决定
show parameter log_buffer
LARGE POOL可选
alter system set large_pool_size=64M;
JAVA POOL可选
由JAVA_POOL_SIZE决定
进程结构
用户进程(必须先建立连接)、服务器进程(可以被独占,也可以被共享)、后台进程(必须:PMON、SMON、CKPT、DBWR、LGWR、RECO,可选:ARCn、LMON、Snnn、QMNn、LMDn、CJQ0、Pnnn、Dnnn、LCKn)
查看归档模式:archve log list
DBWn:把DATABASE BUFFER CACHE的脏数据(被改变了的数据)写回到数据文件
LGWR:把REDO LOG BUFFER写到REDO LOG FILES
SMON:实例恢复、每3秒自由空间整理、临时段的清空
PMON:回滚事务等
CKPT:更新数据文件、控制文件
ARCn:自动备份归档日志
逻辑结构
表空间,段,分区(分配单位),块(使用单位)