大型数据库Oracle12C 复习笔记

news2025/1/31 2:54:47

大型数据库Oracle

  • 1 Oracle基础
    • 1.1 Oracle基础概念
    • 1.2 Oracle体系结构
    • 1.3 多租户架构
    • 1.4 Oracle进程
    • 1.5 内存结构
    • 1.6 文件系统
  • 2 Oracle查询
  • 3 Oracle对象
  • 4 Oracle编程

1 Oracle基础

与MySQL、MSSQL不同,Oracle数据库系统是美国ORACLE(甲骨文)公司提供的一款分布式大型关系数据库管理系统数据库有“ 表空间 ”组织数据。

1.1 Oracle基础概念

在这里插入图片描述

  • 数据库是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成。
  • 表空间内的逻辑存储单位为(segment)
  • 又可以继续划分为数据扩展(extent)
  • 数据扩展是由一组连续的数据块(data block)构成。

①逻辑存储结构:
数据块:最精细的数据存储粒度是数据块(data block)。一个数据块相当于磁盘上一段连续的物理存储空间。
数据扩展:由一组连续的数据块(data block)构成、比数据块更高一层的数据库逻辑存储结构,用于存储信息。
数据段:当一个段中已有空间已经用完,Oracle为这个段分配新的数据扩展。当一个段中已有空间已经用完,Oracle为这个段分配新的数据扩展。
表空间:表空间是一个或多个数据文件的逻辑表示。 每一个Oracle数据库都包含名为 SYSTEM和SYSAUX 的表空间,她们在数据库创建时由Oracle自动创建。只要数据库处于开启(open)状态,SYSTEM 表空间就一定是联机(online)的;SYSAUX 表空间(tablespace)是 SYSTEM 表空间的一个辅助性表空间。Oracle中很多组件使用 SYSAUX 表空间作为默认的数据存储位置。

②物理存储结构:
数据文件(dbf):用来存储真实物理数据的,所以数据文件是存储数据的物理概念,一个Oracle数据库可以拥有一个或多个物理的数据文件。每个表空间都是由一个或多个数据文件构成的。一个数据文件只能由一个数据库的一个表空间使用。
控制文件:数据库控制文件(control file)是一个二进制文件,供数据库启动及正常工作时使用。在数据库运行过程中,控制文件会频繁地被Oracle修改,因此数据库处于开启状态时控制文件必须可写。如果控制文件因故不能访问,数据库也将无法正常工作。 每个控制文件只能供一个Oracle数据库使用。
数据字典:Oracle数据库的重要组成部分,用来存放Oracle数据库所有的信息,其用途是用来描述数据的,它由一系列拥有数据库元数据信息的数据字典表和用户可以读取的数据字典视图组成,存放在SYSTEM表空间中。Oracle中的数据字典有静态和动态之分,静态数据字典主要由表和视图组成,静态数据字典中的表是不能直接被访问的,而视图是可以直接访问的;动态数据字典包含了一些潜在的由系统管理员如SYS维护的表和视图,由于这些表和视图在数据库运行时会不断进行更新,故称之为动态数据字典(或者动态性能视图),这些视图提供了关于内存和磁盘的运行情况,所以用户只能对其进行只读访问而不能修改

1.2 Oracle体系结构

Oracle 数据库服务器由一个数据库至少一个数据库实例组成。

数据库是磁盘上存储数据的一组文件的集合,这些文件可以独立于数据库实例存在,Oracle的数据库是基于多租户架构的。
数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件 数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件 数据库=重做文件+控制文件+数据文件+临时文件
数据库实例则是管理数据库文件的内存结构。一个数据库实例有一组后台进程 和 一个称为系统全局区(SGA)的共享内存区组成。
O R A C L E 实例 = 进程 + 进程所使用的内存 ( S G A ) ORACLE实例 = 进程 + 进程所使用的内存(SGA) ORACLE实例=进程+进程所使用的内存(SGA)

此外,数据库是由后台进程组成。
数据库和实例是紧密相连的,所以我们一般说的 Oracle 数据库,通常指的就是实例和数据库。
在这里插入图片描述

1.3 多租户架构

