首先我想大多数人对于数据库的定义是一种由很多数据的集合体称之为数据库。在汉译中我们通常把储存东西的某一地方叫的东西做库。而把大量的数据储存在一起呢就叫数据库,所以这也是普遍外行人的认知。但事实上的数据库不仅仅只是单纯的将数据储存在一起形成库。
简单地说,数据库(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)
物理结构:
数据库物理结构是指构成数据库的操作系统物理文件
数据文件(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;
不要放在存储上
数据库内存和进程:
实例(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语句或存储过程