Oracle的主要组件和基本概念
oracle
简介
oracle(甲骨文)公司
1977年,三人合伙创办(Software Development Laboratories,SDL)
1979年,更名为Relational Software Inc.,RSI
1983年,为了突出核心产品 ,RSI更名为Oracle
2002年04月26日,启用“甲骨文”作为中文注册商标
oracle 主要组件
数据库
- 数据库就是存储数据的一种媒介,即磁盘上存储的数据的集合。
- 在物理上表现为数据文件,日志文件,和控制文件等。
- 在逻辑上以表空间形成存在。
- 首先必须创建数据库,才能使用oracle。
- 数据库包含的文件有:
- 数据文件,扩展名是.DBF,用于存储数据库数据的文件,数据库和数据文件不存在一对一对应关系。一个数据库,可以拥有多个数据文件,但一个数据文件只能对应一个数据库。
- 控制文件,扩展名是.CTL,是数据库启动以及运行所必须要的文件,默认包含三个控制文件,各个控制文件内容相同。
- 日志文件,扩展名是.LOG,它记录了对数据的所有更改信息,多个日志文件组之间循坏使用。
- Oracle数据库还包含如参数文件,网络文件,备份文件,以及用于备份和恢复的归档重做日志文件等重要文件。
数据库实例
实例的概念是指oracle系统中一系列进程,以及为这进程所分配的内存块。每个启动的数据库,都对应一个数据库实例,由这个实例,来访问和控制数据库。
在oracle中,我们可以新建一个Oracle实例,这个时候虽然有了SGA等一些列内存块,但是这个时候并没有把数据库文件读取进来。所以只是一个实例,再后来,你可以通过,命令手段,或者自动的把数据库文件加载进我们这个实例中。这个时候的数据库才可以真正让我们访问和操作。所以说,数据库的应用如果想实现,数据库,和数据库实例是缺一不可的。如果只有数据那些文件,那么,只能代表这些数据在这个文件中,但是我们无法进行操作,而如果只有数据库实例,那么我虽然可以操作数据,但是不知道操作哪些数据。操作生产的数据也无法保存等。所以,当一个Oracle实例真正加载一个Oracle Datebase了以后,数据库才可以被我们使用。
当一个实例启动时,Oracle数据库分配一个称为系统全局区(SGA)的内存区域,并启动一个或者多个后台进程。
系统全局区(SGA)的内存区域作用包括:
- 维护多个进程和线程并发访问的内部数据结构
- 缓存从磁盘读取的数据块
- 在写入在线重做日志文件之前缓冲重做数据
- 存储 SQL 执行计划
系统全局区SGA内存结构包括:
1 共享池 2 数据缓冲区 3 日志缓冲区
- 共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。共享池由库缓存和数据字典缓存组成。共享池的大小直接影响数据库的性能
- 数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。数据缓冲区的大小对数据库的读取速度有直接的影响
- a.日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小
Oracle基本概念
表空间
- 表空间是Oracle数据库中最大的逻辑结构。它提供了一套有效组织数据的方法,是组织数据和进行空间分配的逻辑结构,可以将表空间看作是数据库对象的容器。简单地说,表空间就是一一个或多个数据文件(物理文件)的集合(逻辑文件),所有的数据对象都被逻辑地存放在指定的表空间中。
- 每个Oracle数据库都是由若干个表空间构成
- 用户在数据库中建立的所有内容都被存储到表空间
- 创建数据库时会自动创建若干表空间
- Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
- 表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
全局数据库名
- 用于区分一个数据库的内部标识
- 全局数据库名=数据库名+域名
- 使数据库的取名在整个网络环境中唯一
模式和模式对象
模式为模式对象的集合,模式是一个逻辑容器,你可以把模式理解为文件夹,方便我们对一组数据库对象进行管理。通常,一个大的系统由许多小的系统组成,我们可以给每个小的系统创建一个模式,把该系统中用到的数据库对象都创建在这个模式中。例如,每个公司都会有员工,我们可以创建一个模式 HR,然后在 HR 中创建一个表 EMPLOYEES 来维护员工信息,如果需要在其他模式中访问 EMPLOYEES 表,我们需要指定它的全名 HR.EMPLOYEES。
每一个用户对应一个模式,模式隶属于某个数据库用户,模式名和数据库用户是相同的,那如何创建模式呢?很简单,其实就是创建数据库用户就创建了同名的模式
模式对象是用户拥有的对象,我们可以在模式中创建表(Table), 分区(Partition), 视图(View), 索引(Indexe), 包(Package),存储过程(Procedure),函数(Function),触发起(Trigger),类型(Type), 序列(Sequence), 同义(Synonym)等数据库对象。
非模式对象与用户无关,如上下文(Contexts) 目录(Directory) 概要文件(Profile) 角色(Role) 表空间(Tablespaces) 用户(User)
SYS 和 SYSTEM 模式
当我们安装 Oracle 的时候,系统自动帮我们创建了 SYS 和 SYSTEM 模式,它们拥有最高权限,用来管理数据库
sys用户是超级用户,具有最高权限即sysdba角色,有create database的权限,所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。
system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。 system用户as sysdba登录时和sys一样,可以用show user查看当前用户进行验证。system用户不能以 as sysoper角色登录,只能以normal角色登录。即conn system/pwd。
Oracle的主要组件和基本概念的更多相关文章
- Oracle数据访问组件ODAC的安装方法
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- Oracle数据访问组件ODAC的安装方法:
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- 安装oracle XML Database 组件
近期部署项目数据库,编译包时遇到错误: PACKAGE CTG.CTG_CSB_COMMON 编译错误 错误:PLS-00201: identifier 'XMLDOM' must be dec ...
- SSIS利用Microsoft Connector for Oracle by Attunity组件进行ETL!
对于BI项目,在数据仓库方面的技术实现主要是进行数据集成的工作,源数据可能来自不同的业务数据库(如Sql Server.ORACLE.My sql.EXCEL等),通过SSIS的数据流组件很容易进行各 ...
- 极客时间_Vue开发实战_05.Vue组件的核心概念(1):属性
05.Vue组件的核心概念(1):属性 代码地址: https://github.com/tangjinzhou/geektime-vue-1/blob/master/%E6%BC%94%E7%A4% ...
- 极客时间_Vue开发实战_06.Vue组件的核心概念(2):事件
06.Vue组件的核心概念(2):事件 通过emit传递给父组件 我们点击了重置失败,上层的div的click=handleDivClick是接收不到.重置失败的点击的行为的 通常情况下,你不用.st ...
- 极客时间_Vue开发实战_07.Vue组件的核心概念(3):插槽
07.Vue组件的核心概念(3):插槽 严格来的说在2.0之后已经不分区这两种插槽的概念了. 因为它底层的实现已经趋向于相同了. 2.6为了兼容2.5的版本,现在依然可以用这两种写法 作用域插槽就是多 ...
- oracle 11g RAC 的一些基本概念(三)
Grid Infrastructure共享组件 Grid Infrastructure使用两种类型的共享设备来管理集群资源和节点:OCR(Oracle Cluster Registry)和表决磁盘 ...
- Oracle实例名,服务名等概念区别与联系
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
随机推荐
- 配置阿里云maven
在安装好Maven之后,默认的~/.m2目录下是没有maven仓库配置文件settings.xml的,默认使用的是官方的仓库,访问速度会非常慢,我们需要配置下国内的仓库. 创建~/.m2/settin ...
- 『Python』优雅的记录日志——loguru
1. 安装 pip install loguru 2. 初识 from loguru import logger logger.debug("This is a debug..." ...
- 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 | 百篇博客分析OpenHarmony源码 | v43.02
百篇博客系列篇.本篇为: v43.xx 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪里 ...
- SQL Server附加数据库错误5120处理方法
SQL Server附加数据库5120错误 当我们从另外一台服务器复制过来的数据库,可能会有如下错误: 解决方法 1.给数据库所在文件夹增加用户Everyone并赋予完全控制权限 2.以管理员身份运行 ...
- @ConfigurationProperties与@Value的区别
1. 首先我们来看每一个的具体使用 1. ConfigurationProperties 1. application.yml文件中: person: lastName: xj age: 18 bos ...
- DBeaver MSSQL 支持TLS设置
DBeaver是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议.可以通过官方网站或者 Github 进行下载. 由于 DBeaver 基于 Java 开发, ...
- Go的Select
Go 的通道有两种操作方式,一种是带 range 子句的 for 语句,另一种则是 select 语句,它是专门为了操作通道而存在的.这里主要介绍 select 的用法. 一.select的语法 se ...
- CSharp委托与匿名函数
CSharp委托与匿名函数 场景 面对事件处理,我们通常会通过定义某一个通用接口,在该接口中定义方法,然后在框架代码中,调用实现该接口的类实例的方法来实现函数的回调.可能这样来说有些抽象,那我们提供一 ...
- 精准容量、秒级弹性,压测工具 + SAE 方案如何完美突破传统大促难关?
作者 | 代序 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文 ...
- java设计模式_工厂模式
关于设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证 ...