多租户架构(multitenant architecture)使得Oracle数据库可以作为一个包含0个、1个或者多个用户创建的可插拔式数据库(Pluggable Database, PDB)的多租户容器数据库(Container Database, CDB)

PDB是一个模式、模式对象和非模式对象的便携式集合,以一个非CDB形式展现给Oracle Net客户端。Oracle Database 12c之前的数据库都是非CDB。

容器(container)可以是一个PDB或者root容器(也称为root)。Root容器是一个模式、模式对象和非模式对象的集合,所有的PDB都属于root。
在这里插入图片描述

上图中显示了一个拥有4个容器的CDB:root,种子PDB以及2个PDB。每个PDB拥有自己专有的应用,并且由它自己的PDB管理员进行管理。

多租户体系结构的优势:(1)数据库整合优势(2)可管理性优势

1.4 Oracle进程

一个Oracle数据库实例包括三种类型的进程:用户进程、服务器进程和后台进程。服务器进程和后台进程统称为Oracle进程。一般情况下,Oracle进程(服务器)和用户进程(客户端)运行在不同的计算机上。

1.用户进程/ 客户端进程(User Process/ Client Process),可以看做是一些试图连接数据库服务器的软件,例如客户工具。用户进程可以使用Oracle网络服务(Oracle Net Services)与数据库进行通信。
Oracle网络服务是一组通过网络连接协议提供连接的足迹,对于应用开发人员和数据库管理员来说,Oracle网络服务屏蔽了不同硬件平台上设置不同网络的复杂性。

2.服务器进程(Server Process)用于处理连接到该数据库实例的用户进程的请求。用户进程一直都会通过一个服务器进程与数据库进行通信,当Oracle 网络服务接收到用户进程的连接请求后,就会将用户进程路由到一个服务器进程。

服务器进程负责在用户进程和Oracle实例之间调度请求和响应。当用户进程提交某请求后,服务器进程则负责执行该请求,即将数据从磁盘读入缓存,获取请求结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发给用户进程,以便用户进程进行合适的处理。
可以根据服务器的体系结构,在用户进程和服务器进程之间维护这种连接,以便不需要重新建立连接就可以管理随后的请求。在Oracle系统中,有两种不同的体系结构,即专用服务器模式和共享服务器模式,这两种连接模式都可以连接用户进程和服务器进程。

专用服务器(Dedicated Server)连接模式下,每个用户进程都关联一个且仅一个服务器进程。专用服务器为用户进程和服务器进程之间提供了一种一对一的映射关系,比如连接到某数据库实例的20个用户进程就相应地关联着20个服务器进程。每一个用户进程仅与它关联的服务器进程之间进行通信,而每一个服务器进程在其会话存在期间专门为与其关联的用户进程提供专用服务。服务器进程在它的系统全局区(PGA)中存储特定的进程信息和用户全局区(UGA)。
共享服务器(Shared Server)连接模式下,多个用户进程通过网络连接到一个调度程序(服务器代理),而不是连接到一个服务器进程,该调度程序负责在用户进程与服务器进程之间进行路由。比如,20个用户进程连接到1个调度程序,通过该调度程序,所有用户进程共享同一个或多个服务器进程。

3.Oracle监听器(Listener)是一个运行于Oracle数据库服务器上的进程,其主要任务是监听来自客户应用的连接请求。
客户负责在初始化连接请求中向监听器发送服务名称。该服务名称是一个标识符,它可以唯一地标识客户试图连接的数据库实例。监听器可以接受请求,判断请求是否合法,然后将连接路由到适当的服务器进程中。当然,Oracle监听器不仅能够监听数据库实例,还可以监听其他服务,例如HTTP服务器和IIOP服务器。

4.后台进程(Background Process)是供多进程Oracle数据库使用的附加进程,无论用户是否连接数据库,这些进程都会作为数据库的一部分在运行,每一个后台进程都有自己独立的职责,但也需要与其它进程协同工作。如果这些后台进程崩溃了,数据库也就随之崩溃了。后台进程主要执行操作数据库所需要的维护任务以及最大限度地提高数据库的性能。
Oracle数据库在数据库实例启动时自动运行后台进程,一个数据库实例可以有很多后台进程,并不是所有的后台进程都是一直存在并运行于数据库配置中。有些后台进程是强制的,有些是可选的,还有一些是从属的。

