编辑推荐:

本文来自于csdn,本文主要是先来看一个图,这个图对于从整体上理解ORACLE的体系结构组件,最后,举一个用户提交sql语句的的例子来结束本文。

对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上2个角度,oracle如何定义上述描述呢?

我们来引入第一个概念,oracle服务器,所谓oracle服务器是一个数据库管理系统,它包括一个oracle实例(动态)和一个oracle数据库(静态)。oracle实例是一个运行的概念(如操作系统的进程),提供了一种访问oracle数据库的方式,始终打开一个,并且只能打开一个oracle数据库,oracle实例有SGA和一些后台服务进程组成,在后台服务进程当中,DBWn

PMON CKPT LGWR SMON是必备的后台进程,而ad queue,rac,shared server,ad

replication则是可选的,之所以可选,要们是因为离开它oracle也能正常运行,要么是一些高级的功能才可以用得到。

oracle数据库是一个被统一处理的的数据的集合,从物理角度来看包括三类文件数据文件,控制文件,重做日志文件。从逻辑角度来看,oracle数据库至少包含一个表空间,表空间至少包含一个段,段由区做成,区有块组成。需要注意的是表空间可以包含若干个数据文件,段可以跨同一个表空间的多个数据文件,区只能在同一个数据文件内。万能营销

万能群发

oracle还设计了其他的关键文件用来为整个系统服务,如配置文件,密码文件,归档日志文件,还有还有用户进程和服务进程,现在可以简单理解下执行sql语句就要用到这2个进程。

下表是SGA和PGA的总结

下表是后台进程总结

最后,举一个用户提交sql语句的的例子来结束本文,如果用户想提交sql语句,那么首先你必须要连接到oracle实例,连接到oracle实例有三种途径,1如果用户登陆到运行oracle实例的操作系统上,则通过进程间通信进行访问2C/S结构访问3三层结构.

1、物理结构

Oracle物理结构由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成

一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace

files,alert files)属于数据库文件;参数文件(parameter file)口令文件(password

file)是非数据库文件。

数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。

由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。

types:

.data dictionary .data

.redo data .index

.temporary data 等等

控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.

控制文件内容

1.数据库名

2.表空间信息

3.所有数据文件的名字和位置

4.所有redo日志文件的名字和位置

5.当前的日志序列号

6.检查点信息

7.关于redo日志和归档的当前状态信息

控制文件的使用过程发帖软件 B2B发帖软件

控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle

打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。

重做日志文件

含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.

跟踪文件及警告日志(Trace Files and Alert Files)

在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace

file 记载后台进程所遇到的重大事件的信息。

警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.

参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:

1.数据库控制文件的定位

2.Oracle用来缓存从磁盘上读取的数据的内存数量

3.默认的优化程序的选择.

和数据库文件相关,执行两个重要的功能

1.为数据库指出控制文件

2.为数据库指出归档日志的目标

归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

口令文件:认证哪些用户有权限启动和关闭Oracle例程.

2、逻辑结构(表空间、段、区、块)

表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。

段:是对象在数据库中占用的空间.

区:是为数据一次性预留的一个较大的存储空间.

块:ORACLE最基本的存储单位,在建立数据库的时候指定.

3、内存分配(SGA和PGA)

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA

在创建进程时分配,在终止进程时回收.

4、后台进程

包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System

Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint

Process,CKPT)、归档进程、服务进程、用户进程)

数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件

日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件

系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

进程监控:负责在一个Oracle 进程失败时清理资源

检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。

init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。

归档进程:在每次日志切换时把已满的日志组进行备份或归档

服务进程:用户进程服务。

用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

5、SCN(System ChangeNumber):

系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

Oracle架构,讲述了Oracle RDBMS的底层实现原理,是Oracle DBA**调优和排错的基础理论。深入理解Oracle架构,能够让我们在Oracle的路上走的更远。本文主要是在对RDBMS的底层组件功能和实现原理有一定的了解的情况下,结合自身的工作经验提出了对Oracle调优和排错的思路。**当然,对Oracle体系结构的理解是一个深远的过程,需要不断的更新修改,如有不对,还望指正。:)

Oracle RDBMS架构图

一般我们所说的Oracle指的是Oracle RDBMS(Relational databases

Management system),一套Oracle数据库管理系统,也称之为Oracle Server。而Oracle

Server主要有两大部分:

Oracle Server = 实例 + 数据库 (Instance和Database是相互独立的)

数据库 = 数据文件 + 控制文件 +日志文件 实例 = 内存池 + 后台进程

所以可以细分为: Oracle Server = 内存池 + 后台进程 + 数据文件 + 控制文件

+ 日志文件

一台Oracle Server支持创建多个Database,而且每个Datacase是互相隔离而独立的。不同的Database拥有属于自己的全套相关文件,例如:有各自的密码文件,参数文件,数据文件,控制文件和日志文件。

Database由一些物理文件(如:存放在存储设备中的二维表文件)组成。二维表存储在Database中,但Database的内容不能被用户直接读取,用户必须通过Oracle

instance才能够访问Database,一个Instance只能连接一个Database,但是一个Database可以被多个Instance连接。

将上面的Oracle RDBMS架构图进行抽象分类,可以将Oracle架构抽象为:Oracle体系

= 内存结构 + 进程结构 + 存储结构

