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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

    简单地说,数据库(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,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
16天前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
12天前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8天前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
26 1
|
22天前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
53 7
|
20天前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
|
22天前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
64 2
|
2天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
10 0
|
2月前
|
开发框架 Oracle 关系型数据库
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
|
22天前
|
SQL 存储 Oracle
"挑战极限!Oracle数据库精英试炼场:夺命连环5问,你能否一路披荆斩棘,登顶技术巅峰?"
【8月更文挑战第9天】Oracle,数据库领域的巨擘,以卓越的数据处理能力、稳定性和安全性成为企业级应用首选。今天我们带来“Oracle夺命连环25问”。首问:核心组件有哪些?答:实例(含内存结构和后台进程)、物理存储(数据文件、控制文件等)及逻辑存储(表空间、段等)。第二问:如何理解事务隔离级别?答:Oracle支持四种级别,默认READ COMMITTED,避免脏读,但可能遇到不可重复读和幻读。
29 0

热门文章

最新文章

推荐镜像

更多
下一篇
云函数