开发者社区> 技术小美> 正文

什么是数据库之------oracle

简介:
+关注继续查看

    首先我想大多数人对于数据库的定义是一种由很多数据的集合体称之为数据库。在汉译中我们通常把储存东西的某一地方叫的东西做库。而把大量的数据储存在一起呢就叫数据库,所以这也是普遍外行人的认知。但事实上的数据库不仅仅只是单纯的将数据储存在一起形成库。

    简单地说,数据库(Database,简称DB)是一个提供数据的基地。它能保存数据并让用户从它这里访问有用的数据。确切地说,数据库是某个企事业单位存在计算机内的一组业务数据,它能以最佳方式、最少的数据重复被这个单位中的所有可能的应用系统所共享。数据库中的业务数据是以一定的组织方式存储在一起的相互有关的数据整体。


一、oracle数据库的发展历程

http://baike.haosou.com/doc/1180281-1248530.html


二、数据库的划分

数据库有大中小划分,不过这些数据库的划分并不是绝对的。

比如几年前数据库刚出道的那会access数据库就是大数据库了,而现在它只能算是小型的数据库。

小型数据库有:access、poxbase

中型数据库有:Mysql、SQL server、informix

大型数据库有:oracle、DB2、sybase


三、数据库的认证(DBA数据管理员)

OCA初级认证

OCP专家认证

OCM大师认证


四、数据库作用

它可以支持多种不同的硬件和操作系统平台,从台式机到大型和超级计算机,为各种硬件结构提供高度的可伸缩性,支持对称多处理器、群集多处理器、大规模处理器等,并提供广泛的国际语言支持。 Orcale是一个多用户系统,能自动从批处理或在线环境的系统故障中恢复运行。系统提供了一个完整的软件开发工具Developer2000,包括交互式应用程序生成器、报表打印软件、字处理软件以及集中式数据字典,用户可以利用这些工具生成自己的应用程序。Orcale以二维表的形式表示数据,并提供了SQL(结构式查询语言),可完成数据查询、操作、定义和控制等基本数据库管理功能。Orcale具有很好的可移植性,通过它的通信功能,微型计算机上的程序可以同小型乃至大型计算机上的Orcale,并且能相互传递数据。另外Orcale还具有与C语言的接电子表格、图形处理等软件。 Orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统


五、数据库结构

------         |--oracle软件
------ --------|------------------------------------------|--PGA(私有)
---- ----------|---------------------------------|--内存--|
oracle server -|---------------------------------|--------|--SGA系统全局区
---------------|---------------------------------|
---------------|--oracle数据库 --|--实例instance-|--进程--|--前台进程:
---------------------------------|------------------------|--后台进程:DBWR LGWR SMON PMON                                                                        CKPT ARCH OTHRES
---------------------------------|
---------------------------------|------------------|控制文件(Control files)
---------------------------------|--数据库database--|数据文件(Data files) 
------------------------------  --------------------|日志文件(Redo log files)
------------------------------  --------------------|参数文件(Parameter file)
------------------------------  --------------------|密码文件(Password file)
------------------------------  --------------------|归档日志( log files)

SGA系统全局区(SharedPool   BufferCache RedoBufferCache StreamPool JavaPool LargePool)

wKiom1YGMgawQOEFAALHpaFWG1c238.jpg

 wKioL1YGMgviLuUxAAEIA2Qtyzc817.jpg

物理结构:

数据库物理结构是指构成数据库的操作系统物理文件

数据文件(Data files)
日志文件(Redo log files)
控制文件(Control files)
参数文件(Parameter file)
物理文件的损坏或误删除就会破坏数据库物理结构,从而造成数据丢失。

参数文件

select * from v$parameter; #v$parameter中的内容来自于参数文件

是一个文本文件,可直接使用文本编辑器对其内容进行修改,该文件只
在建立数据库和启动实例时被访问,修改该文件后必须重启实例才生效。

作用如下:
设置SGA的大小
设置数据库的全部缺省值
设置数据库的范围
在数据库建立时定义数据库的物理属性
指定控制文件名和路径
通过调整内存结构,优化数据库性能

控制文件

select name,value from v$paramater where name='control_files';

show parameter control;


每一个ORACLE数据库有一个控制文件,用于维护数据库的全局物理结
构,所有数据库结构的改变都会引起控制文件的改变(同时被记录在
跟踪文件,由Oracle后台进程自动完成),包含下列信息类型:
数据库名
数据库数据文件和日志文件的名字和位置
数据库建立日期
数据库最大化参数,如:MaxLogFiles,MaxLogMembers,MaxLogHistory,MaxDataDiles,MaxInstances
一个数据库只需要一个控制文件,为了安全起见,允许控制文件被镜象

重做日志文件

重做日志文件用于记录用户对数据的修改或数据库管理员对数据库结构的修
改,并提供一种介质失败时的恢复机制。
重做日志文件分组管理。
一个Oracle数据库要求至少有两组重做日志文件。
组中每个日志文件被称作一个组成员。每一个日志文件组对应1个或多个日志文件。

重做日志文件循环使用,当一个重做日志文件充满时,LGWR 将日志写入
到下个重做日志组,这个被叫做日志切换。