内存结构

Oracle Instance是Oracle RDBMS的核心之一,负责RDBMS的管理功能。Oracle

Instance主要由内存池SGA和后台进程组成。

系统全局区SGA

Oracle的架构不是很难也不是很容易认真学肯定能学会 b2b软件

内存池SGA的默认Size,会在安装Oracle的时候会根据LinuxOS的sysctl.conf参数文件来决定:

kernel.shmall

= 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

查看SGA的Size:

SQL> conn /as sysdba

Connected.

SQL> show user;

USER is "SYS"

SQL> select * from v$sga;

NAME VALUE

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

Fixed Size 2022144

Variable Size 503317760

Database Buffers 1627389952

Redo Buffers 14753792

SQL> show sga

Total System Global Area 2147483648 bytes #对应kernel.shmmax

= 2147483648

Fixed Size 2022144 bytes

Variable Size 503317760 bytes

Database Buffers 1627389952 bytes

Redo Buffers 14753792 bytes

oracle表领域的做成,Oracle的架构学会了就可以做一个框架软件设计师了相关推荐

  1. 更改oracle 表空间大小,更改oracle数据库表空间大小

    Oracle表空间扩展 使用oracle时可能遇到无法通过8192在表空间中扩展错误,原因是数据库的表空间不足. oracle表空间数据文件容量与db_block_size有关,在初始建库时指定DB_ ...

  2. oracle 表列 自增,ORACLE表建立自增列

    create tablespace studentDB datafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Bo identi ...

  3. oracle表回退语句,5 Oracle笔试题

    一.选择题(每题2分) 1.你要对操纵Oracle数据库中的数据.下列哪个选项表示Oracle中select语句的 功能,并且不需要使用子查询? A.可以用select语句改变Oracle中的数据 B ...

  4. oracle表空间如何压缩,Oracle里表空间的压缩

    对于table空间的收缩是一个老生常谈的问题,不过却是一个一直都没有很透彻的讨论清楚过的问题.借ks_reny的机会,谈谈个人看法,有不及之处,希望高手引领更深入研究此话题. datafile是物理上 ...

  5. java 获取oracle表结构_获取Oracle中所有表的列表?

    回答(19) 2 years ago 我们可以从以下查询获取所有表格,包括列详细信息: SELECT * FROM user_tab_columns; 2 years ago 使用sqlplus更好地 ...

  6. java 获取oracle表结构_Java导出oracle表结构实例详解

    Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记:  Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...

  7. oracle表空间不足影响,oracle表空间不足

    oracle表空间不足,一般有两个原因:一,原表空间太小,没有自增长:二,表空间已自增长,而且表空间也已足够大,对于这两种原因分别有各自的解决办法. [检查原因] 1.查看表在那个表空间select ...

  8. oracle表独立数据文件,oracle表空间及数据文件

    1. Oracle 的逻辑结构 数据库的物理结构是由数据库的操作系统文件所决定,每一个 Oracle 数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理 ...

  9. oracle表空间undotbs1,解决Oracle 表空间UNDOTBS1太大的有关问题

    解决Oracle 表空间UNDOTBS1太大的问题 UNDOTBS1是一个回滚表空间,随着数据库的使用,默认会自动扩展.当它增大到一定程度,占用了过多的磁盘空间时,就需要进行清理了.下面就在2种操作系 ...

最新文章

  1. 公平与精确同样重要!CMU提出学习公平表征方法,实现算法公平
  2. 虚拟主机1服务器,虚拟主机1服务器
  3. 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)-(奇偶校验码、CRC循环冗余码、海明码)
  4. Linux文件分割命令split笔记
  5. Rider IDE恢复了对.NET Core调试的支持
  6. 啤酒与尿布,咩叔原创基于图论简单到爆的实时关联性算法
  7. 计算机复试面试题总结
  8. 中国高铁线路、列车、开通时间数据(2003-2020年)
  9. Graphene-SGX 总结
  10. acm会议什么档次_国际顶级会议期刊级别介绍
  11. 大数据开发之在idea中开发第一个hadoop程序
  12. 文件上传漏洞揭密剖析(一)-文件上传漏洞原理
  13. 内存压力测试 memtester移植到STM32
  14. windows解密bitlocker【2】密码读取
  15. 华为S5720-32X-EI-AC配置备份
  16. 通过示例快速理解二次回归
  17. python+ django在线考试系统【源码分享】
  18. abb机器人指令手册_ABB机器人计算坐标系原点姿态
  19. [20150409]tnsnames.ora与IFILE.txt
  20. matlab中的Phi,Matlab中巧用LaTex

热门文章

  1. java sso单点登录源码_Java单点登录系统 sso源码下载
  2. 利用辅助工具怎么在Excel中画线
  3. 英雄联盟里输出QWER连招的英雄
  4. 【课程设计】基于PHP的博客管理系统(数据库+源码+文档)
  5. fiddler学习笔记(一)
  6. DELIMA V5R20 64位安装包
  7. 每句话都能让你瞬间明白许多
  8. 在PHP中implement什么意思,英语单词implement是什么意思,英文单词查询implement,在线单词implement翻译...
  9. 冬天晚上洗完澡后要穿上袜子
  10. bluetooth射频已关闭请打开bluetooth射频_【富满电子*王平阳】射频IC布局落地,打开全新成长空间...