Oracle学习笔记(基本概念)

Oracle学习笔记(基本概念)

物理结构

    数据文件、日志文件、控制文件、参数文件

系统全局区(System Global Area)

    共享池、数据缓冲区、日志缓冲区

进  程

用户进程、服务器进程、后台进程  

数据文件

•     每一个数据文件只与一个数据库相联系。

•     数据文件一旦被建立则不能修改其大小。

•     一个表空间可包含一个或多个数据文件。

日志文件

•     每一个数据库至少包含两个日志文件组。

•     日志文件组以循环方式进行写操作。

•     每一个日志文件成员对应一个物理文件。

日志开关(Log Switch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:

•     当一个日志文件组被填满时

•     关闭数据库时

•     DBA手动转移日志开关

镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。

其特点如下:

•     每个日志文件组至少包含两个日志文件成员。

•     每组的成员数目相同。

•     同组的所有成员同时被修改。

•     同组的成员大小相同,不同组的成员大小可不同。

控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。

描述信息如下:

•     数据库建立的日期。

•     数据库名。

•     数据库中所有数据文件和日志文件的文件名及路径。

•     恢复数据库时所需的同步信息。

参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。

初始参数文件:init.ora

生成参数文件:initSID.ora             config.ora

参数文件的作用:

•     确定存储结构的大小。

•     设置数据库的全部缺省值。

•     设置数据库的范围。

•     设置数据库的各种物理属性。

•     优化数据库性能。

实例( INSTANCE )

是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。  

SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。

共享SQL区包括

•     SQL或PL/SQL语句的文本

•     SQL或PL/SQL语句的语法分析形式

•     SQL或PL/SQL语句的执行方案

数据字典区用于存放数据字典信息行。

共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。

数据缓冲存储区分为

•     脏列表

        包括被修改过但尚未写到数据文件的缓冲块。

•     LRU(Least Recently Used)列表

        包括空闲缓冲块、正在存取的缓冲块、已被修改但尚未移到脏列表的缓冲块。

 

专用服务器方式为每个用户单独开设一个服务器进程。适用于实时系统。

不设置参数:

MTS_SERVICE

MTS_DISPATCHERS

MTS_SERVERS

MTS_LISTERNET_ADDRESS

多线索服务器方式通过调度器为每个用户进程分配服务器进程。设置参数:

MTS_SERVICE

MTS_DISPATCHERS

MTS_SERVERS

MTS_LISTERNET_ADDRESS

 

•     MTS_SERVICE:服务器名,缺省值为DB_NAME

•     MTS_DISPATCHERS:调度器个数

•     MTS_SERVERS:可以启动的服务器进程的个数

•     MTS_LISTERNET_ADDRESS:SQL*NET监听器地址

•     MTS_MAX_SERVERS:服务器进程的最大数

主要的后台进程有

•     DBWR    数据库写进程

•     LGWR    日志写进程

•     CKPT      检查点写进程

•     SMON     系统监控进程

•     PMON     进程监控进程

•     ARCH      归档进程

•     RECO       恢复进程

LCKn:封锁进程

 

DBWR(Data Base Writer)

        将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。

DBWR进行写操作的情况:

•     脏列表达到最低限制。

   相当于参数DB_BLOCK_WRITE_BATCH值的一半。

•     一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。

       参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。

•    出现超时

        3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。

•     出现检查点。

LGWR进行写操作的情况:

•     用户进程提交一个事务(Commit)

•     日志缓冲区达到1/3范围

•     DBWR对一个检查点需要清除缓冲块

•     出现超时(3秒钟内未活动,则进行一次写操作。)

检查点(Checkpoint)

         在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。

•     预定数目的记录项被填满。

        参数LOG_CHECKPOINT_INTERVAL确定了预定数目。

•     设置指定的秒数。

        参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。

•     每个日志开关处

•     关闭实例时

•    DBA手动操作。

•     表空间离线。

ARCH(Archiver)

       在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。

•     LOG_ARCHIVE_START

        确定了该进程的启动/不启动状态。

•    LOG_ARCHIVE_DEST

        当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。

•     LOG_ARCHIVE_FORMAT

        当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。

SMON(System Monitor)

        负责完成自动实例恢复。该进程在启动实例时自动启动。

PMON(Process Monitor)

        撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。

RECO(Recover)

        在分布式操作的情况下,恢复一个事务的失败。

LCKn(Lock)

        在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,¼,LCK9。

处理SQL语句的三个阶段

•     语法分析

•     执行

•     返回指令

ORACLE的逻辑结构是由一个或多个表空间组成。

•     一个表空间由一组分类段组成

•     一个段由一组范围组成

•     一个范围由一批数据库块组成

•     一个数据库块对应一个或多个物理块

数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。

一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值