数据文件

归档日志文件

select * from v$archived_log;

不要放在存储上



wKiom1YGMgajOGJgAAD7ezWa90Q094.jpg


wKioL1YGMgvQJPwjAACVTOZbIUk502.jpg

数据库内存和进程:

wKioL1YGMgvw-IN_AAGiK92Qoxs010.jpg

实例(Instance ):数据库启动时将自动分配SGA,并启动Oracle的多个后台进程(Background Processes)。内存区域和后台进程合称为实例。
一般情况下,数据库与实例是一一对应的关系,即有一个数据库就有一个实例。但在Oracle的并行服务器结构中,数据库与实例是一对多的关系,这种配置方式中,同一时间用户只与一个实例相连,当一个实例出现故障,其它实例将自动服务。

共享池 Shared pool

库缓冲:Library cache存放执行的SQL语句、解析代码和执行计划等
数据字典缓冲:Data dictionary cache 保存表名、字段名和其他对象的定义和权限等字典信息
共享池大小设定参数 SHARED_POOL_SIZE。

数据缓冲区 Data Buffer Cache

数据缓冲区用于存储从磁盘数据文件中读入的数据,为所有用户共享。修改数据时,首先要将数据从数据文件中取出,并存储于数据缓冲区中。
使用最近最少使用原则(LRU)作为管理机制,保存最近使用的数据块。
其大小有参数DB_BLOCK_BUFFERS确定。

日志缓冲区 Redo Buffer

日志缓冲区用于存储数据库的修改信息。
当日志缓冲区的日志数据达到一定数量时,由日志进程写入日志文件。
尺寸大小由LOG_BUFFER定义。

排序区 Sort Area

排序区为有排序需求的SQL语句提供内存空间。
Oracle中,用户数据的排序有两个区域,一个时内存排序区,一个时磁盘临时段,当排序内存不够时,自动使用磁盘临时表空间进行排序。
参数SORT_AREA_SIZE用于设置排序区的大小

大池 Large Pool

大池用于数据库备份恢复工具RMAN(Recovery Manager)或多线程服务器(Multithreaed Server MTS,允许多用户进程共享很少的服务器进程,与此相对应的是专用服务器进程Dedicated Server,这种连接方式中用户进程于服务器进程一一对应)。
其大小由 LARGE_POOL_SIZE决定。

Java池

Oracle 8i、Oracle 9i以后增加了对Java的支持,该内存主要用于Java语言的开发。
其大小由JAVA_POOL_SIZE 参数决定。

程序全局区 PGA

PGA是包含单个用户或服务器数据和控制信息的内存区域,当用户进程连接到Oracle时并创建一个会话时由Oracle自动分配。
PGA为非共享区,只要共用户存储编程时的变量和数组。用户回话结束时释放。
show parameter pga;

进程

Oracle进程分为用户进程、服务器进程和后台进程。当用户运行应用程序时自动产生用户进程,服务器进程负责处理用户进程的请求

前台进程(服务器进程)

后台进程

DBRW叫数据写入进程,当Dirty List达到一定长度时,DBWR将数据写盘并刷新缓冲区
LWGR叫日志写入进程,当日志缓冲区达到饱和时,它负责将日志数据写入日志文件
SMON叫系统监控进程,在实例启动时执行实例恢复,负责清理不再使用的临时段,合并数据文件的自由空间
PMON叫进程监控进程,在用户进程出现故障时执行进程恢复,负责清理内存储区和释放该进程所使用的资源。
ARCH叫归档进程,该进程将已写满的日志文件复制到归档日志文件中。仅在归档模式(Archivelog)下发生
CKPT叫检测点进程,通常在日志切换时,通知LGWR写日志并唤起DBWR将内存中所有修改过的数据块写回到数据文件中
SNP是作业进程,用于周期性的运行用户的作业,可以看作是调度服务,用于PL/SQL语句或存储过程








本文转自白羊IT51CTO博客,原文链接:http://blog.51cto.com/000011211684/1698414,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎样新建Oracle数据库
原文:怎样新建Oracle数据库 新建Oracle数据库三种方法:1.通过运行Oracle Database Configuration Assistant 创建配置或删除数据库(也可在命令行下输入dbca);2.
1054 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20910 0
Oracle数据库-备份整个数据库与还原整个数据库数据
这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表 这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的 先说本地的导出与导入: 备份(也叫导出): exp用户名/密码@本地服务名 file = 目标地址 (注:导出的文件是在硬盘上生成后缀名为dmp的文件) 阿里云代金券1000元免费领取地址:https://promotion.
2124 0
【ORACLE】relink oracle 10g 数据库
通常要迁移一个数据库,我们会使用 1 冷备份,整个数据库迁移, 2 rman duplicate 功能进行复制到本机或者复制到异机, 前面两种都必须先在目标库上安装软件。
707 0
oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
85 0
oracle rman连接数据库
1. 在用rman连接数据库时,如果你连接的要本地的oracle数据库rman target sys/password则可以,不要加上@,否则会报如下的错误   D:\study\oracl...
700 0
+关注
6819
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载