认识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)

物理结构:

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

数据文件(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语句或存储过程

时间: 2024-10-29 04:44:36

认识oracle数据库的相关文章

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复

这种操作百度一搜一大片,今天整理以前做的项目时自己备份了一下数据库,试着将数据进行导出备份和导入恢复了一下:下面是操作过程: 1 开启服务 2 配置监听 找到下面文件: 记事本打开 在导航器的下拉菜单中选择:将数据库添加到树, 然后点击确定 然后使用PL/SQL就可以登录了: 3 建立新表空间和新用户 使用system用户登录:执行如下sql语句建立表空间和新用户,以及给用户授权 建立表空间 Create tablespace myyyjc datafile 'D:\app\Administra

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性 作者:赵全文  网名:guestart 我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略:除了使用RMAN备份以外,我们还使用了爱数(Eisoo)备份软件来进行备份,可以说是做到了有备无患.可是,如果有一天,Oracle数据库由于主机层面硬件原因或是数据库层面的原因不能对外提供高可用服务的时候,假设数据丢了一大部分,我们只有用RMAN备份来进行恢复,再如果发现,RMAN备份失效了,那就往地缝里

PL/SQLDeveloper导入导出Oracle数据库方法

前一篇博客介绍了Navicat工具备份Oracle的方法,这篇博客介绍一下使用PL/SQL Developer工具导入导出Oracle数据库的方法. PL/SQL Developer是Oracle数据库用于导入导出数据库的主要工具之一,本文主要介绍利用PL/SQL导入导出Oracle数据库的过程. 1.Oracle数据库导出步骤 1.1 Tools→Export User Objects...选项,导出.sql文件. 说明:此步骤导出的是建表语句(包括存储结构). 1.2 Tools→Expor

Linux环境下Oracle数据库启动停止命令

切换root至oracle数据库账号 su – oracle 查看数据库服务状态: ps -ef |grep oracle netstat –an|grep 1521 查看数据库监听状态: [[email protected] ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-NOV-2016 03:36:45 Copyright (c) 1991, 2009, Oracle. All righ

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一

Oracle数据库语句大全

转自:http://blog.sina.com.cn/s/blog_b5d14e2a0101c56z.html ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每

Oracle数据库恢复案例

当我们在使用Oracle数据库时,突然断电,造成很多问题,致使旧数据丢失,影响了数据的正确性,破坏了数据库.此时,用户急切需求恢复数据.本文以此为例,讲述数据库数据恢复. 一.案例描述: 数据库因突然断电,数据库启库报system01.dbf需要更多的恢复来保持一致性,数据库无法打开:数据库没有备份,归档日志也不连续.客户提供了数据库的在线文件,急需恢复zxfg用户下的数据.   二.恢复流程:  1 数据库的故障检测 2 尝试挂起数据库并修复数据库 3解析数据文件 4 验证数据 5导出数据与交

重启oracle数据库的一次操作命令和alter日志。

今天重启oracle数据库的命令和alter日志: [email protected]:~> sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 27 18:49:13 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to:Oracle Database 11g Enterprise Edition Release