强制的:
①进程监视器(Process Monitor Process, PMON):进程监视器用于监视其他后台进程。
②监听注册器(Listener Registration Process, LREG):监听注册器用来注册数据库实例信息以及与Oracle网络监听器关联的调度程序相关的信息
③系统监视器(System Monitor Process, SMON)
④数据库写入器(Database Writer Process, DBW)
⑤日志写入器(Log Writer Process, LGWR)
⑥检查点(Checkpoint Process, CKPT)
⑦可管理性监视器(Manageability Monitor Processes, MMON&MMNL)
⑧恢复器(Recoverer Process, RECO)
可选的:
①归档器(Archive Process, ARCn):只有在数据库处于归档模式(ARCHIVELOG mode),且自动归档处于开启状态时,这些归档进程才存在。
②作业队列(Job Queue Process, CJQ0 & Jnnn)
③闪回数据归档器(Flashback Data Archive Process, FBDA)
④空间管理协调器(Space Management Coordinator Process, SMCO)
从属的:
①I/O从属进程
②并行执行(Parallel Execute, PX)服务器进程

1.5 内存结构

1.6 文件系统

2 Oracle查询

3 Oracle对象

4 Oracle编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在用chatGPT聊天?《元宇宙2086》已开始用AIGC做漫画连载了!

ChatGPT 是由 OpenAI开发的一个人工智能聊天机器人程序,于 2022 年 11 月推出。该程序使用基于 GPT-3.5架构的大型语言模型并通过强化学习进行训练。 ChatGPT 目前仍以文字方式互动,而除了可以透过人类自然对话方式进行交互,还可以用于相对复…

多线程使用哈希表

❣️关注专栏: JavaEE 多线程环境使用哈希表,HashMap 本身不是线程安全的. 在多线程环境下使用哈希表可以使用: Hashtable(不推荐使用)ConcurrentHashMap(推荐) 🎈1 Hashtable Hashtable是线程安全的&am…

OpenGL中图片尺寸和上屏尺寸不一致的变形问题解决

