Oracle数据库体系结构
第2章 Oracle数据库的体系结构
因此,Oracle实例是由内存空间和Oracle 进程两部分组成。
Oracle实例结构图
1.系统全局区SGA
数据缓存区(database buffer cache) :最近 使用过的数据 。 重做日志缓冲区(redo log buffer) :记录了 用户对数据库执行的操作,被循环使用 。 共享池(shared pool) :包含了库缓存区( library cache)、数据字典缓存区(dictionary cache)、并行执行消息缓冲区(buffers for parallel execution messages),以及用于系 统控制的各种内存结构。
数据文件又可以分为以下几种:
系统数据文件 回滚数据文件 临时数据文件 用户数据文件 系统辅助数据文件 示例数据文件
2.1.2 日志文件
日志文件记录了用户对数据库的修改信息( 如增加、删除、修改),名字通常为 REDO*.LOG格式。
日志文件也叫重做日志文件或重演日志文件 (Redo Log Files)。 日志组是日志文件的逻辑组织单元,每个日志 组中有一个或多个日志文件。 同一个日志组中的多个日志文件具有相同的信 息,它们是镜相关系
用户进程和服务进程之间的对应关系是由 Oracle数据库的工作模式决定的。数据库通 常有两种工作模式:
专用服务器模式 共享服务器模式
3.后台进程(background process)
Oracle实例启动时,为了保证该实例的正常使 用,系统将为该实例启动一些后台进程。 这些进程是操作数据库的基础,不管有没有用 户连接数据库,这些进程都会被启动。
甲骨文数据库oracle个人学习(基础理论)
一、oralce 概述1.oracle 10g服务器包括一个oracle 服务器、一个ORACLE服务器实例数据库启动时,系统全局区SGA被分配,并启动ORACLE后台进程。
系统全局区是用于数据库用户共享数据库信息的内存区域。
后台进程和内存缓冲称为ORACLE实例。
ORACLE实例包含两种进程:用户进程和ORACLE进程。
前者执行应用操作的代码,后者是执行前者和后台进程,对ORACLE进行维护的服务器进程。
数据库的物理特性和存储结构之间的关系都是由后台进程来维持。
每个后台进程都创建一个跟踪文件,其命名约定都会包含后台进程名或后台进程的操作系统进程ID。
二、oracle数据库体系结构1.网格技术1)传统服务器及应用,彼此都相互独立,需要大量的维护工作,利用率不高。
2)网格计算的焦点是要创建大型的行业标准,模块化的存储器和服务器池。
每一个新系统都可以从这个组件池中快速得到供应。
提高资源利用水平,降低硬件成本。
3)目前3种类型的网格技术:①.计算网络GRID②.拾遗网络③.数据网络4)ORACLE数据库网络体系结构①.支持企业网格计算,提供以下特性a)使用低成本的硬件集群技术b)可靠性,保证数据和应用的持续使用c)安全性:在信任机制上共享企业网格资源d)分布式计算:具有高级集成特性,使用应用和数据能够位于风格的任何地方。
②.网格和集群a)集群是创建网格框架的一种技术,对于特定的应用提供静态资源b)网格,可以包括多个集群,为不同应用和用户提供动态资源池,能高度和移植应用,不同系统所有者之间共享资源。
c)网格,从工具计算视图来看,是一种客户端视图,用户不必关心数据的存储位置以及由哪个计算机处理用户请求。
d)ORACLE提供了多种特性支持计算资源分配:e)RAC: 真正应用集群。
利用两个主要的新功能:集成的集群件和自动工作负载管理。
集群件消除了购买、安装、配置和支持第三方集群件的需求。
自动工作负载管理可以通过定义规则,使用在正常工作时和应对故障时自动为每个服务分配处理资源。
第二章Oracle体系结构
2.表空间的使用
在数据库中使用多个表空间具有如下优势: (1)能够将数据字典与用户数据分离开来,避免 由于字典对象和用户对象保存在同一个数据文件 中而产生的1/0冲突。 (2)能够将回退数据与用户数据分离开来,避免 由于硬盘损坏而导致永久性的数据丢失。 (3)能够将表空间的数据文件分散保存到不同硬 盘上,平均分布物理1/0操作。
(4)LGWR日志文件写进程 该进程是日志缓冲区的管理进程,负责把日志缓冲区中 的日志项写入磁盘上的日志文件中。 (5)ARCH归档进程(archiver process) 该进程把已经填满的在线日志文件拷贝到一个指定的存 储设备上。 (6)RECO恢复进程 该进程是在具有分布式选项时使用的一个进程,主要用 于解决引用分布式事务时所出现的故障。 (7)LCKN封锁进程
2.4.2 进程
进程又称任务,是操作系统中一个极为重要的 概念。一个进程执行一组操作,完成一个特定 的任务。对Oracle数据库管理系统来说,进程由 用户进程、服务器进程和后台进程所组成。 进程与程序的区别在于前者是一个动态概念, 后者是一个静态实体;程序仅仅是指令的有序 集合,而进程则强调执行过程。进程可以动态 地创建,完成任务后即会消亡。
2.2.4 数据库块
数据库块也称逻辑块或Oracle块,它对应 磁盘上一个或多个物理块,它的大小由初 始化参数db_block_size(在文件init.ora中) 决定,典型的大小是2k。
Pckfree和Pctused两个参数用来优化数据 块空间的使用。 PCTFREE : 块 中 保 留 用 于 UPDATE 操作的空间百分比,当数据占用的空间达 到此上限时,新的数据将不能再插入到此 块中; PCTUSED:指定块中数据使用空间 的最低百分比;
oracle必问的面试题
oracle必问的面试题在面试过程中,许多公司都倾向于针对Oracle数据库进行提问。
作为一种常见的数据库管理系统,Oracle在企业级应用中扮演着重要的角色。
因此,掌握Oracle的相关知识对于求职者来说非常必要。
本文将介绍一些必问的Oracle面试题,帮助读者准备面试。
1. 什么是Oracle数据库?Oracle是一种关系型数据库管理系统(RDBMS),由Oracle公司开发。
它通过使用结构化查询语言(SQL)进行数据管理和查询。
Oracle数据库广泛应用于企业级应用,包括金融、制造、电信等领域。
2. 介绍一下Oracle数据库的体系结构。
Oracle数据库的体系结构由多个组件组成,包括实例、数据库和存储。
实例是内存结构和后台进程的组合,用于管理数据库。
数据库是存储数据的物理文件集合。
存储是用于存储和检索数据的物理设备,如硬盘。
3. 什么是表空间和数据文件?表空间是Oracle数据库中逻辑存储单位,用于存储表、索引和其他对象。
每个表空间由一个或多个数据文件组成。
数据文件是物理文件,用于在磁盘上存储数据。
4. 如何创建用户和授权?使用CREATE USER语句可以创建用户,语法如下:CREATE USER username IDENTIFIED BY password;要授予用户权限,可以使用GRANT语句,语法如下:GRANT privilege1, privilege2, ... ON object_name TO username;5. 介绍一下Oracle的锁机制。
Oracle使用各种锁来实现并发控制。
共享锁(Shared Lock)用于读取数据,排他锁(Exclusive Lock)用于修改数据。
Oracle还支持行级锁和表级锁,以及乐观锁和悲观锁等不同类型的锁机制。
6. 如何备份和恢复Oracle数据库?可以使用Oracle提供的工具来备份和恢复数据库,例如使用RMAN(Recovery Manager)进行备份和恢复操作。
Oracle数据库体系结构
Oracle数据库体系结构⼀、oracle数据库体系结构基本组成:Oracle server:⼀般情况下是⼀个instance和⼀个database组成⼀般:1个instance只能对应⼀个数据库。
特殊:1个数据库可以有多个instance(RAC)⼀台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应⼀个instance,也可以理解成每个数据库只有⼀个SID 。
利⽤DBCA建出的每个库都是相对独⽴的,在同⼀服务器上如果创建多库必须将环境变量的参数⽂件做区分,并且在对实例切换时需如下操作:connect ⽤户名/密码@实例的服务名1.1 oracle服务器和实例1.1.1实例由内存区和后台进程组成①内存区:数据库⾼速缓存、重做⽇志缓存、共享池、流池以及其它可选内存区(如Java池),这些池也称为数据库的内存结构②后台进程:包括系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT)、其它进程(SMON,如归档进程、RECO进程等)③注:要访问数据库必须先启动实例,实例启动时先分配内存区,然后再启动后台进程,后台进程执⾏库数据的输⼊、输出以及监控其它Oracle进程。
在数据库启动过程中有五个进程是必须启动的,它们是系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT),否则实例⽆法创建。
1.1.2服务器Oracle服务器由数据库实例和数据⽂件组成,也就是我们常说的数据库管理系统。
数据库服务器除了维护实例和数据库⽂件之外,还在⽤户建⽴与服务器的连接时启动服务器进程并分配PGA1.2 oracle数据库逻辑结构表空间:据库的基本逻辑结构,是⼀系列数据⽂件的集合;段:不同类型数据在数据库中占⽤的空间,有许多区组合⽽成;区:由连续的块组成,⽬的是为数据⼀次性预留⼀个较⼤的空间,oracle为存储空间进⾏分配回收都是以区为单位的;块:最⼩的存储单位,在创建数据库时指定,不能修改。
Oracle体系结构研究
Oracle体系结构研究摘要:阐述了Oracle数据库的基本架构和Oracle数据库理论中的主要概念。
Oracle体系结构由存储结构、内存结构和进程结构组成,其中,存储结构由物理存储结构及逻辑存储结构组成;内存结构由SGA和PGA组成;进程结构由用户进程和Oracle进程组成。
关键词:ORACLE体系结构;存储结构;内存结构;进程结构1 Oracle的存储结构Oracle的存储结构分为物理存储结构和逻辑存储结构。
1.1 物理存储结构主要由数据文件、控制文件、联机日志文件及数据库实例构成。
Oracle数据库中有许多初始化参数,这些参数用于对整个数据库进行设置或调整,如设置数据库名、数据库块大小、控制文件的名称和位置、数据库实例数等信息。
Oracle 把这些参数存放在一个文件中,这个文件就叫初始化参数文件。
启动数据库时,Oracle会读取参数文件中的值,并根据这些值对数据库实例(instance)进行设置。
具体说是Oracle先从初始化参数文件中获得控制文件的名称及位置,打开控制文件,然后再从控制文件中读取数据文件和联机日志文件的名称和位置,打开它们,因为表、索引等对象的数据就存放在数据文件中,从而就打开了数据库。
1.1.1 控制文件Oracle启动数据库时会访问控制文件,控制文件是在创建数据库的时候创建的,它是一个很小的二进制文件,记录了数据库的名称、创建数据库的时间、数据文件的名称和位置、联机日志文件的名称和位置及表空间等信息。
所以说一个数据库的控制文件是相当重要的,一旦被损坏,数据库将不能正常启动和运行。
所以DBA应该镜像控制文件,把每个镜像的控制文件分布到不同的物理磁盘上,发生灾难时既使其中一个控制文件被损坏,也不会使整个数据库限于瘫痪。
1.1.2 数据文件当用户在Oracle中创建数据库的时候,就创建了一个或多个数据文件,表和索引等对象的数据就物理地存放在数据文件中。
一个表的数据可能会存储在多个数据文件中,但一个数据文件只能属于一个数据库。
oracle数据库体系架构详解
oracle数据库体系架构详解在学习oracle中,体系结构是重中之重,⼀开始从宏观上掌握它的物理组成、⽂件组成和各种⽂件组成。
掌握的越深⼊越好。
在实际⼯作遇到疑难问题,其实都可以归结到体系结构中来解释。
体系结构是对⼀个系统的框架描述。
是设计⼀个系统的宏观⼯作。
这好⽐建⼀栋⼤楼。
你⾸先应该以图纸的⽅式把整个⼤楼的体系架构描述出来。
然后⼀点点的往⾥⾯填充东西。
下⾯我们先以⼀个图解的⽅式对oracle体系结构有⼀个基本了解根据⽰图,便于我们记忆,⽰图分三部分组成,左侧User Process、Server Process、PGA可以看做成Clinet端,上⾯的实例(Instance)和下⾯的数据库(Database)及参数⽂件(parameter file)、密码⽂件(password file)和归档⽇志⽂件(archived logfiles)组成Oracle Server,所以整个⽰图可以理解成⼀个C/S架构。
Oracle Server由两个实体组成:实例(instance)与数据库(database)。
这两个实体是独⽴的,不过连接在⼀起。
在数据库创建过程中,实例⾸先被创建,然后才创建数据库。
在典型的单实例环境中,实例与数据库的关系是⼀对⼀的,⼀个实例连接⼀个数据库,实例与数据库也可以是多对⼀的关系,即不同计算机上的多个实例打开共享磁盘系统上的⼀个公⽤数据库。
这种多对⼀关系被称为实际应⽤群集(Real Application Clusters,RAC)RAC极⼤提⾼了数据库的性能、容错与可伸缩性(可能耗费更多的存储空间)并且是oracle⽹格(grid)概念的必备部分。
下⾯我们来详细看⼀下oracle数据库的体系架构Oracle体系架构主要有两⼤部分组成:数据库实例(Instance)和数据库⽂件(database)数据库实例指数据库服务器的内存及相关处理程序,它是Oracle的⼼脏。
与Oracle性能关系最⼤的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:1、数据缓冲区,可避免重复读取常⽤的数据;2、⽇志缓冲区,提升了数据增删改的速度,减少磁盘的读写⽽加快速度;3、共享池,使相同的SQL语句不再编译,提升了SQL的执⾏速度。
oracle数据库体系结构的构成
oracle数据库体系结构的构成Oracle数据库是一种关系型数据库管理系统,其体系结构由多个组成部分构成。
这些组成部分相互协作,以实现数据库的高效管理和数据的存储、检索和操作。
1. 实例(Instance)Oracle数据库的实例是指在计算机系统中运行的一组进程,这些进程负责管理数据库的运行和操作。
实例包括后台进程(background processes)和前台进程(foreground processes)。
后台进程负责监控数据库的状态、管理内存和磁盘空间、处理死锁等问题,而前台进程负责处理用户的请求和查询。
2. 数据库(Database)数据库是指存储数据的物理文件集合,包括数据文件(data files)、控制文件(control files)和日志文件(log files)。
数据文件存储实际的数据,控制文件记录数据库的结构信息和一些关键参数,日志文件用于记录数据库的操作日志。
数据库的设计和管理是数据库管理员(DBA)的工作。
3. 表空间(Tablespace)表空间是数据库中逻辑存储单位,用于管理和组织数据。
每个表空间包含一个或多个数据文件,表空间中的表和索引等数据库对象存储在数据文件中。
表空间可以根据需求进行创建、扩展和调整,以满足数据库的存储需求。
4. 段(Segment)段是逻辑存储单位,是表空间中的子集,用于存储数据库对象。
每个表、索引等数据库对象都分配了一个或多个段来存储数据。
段可以是数据段(data segment)、索引段(index segment)、临时段(temporary segment)等,根据其存储的数据类型和使用情况而定。
5. 区(Extent)区是段的子集,是数据的最小单位。
每个段由一个或多个区组成,每个区的大小是固定的。
当一个段需要存储更多的数据时,会动态地分配新的区来扩展段的大小。
6. 块(Block)块是存储数据的最小单位,是操作系统中文件系统的块大小。
oracle体系结构 面试题
oracle体系结构面试题
以下是一些关于Oracle体系结构的常见面试题:
1. 请解释Oracle数据库的体系结构。
2. Oracle数据库是如何工作的?
3. Oracle数据库的组成部分是什么?
4. 请解释Oracle实例和Oracle数据库之间的关系。
5. Oracle数据库的逻辑结构是怎样的?
6. Oracle数据库的物理结构是怎样的?
7. Oracle数据库的存储结构是怎样的?
8. 请解释Oracle数据库的内存结构。
9. Oracle实例的主要组件有哪些?
10. Oracle数据库是如何处理并发访问的?
11. Oracle数据库的恢复机制是怎样的?
12. Oracle数据库的备份和恢复策略是怎样的?
13. Oracle数据库的安全性是怎样保证的?
14. Oracle数据库的性能调优是怎样进行的?
15. 请解释Oracle的数据字典是什么?
以上是一些常见的关于Oracle体系结构的面试题,希望能帮到你!。
oracle常见的面试题
oracle常见的面试题Oracle数据库是目前全球广泛使用的一种关系型数据库管理系统。
在现代的IT行业中,掌握Oracle数据库的知识成为了许多岗位的基本要求之一。
因此,面试官们经常会在面试中提出一些与Oracle相关的问题来评估应聘者的能力和经验。
本文将介绍一些常见的Oracle面试题,并为每个问题提供详细的回答。
面试题一:什么是Oracle数据库?回答:Oracle数据库是一个基于客户与服务器结构的关系型数据库管理系统。
它是由美国Oracle公司开发并推广的,能够在多个操作系统上运行,包括Windows、Unix和Linux等。
Oracle数据库以其高性能、高可用性和强大的数据管理功能而闻名于业界。
面试题二:请简要介绍一下Oracle数据库的体系结构。
回答:Oracle数据库的体系结构包括以下几个组件:1. 实例(Instance):实例是Oracle数据库的运行环境,负责管理内存、进程和后台服务等。
每当启动一个Oracle数据库时,都会创建一个实例。
2. 数据库(Database):数据库是物理存放数据的地方,通过实例进行访问和操作。
一个Oracle实例可以管理多个数据库。
3. 数据文件(Data File):数据文件是数据库中存储数据的文件,每个文件对应一个表空间(Tablespace)。
Oracle数据库使用数据文件来存储表、索引、触发器等对象的数据。
4. 表空间(Tablespace):表空间是逻辑存储单元,用于管理和组织数据库中的对象。
每个表空间由一个或多个数据文件组成。
5. 表(Table):表是数据库中用于存储数据的基本对象,由多个列(Column)组成。
面试题三:请介绍一下Oracle数据库的事务(Transaction)概念。
回答:在Oracle数据库中,事务是一系列数据库操作的逻辑单元,它要么全部执行成功,要么全部回滚。
事务可以保证数据库的一致性和完整性。
事务具有以下四个特性,常简称为ACID特性:1. 原子性(Atomicity):事务作为一个整体执行,要么全部成功,要么全部失败。
Oracle体系结构概述
Oracle 体系结构概述完整的Oracle 数据库系统通常由两个部分组成:实例(INSTANCE )和数据库(DATABASE )。
数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle 后台进程/线程以及在服务器分配的共享内存区。
实例和数据库有时可以互换使用,不过二者的概念完全不同。
实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。
准确地讲,一个实例在其生存期中最多只能装载和打开一个数据库。
如果要想再打开其他数据库,必须先丢弃这个实例,并创建一个新的实例。
数据库的主要功能是保存数据,实际上可以将数据库看作是存储数据的容器。
数据库的存储结构也就是数据库存储数据的方式,Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构,这两部分是相互独立但又密切相关的。
逻辑存储结构主要用于描述在Oracle 内部的组织和管理数据的方式,而物理存储结构则用于描述在Oracle 外部,即操作系统中组织和管理数据的方式。
Oracle 对逻辑存储结构和物理存储结构的管理是分别进行的,两者之间不直接影响。
因此Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。
在启动Oracle 数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。
图2-1以最简单的形式展示了Oracle 实例和数据库。
Oracle 有一个很大的内存块,称为系统全局区(SGA )。
文件文件文件文件文件数据库SGA后台进程后台进程后台进程后台进程后台进程后台进程后台进程实例图2-1 Oracle 实例和数据库当用户连接数据库时,实际上是连接到实例中,由实例负责与数据库通信息,然后再将处理结构返回给用户。
oracle数据库菜鸟教程
oracle数据库菜鸟教程Oracle数据库是一种面向对象的关系数据库管理系统。
它是由Oracle公司开发和推出的。
Oracle数据库提供了非常强大的功能,能够存储和处理大规模的数据。
Oracle数据库的主要特点包括数据的可靠性、安全性、稳定性和性能优化。
它支持多用户并发访问,可以同时处理多个请求。
同时,Oracle数据库提供了高级的查询和分析功能,可以对存储的数据进行复杂的数学和逻辑运算。
Oracle数据库的体系结构分为三层:物理层、逻辑层和视图层。
物理层负责存储和管理数据的物理结构,包括数据文件、表空间和数据块等。
逻辑层负责数据的逻辑结构和访问方式,包括表、视图和索引等。
视图层则负责将逻辑结构和物理结构进行映射,便于用户进行查询和分析。
在Oracle数据库中,数据是以表的形式进行存储和管理的。
表是由行和列组成的二维表格,用来存储具有相同字段的数据记录。
每个表都有一个唯一的名称,以便于在SQL语句中进行引用和操作。
除了表,Oracle数据库还支持视图、索引、存储过程、触发器和约束等对象。
视图是一个虚拟的表,由一个或多个表的子集组成。
索引是表的一种辅助结构,用来加快数据的查询速度。
存储过程是一组预定义的SQL语句,可以在数据库中进行重复使用。
触发器是一种特殊的存储过程,它可以在特定的条件下自动触发并执行相应的操作。
约束指定了对表的数据进行限制或验证的规则,用来保证数据的完整性和一致性。
总结来说,Oracle数据库是一种强大而灵活的关系数据库管理系统,可以帮助用户存储和管理大规模的数据。
它提供了丰富的功能和工具,用来加速数据的查询和分析。
通过掌握Oracle 数据库的基本概念和技术,可以更好地利用它来支持业务需求和数据管理。
最新Oracle11G 体系结构
方案下看到方案名都为数据库用户名的原因。
如果SCOTT用户创建了表EMP,那么SCOTT
就是表EMP的属主,在SCOTT访问SCOTT用
户下的EMP表时不用在表名前面加上表的属主
:SELECT * FROM EMP; 如果其他用户要访问表EMP,要在表名前面加 上表的属主:SELECT * FROM scott.emp; 否则会显示“没有此表”。
设置内存大小; 设置要使用的数据库和控制文件; 设置检查点; 设置数据库的控制结构; 非强制性后台进程的初始化
其他Oracle 物理文件
跟踪文件(Trace file):存放着后台进程的警告和错 误信息,每个后台进程都有相应的跟踪文件。 警告文件( Alert file):由连续的消息和错误组成, 可以看到Oracle内部错误、块损坏错误等。 备份文件( Backup file):包含恢复数据库结构和数 据文件所需的副本。 口令文件( Password file):存放用户口令的加密文 件。
每个数据库至少包含两个重做日志组,这两个日志组是循环使用的。日
志写入进程(LGWR)会将数据库发生的变化写入到日志组一,当日志组 一写满后,即产生日志切换,LGWR会将数据库发生的变化写入到日志
组二,当日志组二也写满后,产生日志切换,LGWR会将数据库发生的变
化再写入日志组一,依次类推。 日志文件分为联机重做日志文件和归档日志文件。归档日志,是当前非
关键控制信息,如数据库名和创建时间,物理文件 名、大小及存放位置等信息。
控制文件在创建数据库时生成,以后当数据库发生 任何物理变化都将被自动更新。
每个数据库包含通常两个或多个控制文件。这几个
控制文件的内容上保持一致。
火龙果软件-oracle数据库集训之系统架构
用户至上 用心服务
Oracle核心参数
Redo log 3-5M。 PGA(5%原则)参数的设置合理会导致内存溢出,磁盘I/O急剧 增加。调整步骤: 查询PGA当前设置:show parameter pga; 查询视图V$PGASTAT,如果字段OVER ALLOCATION COUNT大于0, 则说明PGA设置太小了。等于0,就说明系统命中率很高。 查询视图V$PGA_TARGET_ADVICE,找到字段 ESTD_OVERALLOC_COUNT=0的那条记录就是目前系统需要。 查询数据库实例:select instance_name from v$instance; 修改pga大小 $ORACLE_HOME/dbs/spfile<instance_name>.ora中 的参数pga_aggregate_target alter system set pga_aggregate_target=1000M scope= spfile;
用户至上 用心服务
Oracle核心参数 Oracle 核心参数
db_block_size = 8192 open_cursors = 1000 db_file_multiblock_read_count =64 sort_area_size = 1000000000(1G) log_buffer=1000000000(约1G) shared_pool_size = 5000000000(约5G) db_block_buffers = 2000000(约15G)
用户至上 用心服务
表参数
freelists 假设 pctfree=10, pctused=40 ,这就表明当一个 Block 的空间使用率达 到了 90% ( 100-pctfree )时,这个 block 就不再允许被用于新增数据 ( insert ),而保留下来的这 10% 的空间则被预留为行更新( update ) 所可能需要的空间扩展,我们说此时这个 block 就从 freelist 上被摘走 了,当有数据删除(delete)的时候,只有该block中的数据被删除到一 定 的 程 度 , 该 块 才 会 重 新 被 加 入 到 freelists 中 , 而 这 个 程 度 就 是 pctused 参数定义的数值,如我们这个例子中,只有块中的数据降低到 40%以下的时候,该块才被重新允许用于新增数据。 通过上面的描述,可以知道所谓freelists,就是一个指定了所有可以 用于insert操作的数据块的列表。存在在这个列表中的数据块才能用于 insert操作,一旦一个数据块无法用于insert(达到了pctfree参数指 定的限度)则立刻从这个列表中被摘除。freelists的作用就在于管理 高水位标志(HWM)以下的空闲空间。
ORACLE数据库配置
ORACLE数据库配置ORACLE 数据库⼀、ORACLE 简介(⼀)什么是 ORACLEORACLE 数据库系统是美国 ORACLE 公司(甲⾻⽂)提供的以分布式数据库为核⼼的⼀组软件产品,是⽬前最流⾏的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之⼀。
ORACLE 通常应⽤于⼤型系统的数据库产品。
ORACLE 数据库是⽬前世界上使⽤最为⼴泛的数据库管理系统,作为⼀个通⽤的数据库系统,它具有完整的数据管理功能;作为⼀个关系数据库,它是⼀个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
ORACLE 数据库具有以下特点:(1)⽀持多⽤户、⼤事务量的事务处理(2)数据安全性和完整性控制(3)⽀持分布式数据处理(4)可移植性(⼆)ORACLE 体系结构1.数据库Oracle 数据库是数据的物理存储。
这就包括(数据⽂件 ORA 或者 DBF、控制⽂件、联机⽇志、参数⽂件)。
其实 Oracle 数据库的概念和其它数据库不⼀样,这⾥的数据库是⼀个操作系统只有⼀个库。
可以看作是 Oracle 就只有⼀个⼤数据库。
2.实例⼀个Oracle 实例(Oracle Instance)有⼀系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。
⼀个数据库可以有 n 个实例。
3.数据⽂件(dbf)数据⽂件是数据库的物理存储单位。
数据库的数据是存储在表空间中的,真正是在某⼀个或者多个数据⽂件中。
⽽⼀个表空间可以由⼀个或多个数据⽂件组成,⼀个数据⽂件只能属于⼀个表空间。
⼀旦数据⽂件被加⼊到某个表空间后,就不能删除这个⽂件,如果要删除某个数据⽂件,只能删除其所属于的表空间才⾏。
4.表空间表空间是 Oracle 对物理数据库上相关数据⽂件(ORA 或者 DBF ⽂件)的逻辑映射。
⼀个数据库在逻辑上被划分成⼀到若⼲个表空间,每个表空间包含了在逻辑上相关联的⼀组结构。
Oracle体系结构(共79张PPT)
32
日期
第32页,共79页。
分析
在执行COMMIT操作时,后台进程LGWR要 开始工作,所以事务变化被记载到重做日志 中。因为只有在发出检查点时,才会将SCN 值写入控制文件和数据文件头部,所以控制 文件和数据文件的SCN值保持一致,并且存 放的是先前检查点的SCN值。
控制文件和数据文件的SCN值一致,与重做 日志不一致!
28
日期
第28页,共79页。
CKPT工作原理
当Oracle发出检查点时,系统会将检查点时刻的
SCN值写入到控制文件和数据文件头部,同时还会促
使DBWR进程将所有脏缓冲区写入到数据文件中。
29
日期
第29页,共79页。
检查点工作机制
在DBWR进程工作之前,LGWR进程首 先将重做日志缓冲区内容写入到重做日志文 件,即该时刻的SCN值会被写入重做日志。
Oracle使用的主要内存结构包括系统全局 区SGA和程序全局区PGA。
9
日期
第9页,共79页。
SGA区
日期
10 第10页,共79页。
数据高速缓存
保存最近从数据文件中读取的数据块。分为 脏缓存块、空闲缓存块和命中缓存块三类。
脏缓冲块:当执行INSERT、UPDATE以及 DELETE操作时,服务器进程修改数据高速 缓存的相应数据,此时缓冲区的内容与数据 文件中的内容不一致。
当CKPT进程工作的时候,会将当前时 刻的SCN值写入数据文件和控制文件。
在发出检查点时刻,数据文件、控制文 件和重做日志的SCN值完全一致。
30
日期
第30页,共79页。
系统恢复
当运行Oracle Server时,在访问数据 文件、控制文件和重做日志时,Oracle会定 期检查并比较每种文件的SCN值,确定文件 是否损坏、系统是否出现异常,最终确定系 统是否需要进行恢复。
rcle体系结构简介
Oracle体系结构简介一、数据库(Database)数据库是一个数据的集合,不仅是指物理上的数据,也指物理、存储及进程对象的一个组合。
Oracle是关系型数据库治理系统(RDBMS)。
二、实例(Instance)数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合。
它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS)。
实例和数据库的关系如下决定实例的组成及大小的参数存储在init.ora文件中。
三、内部结构表、列、数据类型(Table、Column、Datatype)Oracle中是以表的形式存储数据的,它包含若干个列;列是表的属性的描述;列由数据类型和长度组成;Oracle中定义的数据类型主要有CHAR、VARCHAR2、NUMBER、DATE、LONG、LOB、BFILE等,具体的数据类型情况将在本栏目的相关文档中具体介绍。
约束条件(Constraint)表中以及表间可以存在一些数据上的逻辑关系、限制,也就是约束。
Oracle中的约束主要有主键(PK)、外键(FK)、检查(CHECK)、唯一性(UNIQUE)等几种;拥有约束的表中每条数据均必须符合约束条件。
抽象数据类型(Abstract Datatype)可以利用CREATE TYPE命令创建自定义的抽象数据类型。
分区(Partition)可以利用分区将大表分隔成若干个小的存储单元,逻辑上仍然是一个完整的独立单一实体,以减小访问时数据的查找量,提高访问、存储效率用户(User)用户不是一个物理结构,但是它与数据库的对象拥有非常重要的关系--用户拥有数据库对象,以及对象的使用权。
模式(Schema)用户帐号拥有的对象集合称为模式。
索引(Index)数据库中每行记录的物理位置并不重要,Oracle为每条记录用一个ROWID来标识,ROWID记录了记录的准确位置。
索引是供用户快速查找到记录的数据库结构。
DBA体系结构
一、数据库管理员的主要职责负责数据库管理系统的安装和升级建立数据库启动和关闭数据库管理和监控数据库用户管理数据库权限管理存储空间备份和恢复数据库二、Oracle的体系结构数据库分为:实例(INSTANCE,相当于进程)、数据文件实例:是存取和控制数据库的软件机制,它由系统全局区(System Global Area)和后台进程组成。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA是只被一个进程使用的区域,PGA在创建进程时分配,在终止进程时回收。
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。
它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
连接监听异常:状况:部分可以使用数据库,部分不能使用数据库,报监听异常原因:可以使用的说明已经连接上数据库,不能使用的说明正准备连数据库PMON:检查客户进程SMON:检查服务进程SGA中包含:Shared Pool(共享池)、Database Buffer Cache(数据缓冲区)、Redo Log Buffer (重做日志缓冲区)、其它结构(例如锁定和栓锁管理以及统计数据)共享池由共享SQL区(SQL或PL/SQL语句的文本、SQL或PL/SQL语句的语法分析形式、SQL或PL/SQL语句的执行方案)和数字字典区组成。
数据缓冲区用于存储从数据文件中读的数据的备份。
日志缓冲区以记录项的形式备份数据库缓冲区中被修改的缓冲块。
DBWR(Database Writer):将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并保持缓冲区中的数据块为最近使用的。
LGWR(Log Writer):将日志缓冲区中的所有记录项写到日志文件中,该进程在启动实例时自动启动。
Archiver:将日志文件写到归档文件中。
Redo Log与归档日志文件的区别:Redo Log:是一个文件,相当于中间量,写完此文件,放入归档文件后,再在此文件中写入新的文件。
oracle运维之数据库体系结构精品PPT课件
日志文件(Redo Log Files)
✓ Redo Log 文件记录对于数据库的所有修改, 用于数据库的恢复
✓ 如果对于日志文件进行镜像,则相同的 Redo Log 信息被写入多个联机的 Redo Log 文件中
✓ Oracle运行NOARCHIVELOG时只有历史日 志,没有归档日志
提供,版权必究
每个Oracle数据库都有多个回退段
回退段的作用
并发操作时,保证数据的读一致性 使用 SQL语句rollback回退一个事务的操作
提供,版权必究
回退段(Rollback Segments)
事务恢复的需要
回退段操作举例
由于语句错误回退一个事务 回退一个事务、或回退事务到一个保存点
(SavePoint) 由于异常进程中断而回退 在例程恢复中回退所有没未完成的事务
Group2 Member B
Group3 Member B
Group1 Member C
Group2 Member C
Group3 Member C
Oracle9i for Unix 日志文件结构 (Sun Solaris)
redo01.log
redo02.log
redo03.log
三个日志文件组,每组一个日志成员
表空间
本地化管理表空间 (Oracle8i,9i)
Uniform AutoAllocate
Oracle表空间类型
Oracle9i临时段管理
✓ Oracle9i的缺省临时表空间(Default Temporary Tablespace)用于用户排序时 SQL的Order by语句使用,在创建用户时指 定用户缺省的临时表空间。
日志序列号,用于标识其中的信息 日志切换时产生检查点CKPT(Checkpoint)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2_Oracle数据库体系结构【实验目的与要求】⏹熟悉Oracle数据库的物理结构⏹理解Oracle的工作机制⏹理解Oracle的软件结构【实验内容与步骤】2.0 实验准备以系统管理员身份登入到数据库。
2.1 物理存储结构2.1.1 数据文件给出运行结果截图:练习:用desc命令查看V$datafile视图的结构,并试着查询更详细的信息。
2.1.2 日志文件通过如下方式查看重做日志文件相关信息:给出运行结果截图:练习:用desc命令查看V$log视图的结构,并试着查询控制文件更详细的信息。
2.1.3 控制文件通过如下方式查看控制文件相关信息:给出运行结果截图:练习:用desc命令查看V$controlfile视图的结构,并试着查询更详细的信息。
2.1.4 参数文件通过如下方式查看参数文件相关信息:给出运行结果截图:阅读结果并理解各数据项的含义。
练习:在%oracle_home%(如C:\oracle\product\10.1.0\db_1\database)找到名为SPFileSID.ora(如:SPfileTestdb.ora)和init.ora的文件,此文件即为参数文件,用记事本打开它们,阅读其内容并理解各数据项的作用。
2.2 Oracle逻辑存储结构2.2.1查看表空间的名称及大小执行以下语句,并给出运行结果。
给出运行结果截图:2.2.2查看表空间物理文件的名称及大小执行以下语句,并给出运行结果。
给出运行结果截图:2.2.3查看回滚段名称及大小执行以下语句,并给出运行结果。
给出运行结果截图:2.2.4查看所有表空间对应的数据文件名:SQL>select distinct file_name,tablespace_name,AUTOEXTENSIBLE from dba_data_files;给出运行结果截图:2.2.5查看表空间的使用情况:SQL>select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_space group by tablespace_name;给出运行结果截图:2.2.6数据库各个表空间增长情况的检查:SQL>select A.tablespace_name,(1-(A.total)/B.total)*100 used_percentFrom (select tablespace_name,sum(bytes) total from dba_free_space group bytablespace_name) A,(select tablespace_name,sum(bytes) total from dba_data_filesgroup by tablespace_name) B where A.tablespace_name=B.tablespace_name;给出运行结果截图:2.2.7查看各个表空间占用磁盘情况:SQL>col tablespace_name format a20;SQL>select b.file_id file_ID,b.tablespace_name tablespace_nameb.bytes Bytes,(b.bytes-sum(nvl(a.bytes,0))) used,sum(nvl(a.bytes,0)) free,sum(nvl(a.bytes,0))/(b.bytes)*100 Percentfrom dba_free_space a,dba_data_files bwhere a.file_id=b.file_idgroup by b.tablespace_name,b.file_id,b.bytesorder by b.file_id;给出运行结果截图:2.2.8 Oracle所有回滚段状态的检查:SQL>selectsegment_name,owner,tablespace_name,initial_extent,next_extent,dba_rollback_segs.status from dba_rollback_segs,v$datafilewhere file_id=file#;给出运行结果截图:2.2.9 Oracle回滚段扩展信息的检查:SQL>col name format a10SQL>set linesize 140SQL>select substr(name,1,40) name,extents,rssize,optsize,aveactive,extends,wraps,shrinks,hwmsizefrom v$rollname rn,v$rollstat rswhere (n=n);给出运行结果截图:2.2.10查看回滚段的使用情况,哪个用户正在使用回滚段的资源:SQL>select ername, from v$transaction t,v$rollstat r,v$rollname u,v$session swhere s.taddr=t.addr and t.xidusn=n and n=n order by ername;给出运行结果截图:2.3 Oracle内存与进程结构2.3.1 查看sga情况:SQL>SELECT NAME, BYTESFROM SYS.V_$SGASTA T ORDER BY NAME ASC;给出运行结果截图:2.3.2数据库共享池性能检查:SQL>Select namespace,gets,gethitratio,pins,pinhitratio,reloads,Invalidations from v$librarycachewhere namespace in ('SQLAREA','TABLE/PROCEDURE','BODY','TRIGGER');给出运行结果截图:2.3.3检查共享内存的剩余情况:SQL>select request_misses, request_failuresfrom v$shared_pool_reserved;给出运行结果截图:2.3.4数据高速缓冲区性能检查:SQL>select 1-p.value/(b.value+c.value) "db buffer cache hitratio"from v$sysstat p,v$sysstat b,v$sysstat cWhere ='physical reads' and ='db block gets' and ='consistent gets';给出运行结果截图:2.3.5检查buffer pool HIT_RATIO执行SQL>select name, (physical_reads/(db_block_gets+consistent_gets)) "MISS_HIT_RATIO"FROM v$buffer_pool_statisticsWHERE (db_block_gets+ consistent_gets)> 0;给出运行结果截图:2.3.6查看排序段的性能:SQL>SELECT name, valueFROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)');给出运行结果截图:2.3.7找到与所连接的会话有关的当前等待事件:SQL>select SW.Sid,ername,SW.Event,SW.Wait_Time,SW.State,SW.Seconds_In_Wait S EC_IN_W AITfrom v$session S,v$session_wait SWwhere ername is not null and SW.Sid=S.Sidand SW.event not like '%SQL*Net%' order by SW.Wait_Time Desc;给出运行结果截图:2.3.8 查看数据库中某用户,正在运行什么SQL语句SQL>SELECT SQL_TEXTFROM V$SQLTEXT T, V$SESSION SWHERE T.ADDRESS=S.SQL_ADDRESSAND T.HASH_value=S.SQL_HASH_value AND S.MACHINE='XXXXX' OR USERNAME='WACOS';给出运行结果截图:2.3.9检查数据重载比率:SQL>select sum(reloads)/sum(pins)*100 "reload ratio"from v$librarycache;给出运行结果截图:2.3.10 检查数据字典的命中率:SQL>select 1-sum(getmisses)/sum(gets) "data dictionary hitratio"from v$rowcache;给出运行结果截图:2.4 其他2.4.1 查看数据库库对象:SQL>select owner, object_type, status, count(*) count# from all_objects group by owner, obj ect_type, status;给出运行结果截图:2.4.2查看数据库的创建日期和归档方式:SQL>Select Created, Log_Mode, Log_Mode From V$Database;给出运行结果截图:2.4.3查看还没提交的事务:SQL>select * from v$locked_object;给出运行结果截图:2.4.5等待时间最多的5个系统等待事件的获取:SQL>select * from (select * from v$system_eventwhere event not like 'SQL%' order by total_waits desc)where rownum<=5;给出运行结果截图:2.4.6 查看当前SQL*PLUS用户的sid和serial#:SQL>select sid, serial#, status from v$session where audsid=userenv('sessionid');给出运行结果截图:2.4.7 查看当前数据库的字符集:SQL>select userenv('language') from dual;给出运行结果截图:2.4.8 查看客户端登陆的IP地址:SQL>select sys_context('userenv','ip_address') from dual;给出运行结果截图:2.5作业与思考练习题I.管理控制文件1、现有控制文件的位置及其名称是什么?提示:查询动态性能视图V$CONTROLFILE。