zoukankan      html  css  js  c++  java
  • 第一章 Oracle Database 11g 体系结构

    1、单实例体系结构

    Oracle服务器是连接到数据库的实例。

    实例包括共享内存块以及一组后台进程。

    数据库是磁盘上的一组文件。

    用户会话是连接到服务器进程的用户进程。

    SGA内存由所有后台和前台进程共享。

    2、实例内存结构

    实例共享内存是系统全局区(SGA)。

    会话的专用区域是程序全局区(PGA)。

    SGA由一组子结构组成,其中一些是必须的(数据库缓冲区缓存、日志缓冲区和共享池),而另一些是可选的(大池、JAVA池和流池)。

    可以动态重调SGA结构的大小,也可以对其进行自动化管理,但日志缓冲区除外。

    日志缓冲区的大小固定不变,在启动实例时被设置为固定值。无法对其进行自动管理。

    数据库缓冲区缓存、共享池、大池、Java池、流池的大小可以动态调整,而且可以自动管理。

    3、实例进程结构

    当用户连接时,将根据需要启动会话服务器进程。

    后台进程在启动实例时启动,在关闭实例前一直存在。

    服务器进程从数据库读取,后台进程对数据库执行写操作。

    某些后台进程始终存在(特别是SMON,PMON,DBWn,LGWR,CKPT和MMON),而其他进程则根据启用的选项运行。

    SMON-System Monitor 系统监视器。

    PMON-Process Monitor 进程监视器,用户会话是连接到服务器进程的用户进程。

    如果会话终止,PMON后台进程将回滚活动事务。

    DBWn-Database Write 数据库写入器。

    究竟需要多少个数据库写入器?默认数量就很合适。添加多了数据库写入器,性能可能会有所提升,但通常需要先考虑调整内存。一般来说,在优化磁盘I/O之前都要问问自己:为什么需要磁盘I/O呢?

    DBWR会在哪些情况下执行写操作?在没有任何可用缓冲区、脏缓冲区过多、遇到3秒超时或遇到检查点。

    在提交事务时,DBWn有何举动?它什么都不做。

    LGWR-Log Writer 日志写入器。

    LGWR会在哪些情况下将日志缓冲区转储到磁盘?会话发出COMMIT时、缓冲区的占有率达到1/3时、DBWn正好执行写入前。

    CKPT-Checkpoint Process 检查点进程。

    何时出现完全检查点?只会应请求这么做,或在有序关闭数据库时出现。

    MMON-Manageablility Monitor 可管理性监视器

    默认方式下,MMON每小时收集一次快照并启动ADDM.

    MMAN-Memory Manager 内存管理器

    ARCn-归档日志进程

    LGWR对联机日志文件中执行写操作,ARCn读取联机日志文件,其他任何进程根本不接触此类文件。

    4、数据库存储结构

    数据库中有三类必需的文件:控制文件、联机重做日志文件和数据文件。

    控制文件存储完整信息以及指向数据库其余部分的指针。

    联机重做日志存储应用于数据库的最新变更向量。

    就每个数据库而言,要保证其正常运行,至少必须有两个联机重做日志文件组;要保证安全,每组至少要有两个成员。

    数据文件存储数据。

    外部文件包括:参数文件、口令文件、归档重做日志以及日志和跟踪文件。

    表空间将逻辑数据存储(段)从物理数据存储(数据文件)中抽象出来。

    表空间可由多个数据文件组成。

    一个段包含多个区间,一个区间包含多个Oracle块,一个Oracle块包含多个操作系统块。

    一个段可以包含位于多个数据文件的区间。

    服务器进程对数据文件执行读操作,而DBWn对数据文件执行写操作。

    在Oracle 10g及更新版本中,必须在创建数据库时创建SYSAUX表空间。如果未予指定,将创建默认的SYSAUX表空间。

    哪个视图将显示数据库中所有的表?是DBA_TABLE,不是ALL_TABLE。 

    练习 

    --1、作为用户SYSTEM连接到数据库。
    --2、确定实施是否是RAC数据库的一部分
    select parallel from v$instance; --如果是单实例数据库,返回NO。
    --3、确定数据库是否通过备用数据库的保护来防止数据丢失
    select protection_level from v$database; --未保护返回UNPROTECTED
     --4、确定是否在数据库中配置了流
    select * from dba_streams_administrator;  --未配置流,不返回任何行
    --5、显示可以动态设置大小的SGA组件的当前、最大、最小的容量
    select component,current_size,min_size,max_size from v$sga_dynamic_components;
    --6、确定已为程序全局区分配了多少内存
    select name,value,unit from v$pgastat where name in ('maximum PGA allocated','total PGA allocated');
    --7、确定哪些进程在运行,以及每个进程的数量有多少?
    select program from v$session order by program;
    select program from v$process order by program;
    --8、确定表所在的表空间、区间大小、区间所在的文件编号、区间所在位置的文件块
    select tablespace_name, extent_id, bytes, file_id, block_id
      from dba_extents
     where owner = 'QY'
       and segment_name = 'YW_SW_GRJFJL';
    --9、根据文件编号却数据文件
    select name from v$datafile where file# = 239;
    --10、计算区间所在文件中的位置
    select blocksize * block_id
      from dba_tables
     where tablespace_name = 'TS_JFJL_2012';
  • 相关阅读:
    一般 武胜
    Export/Import CSV files with MySQL 武胜
    关于Python中的for循环控制语句
    Linux下libxml2的使用
    Foxit PDF Reader能有效升级日文包
    Dependency introduction
    eclipse 插件更新站点
    TypeError: 'module' object is not callable 原因分析
    ubuntu11.10 安装reportlab出现“Python.h: 没有那个文件或目录”
    Windows 7 下如何调整网卡的优先级
  • 原文地址:https://www.cnblogs.com/mjjsky/p/2769635.html
Copyright © 2011-2022 走看看