oracle体系结构

服务器和实例:   instance 和db是一对一的。非RAC下,一个instance整个生命周期只能打开一个db,一个db只能被一个instance打开。

         (1)数据库部分>主要文件:database files,redo log files,control files。外围文件:pfile/spfile,orapwSIDfile,alert/trace files,archivelog files,backup files
    datafile(dba_data_files和v$datafile):和tablespace是多对一,和segment是多对多 
    redo log files(v$log):循环复写,日志先写的原则(日志切换:alter system switch logfile)。
四个状态:current(当前正在使用的),active(实例恢复需要该激活状态的日志),inactive(非激活状态,实例恢复不需要)和unused(未使用的)。
    control files(v$controlfile):二进制文件,多路复用(alter system set control_files='路径';),位置由参数文件中的control_files指定。  
    参数文件:数据库启动时候可以指定pfile路径但是不可以指定spfile启动。
    密码文件:orapwd 来创建,grant sysdba to yonghu 来授权(entries表示文件中可放用户最大数量)。
    alert file:sql>show parameter background_dump_dest(使用共享服务器连接)。
    trace file:sql>show parameter user_dump_dest(使用专用服务器连接)
    archivelog files:归档日志。启用或者禁用archivelog需要在mount状态设定(alter database archivelog/noarchivelog)
        (2)实例部分:
    视图:v$sga,v$sgastat,v$buffer_pool
    sga>shared pool(library cache,data dictionary cache),db buffer cache,redo log buffer。 large pool,java pool,stream pool
    pga> smon ,pmon,dbwn,ckpt,lgwr,arch
    library cache:存储一些用户提交的sql语句及相关的解析树,执行计划,用户提交的pl/sql块。library cache中还有一些控制结构,用来管理这些内存 (lock,pin,dependency table)。
    data dictionary cache:存放系统管理自身所需要的所有信息(用户名,用户对象和权限等等)
    db buffer cache(default/keep/recycle pool):32位操作系统,此区可达到1.7G,在64位上,可达到10G。
    redo log buffer:记录数据库中所有改变信息。由于考虑到数据库的一致性和可恢复性,数据在此区中滞留时间不会太久,所以此区一般很小(3MB)。
 
    smom:系统监控进程,实例恢复,清理临时段等 
    pmon:进程监控进程,管理进程,当用户进程失败时,清理内存存储区释放资源,注册监听
    dbwn:写db buffer cache中内容到数据文件中。触发条件:dbwr超时3秒,系统中没有多的空缓存区存放数据,ckpt进程触发dbwr等。
    ckpt:alter system checkpoint,一致性关闭和日志切换都会触发ckpt,fast_start_mttr_target参数的设置。
    lgwr:3秒超时,大于1MB的缓冲区内容,3分之一满,commit,dbwn之前
    arch:归档进程。
        (3)user process,server process,backgroud process
    连接:{User--Sql>select ...--(user process--server process)--session}---&gt>()之间是一个connection,{}之间是一个session

    专用服务器,共享服务器模式(shared_servers,max_shared_servers等参数的设置和tnsnames.ora中server的设置)。
    server process负责处理客户端sql请求,dbwn负责往db file中写数据
监听:
    动态监听和静态监听($ORACLE_HOME/dbs/network/admin目录中的三个文件:listener.ora/tnsnames.ora/sqlnet.ora)
    如果动态监听打开,不管是否有instance启动(前提得有静态注册),客户端都可以连到一个空闲实例。
    lsnrctl中选择设置当前默认监听
    一个默认的动态监听可以监听当前系统中的多个instance
    local_listener参数(tnsnames.ora的一个描述符)的设置可以启动多个监听并且同时注册上服务(alter system register)。
验证方式:
    操作系统验证:本机的oracle软件用户
    口令文件验证:得需要开监听。远程客户端(包括本机的非oracle软件用户,但是此用户得设定oracle_home和oracle_sid才可以执行sqlplus连接服务器)
REMOTE_LOGIN_PASSWORDFILE = { shared | exclusive | none },这个参数为none时候只能走操作系统验证(数据库关闭时候客户端是走口令文件验证,因为这个参数得需要数据库启动到nomount状态读取到参数文件才生效)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29117696/viewspace-1093688/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29117696/viewspace-1093688/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值