一、尺寸不一致问题: 图片加载到OpenGL纹理,再将纹理进行上屏的时候,可能会出现图片尺寸和屏幕尺寸不一致,导致图片绘制到屏幕时出现变形的问题: 二、根本原因: 原始图片的纹理尺寸(Textur…

计网之IP协议和以太网

文章目录一. IP协议1. IPv4报头介绍2. 解决IPv4地址不够用的问题3. IP地址管理4. 路由选择二. 以太网三. 浅谈DNS域名解析系统一. IP协议 IP协议是位于OSI模型中第三层(网络层)的协议, 在这层上工作的不止这一个协议, 但IP协议是网络层传输所使用的最主流的一种协议, 有IPv4和…

C语言——指针进阶

目录 前言 一. 字符指针 二. 指针数组 三. 数组指针 3.1 何为数组指针? 3.2 &数组名与数组名 四. 数组参数、指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 五. 函数指针 六. 函数指针数组 七. 指向函数指针数组…

Java 继承中构造函数的问题

继承中构造函数的问题 父类构造函数和子类构造函数的关系 new一个之类对象时默认调用了父类的无参构造函数 ,创建了父类对象 父类的成员变量和成员方法才能创建出来 子类才能继承下来使用 首先创建一个父类,动物类 接下来创建一个子类,狗类&#xff…

基于OSG的虚拟校园系统的设计与实现

基于open scene graph的虚拟校园系统的设计与实现 摘要 •引言 • OSG基本原理 •OSG操作与动画 •视点的定位和切换 •自由漫游 •路径漫游 • 路径动画 • 点选和文字 • 粒子系统 • 3DMAX • 无线通信与数据库设计 • 实现步骤 • 结论 摘要 随着科技的不断发展,人工智能&a…

2023年,8种必备Selenium编写自动化用例的技巧

在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具。有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂。在编写自动化代码时,重要的是我们能够…

2023年网络安全十大发展趋势

近日,中国计算机学会(CCF)计算机安全专委会中来自国家网络安全主管部门、高校、科研院所、大型央企、民营企业的委员投票评选出2023年网络安全十大发展趋势。 趋势一 数据安全治理成为数字经济的基石 我国《数据安全法》提出“建立健全数据…

spring的启动过程(一) :IOC容器的启动过程

一、web容器的加载 首先我们要先知道一个web项目的启动过程。 将Web项目部署到Tomcat中的方法之一,是部署没有封装到WAR文件中的Web项目。要使用这一方法部署未打包的webapp目录,只要把我们的项目(编译好的发布项目,非开发项目&am…

掌握MySQL分库分表(五)SpringBoot2+MybatisPlus整合Sharding-Jdbc水平分表实现

文章目录创建Java-Maven项目创建数据库、表创建Java实体类配置启动类水平分表配置文件配置测试分库分表实现分析控制台SQL逻辑SQL真实SQL主键重复问题创建Java-Maven项目 添加依赖 <properties><java.version>11</java.version><maven.compiler.source&…

PMP考试有没有什么技巧可以介绍一下么?

一、试题形式 ——中英文对照 即每道题都是一遍英文&#xff0c;一遍翻译的中文&#xff0c;在审题的时候有一些小的技巧需要注意。首先如果你的英文水平足够好&#xff0c;建议直接阅读原文。PMP试题毕竟是美国人出的&#xff0c;语言的组织、思想的表达&#xff0c;肯定更符…

python居然能语音控制电脑壁纸切换,只需60行代码

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 家在日常的电脑使用中&#xff0c;都会有自己喜爱类型的桌面 单纯的桌面有时候会让人觉得单调 今天&#xff0c;就由我带领大家只用60行代码打造一款语音壁纸切换器程序&#xff0c; 让大家能够通过语音的方式来控制电脑去…

c++模板的简单认识

文章目录 前言一.泛型编程 函数模板 模板参数的匹配原则 类模板总结前言 ADD函数很好写&#xff0c;但是如果我们要有int类型的&#xff0c;double类型的&#xff0c;char类型的等等各种类型&#xff0c;难道要写这么多不同的ADD函数吗&#xff0c;这么写简直太麻…

Linux:基于bufferevent epoll tcp服务器代码

基于bufferevent epoll tcp服务器代码: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <event2/event.h> #include <event2/buffer…

Excel/Word的一些快捷操作整理

Excel/Word的一些快捷操作整理 1. 给Word文件导入目录 前提&#xff1a;大致内容已经定稿&#xff0c;文章中各标题分级明确&#xff0c;最好各级标题字体大小设置不一样。 步骤&#xff1a;在头部导航栏&#xff0c;选择**“引用”–“目录”**&#xff0c;根据自己需求选择其…

KDJB1200六相继电保护测试仪

一、概述 KDJB1200继电保护测试仪是在参照电力部颁发的《微机型继电保护试验装置技术条件(讨论稿)》的基础上&#xff0c;广泛听取用户意见&#xff0c;总结目前国内同类产品优缺点&#xff0c;充分使用现代新的的微电子技术和器件实现的一种新型小型化微机继电保护测试仪。可…

DataWhale 大数据处理技术组队学习task3

四、分布式数据库HBase 1. 产生背景 1.1 Hadoop的局限性 优点&#xff1a;存储结构化、半结构甚至非结构化的数据&#xff0c;是传统数据库的补充&#xff0c;是海量数据存储的最佳方法。缺陷&#xff1a; 只能进行批处理&#xff0c;并且只能以顺序的方式访问数据。&#x…

【C++】-- 异常

目录 C语言传统的处理错误的方式 C异常概念 异常的使用 异常的抛出和捕获 自定义异常体系 异常的重新抛出 异常安全 异常规范&#xff08;C期望&#xff09; C标准库的异常体系 异常的优缺点 C异常的优点 C异常的缺点 总结 C语言传统的处理错误的方式 传统的错误…

zookeeper单机部署

一.下载zookeeper压缩包 二.上传解压安装包到/data/zookeeper目录&#xff0c;并解压 tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz 三.修改配置文件 cd apache-zookeeper-3.5.10-bin/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg 修改为如下&#xff1a; dataDir/data/zooke…