Oracle(2-7)Instance and Media Recovery Structures

文章目录

  • 一、基础知识
    • 1、体系结构详解
    • 2、Database Files 数据库文件
    • 3、Database Other Files 其他数据文件
    • 4、Dynamic Views 动态视图
    • 5、Large Pool
    • 6、DB Buffer Cache,DBWn
    • 7、Configuring Tablespaces 配置表空间
    • 8、Redo Log Buffer, LGWR
  • 二、基础操作
    • 1、查看数据库动态视图

在这里插入图片描述

Instance and Media Recovery Structures 实例和介质恢复结构
目标:

  • 掌握与恢复相关的Oracle进程、内存结构和文件
  • 了解检查点、重做日志文件和归档日志文件的重要性
  • 掌握优化实例恢复的方法

一、基础知识

1、体系结构详解

在这里插入图片描述

  • SGA
    • Database buffer cache:用于存储从数据文件读取的块的内存区域。数据由服务器进程读取到块中,并由DBWn异步写入。
    • Log buffer:包含要写入重做日志的更改数据的前后映像副本的内存
    • Large pool:SGA中的一个可选区域,为备份和恢复操作、I/O服务器进程以及共享服务器和 Oracle XA的会话内存提供大量内存分配。
    • Shared pool:存储SOL语句、PL/SOLprocedures和数据字典信息的解析版本
    • Java pool:在服务器内存中用于Java虚拟机(JVM)中所有特定于会话的Java代码和数据。
  • Background Processes 后台进程
    • Database writer(DBWn):将脏缓冲区从数据缓冲区缓存写入数据文件。此活动是异步的。
    • Log writer (LGWR):将数据从重做日志缓冲区写入重做日志文件
    • System monitor(SMON):执行自动实例恢复。在空间段不再使用时恢复它们。根据设置的参数合并可用空间的连续区域。
    • Process monitor(PMON):清理用于正常终止的用户进程的连接/服务器进程。执行回滚并释放失败进程所占用的资源。
    • Checkpoint(CKPT):将数据文件和控制文件的标头与当前重做日志和检查点编号同步
    • Archiver (ARCn)(optional):自动复制已标记为存档的重做日志的过程。
  • User & Server Process 用户和服务器进程
    • The User Process:用户进程是在用户启动工具(如SQL*Plus、Oracle Forms Developer、Oracle Reports Developer、Oracle Enterprise Manager等)时创建的。此进程可能位于客户端或服务器上,并为用户提供一个界面,用于输入与数据库交互的命令。
    • The Server Process:服务器进程接受来自用户进程的命令,并执行步骤来完成用户请求。如果数据库不在共享服务器配置中,则在建立有效连接时,会在包含实例的计算机上创建服务器进程。

2、Database Files 数据库文件

Oracle数据库由以下物理文件组成(这些文件的格式都是二进制的):

  • Datafiles:数据的物理存储。每个数据库至少需要一个文件。此文件存储系统表空间。
  • Redo logs:包含更改数据的前后映像副本,用于恢复目的。至少需要两组。
  • Control files:记录数据库的状态。物理结构和RMAN元数据
  • Archive logs(optional):联机重做日志文件的物理副本。当数据库设置为存档日志模式时创建。用于恢复中。

3、Database Other Files 其他数据文件

  • Initialization parameter file初始化参数文件:实例启动所需的存储参数,数据类型为TEXT
  • Server initialization parameter file服务器初始化参数文件:存储实例启动所需的持久参数,数据类型为二进制
  • Password file(optional)密码文件(可选):存储可以启动关闭并恢复数据库的用户的信息,数据类型为二进制

4、Dynamic Views 动态视图

Oracle服务器提供了许多标准视图来获取数据库和实例的信息。这些视图包括:

  • V$SGA:查询共享池、日志缓冲区、数据缓冲区的实例大小和固定的内存大小(取决于操作系统)
  • V$INSTANCE:查询实例的状态,如实例模式、实例名称、启动时间和主机名
  • V$PROCESS:查询为实例创建的后台和服务器进程
  • V$BGPROCESS:查询为实例创建的后台进程
  • V$DATABASE:列出有关数据库的状态和恢复信息。它包括关于数据库名称、唯一数据库标识符、创建日期、控制文件创建日期和时间、最后一个数据库检查点和其他信息的信息。
  • V$DATAFILE:列出数据库中包含的数据文件的位置和名称。它包括与文件编号和名称、创建日期、状态(在线或离线)、启用 (只读、读写)、最后数据文件检查点、大小和其他信息有关的信息。

5、Large Pool

  • 可配置为SGA中的单独内存区域,用于:
    • Oracle备份和恢复操作
    • I/0服务器进程
    • 共享服务器的会话内存
  • 由LARGE_POOL_SIZE参数确定大小

大池用于从共享内存中分配顺序的I/0缓冲区。对于I/0从站和甲骨文备份和恢复,RDBMS分配的缓冲区大小为几百KB。
配置大型池可以防止RMAN与其他子系统争夺相同的内存。当您将DBWR_IO_SLAWS或BACKUP_TAPE_IO_SLAWS参数设置为模拟异步10时,恢复管理器(RMAN)将使用大池进行备份和恢复。如果这两个参数都未启用,那么甲骨文将从本地进程内存而不是共享内存分配备份缓冲区。因此,不使用大池。如果设置了LARGE_POOL_SIZE,那么甲骨文将尝试从大型池中获取内存。如果这个值不够大,那么甲骨文不会尝试从共享池中获取缓冲区。如果没有设置LARGE_POOL_SIZE初始化参数,那么甲骨文服务器将尝试从SGA中的共享池中分配共享内存缓冲区。
如果甲骨文无法获得足够的内存,那么它从本地进程内存中获得1/0缓冲内存,并向alert.log文件写入一条消息,指示同步I/0用于备份。

6、DB Buffer Cache,DBWn

  • Function of the Database Buffer Cache 数据库缓冲区缓存的功能:
    • 数据库缓冲区缓存是SGA中用于存储最近使用的数据块的区域
    • 服务器进程从数据文件中读取表、索引和撤消段,并在需要时对缓冲区缓存中的数据块进行更改
    • Oracle服务器使用最近最少使用 (LRU) 算法来确定哪些缓冲区可以覆盖,以适应缓冲区缓存中的新块。
  • Function of the DBWn Background Process DBWn后台进程的功能:
    • 数据库写入程序进程(DBWn)将脏缓冲区从数据库缓冲区缓存写入数据文件。它确保数据库缓冲区缓存中有足够数量的可用缓冲区(当服务器进程需要从数据文件中读取块时,可以覆盖的缓冲区)。
    • 数据库编写器定期同步数据库缓冲区缓存和数据文件:这是在各种情况下触发的检查点事件。
    • 虽然一个数据库写入进程对于大多数系统来说已经足够了,但是如果您的系统需要大量修改数据,您可以配置其他进程(DBW1到DBW9)来提高写入性能。这些额外的数据库写入进程在单处理器系统上是没有用的。

7、Configuring Tablespaces 配置表空间

表空间包含一个或多个数据文件。重要的是要谨慎地创建表空间,以提供灵活和可管理的备份和恢复策略。以下是表空间的非典型配置,考虑到备份和恢复操作的要求:

  • System: 如果系统和用户数据包含在不同的表空间中,备份和恢复就更加灵活
  • Temporary:如果包含临时段 (用于排序等) 的表空间丢失,可以重新创建它,而不是恢复它。
  • Undo(重要):备份撤销表空间的过程与备份任何其他读/写表空间的过程完全相同。由于自动撤消表空间对于恢复和读取一致性非常重要,因此应该经常对其进行备份。
  • Read-only data: 可以减少备份时间,因为只有在将表空间设为只读时才必须备份表空间。
  • Highly volatile data高度易失性数据(重要):应该更频繁地备份该表空间,同时减少恢复时间
  • Index data: 应该创建只存储索引段的表空间。通常可以重新创建这些表空间而不是恢复它们。

8、Redo Log Buffer, LGWR

  • Function of the Redo Log Buffer 恢复日志缓冲区的功能:
    • 重做日志缓冲区是一个循环缓冲区,它保存有关对数据库所做更改的信息。这些信息存储在重做条目中。
    • 重做条目包含重建或重做INSERT、UPDATE、DELETE、CREATE、ALTER或DROPoperation对数据库所做更改所需的信息。恢复条目用于数据库恢复(如有必要)。
    • 重做条目由Oracle服务器进程从用户的内存空间复制到重做日志缓冲区。
  • Function of the LGWR Background Process LGWR后台进程的功能:
    • 日志写入器 (LGWR) 将重做条目从重做日志缓冲区写入重做日志文件,如下所示:
    • 重做日志缓冲区已满三分之一时
    • 当超时发生时(每三秒钟)
    • 当有1MB的重做
    • 在DBWn将数据库缓冲区缓存中的修改块写入数据文件之前
    • 当一个事务提交
  • Redo Log Switches
    • 在日志切换时,当前重做日志组被分配一个日志序列号,该日志序列号标识存储在该重做日志组中的信息,并且也用于同步。
    • 日志切换发生在LGWR停止写入一个重做日志组并开始写入另一个重做日志组时
    • 当LGWR填充了一个日志文件组时,将发生日志切换
    • DBA可以使用ALTER SYSTEM SWITCH LOGFILE命令强制进行日志切换
    • 在日志开关处自动发生检查点。
    • 只要组中至少有一个成员可用,处理就可以继续。如果成员损坏或不可用,消息将写入LGWR跟踪文件和警报日志。

二、基础操作

1、查看数据库动态视图

此处对应基础知识的第4部分
连接数据库查看动态视图
在这里插入图片描述

SELECT * FROM V$SGA;

在这里插入图片描述

  • Fixed Size:是固定的大小
  • Variable Size:大小是可变的,包括了Large pool、Shared pool、Java pool等
  • Database Buffers:用于存储从数据文件读取的块的内存区域,这部分一般比较大
  • Redo Buffers:包含要写入重做日志的更改数据的前后映像副本的内存
SELECT * FROM V$SGASTAT;

在这里插入图片描述
查看其他动态视图的方法也是这样的,可以参考基础知识的第四部分查看其他动态视图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的高校学生管理系统的设计和实现

项目编号: S 029 ,文末获取源码。 \color{red}{项目编号:S029,文末获取源码。} 项目编号:S029,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 学院课程模块2.3 学…

【微服务专题】微服务架构演进

目录 前言阅读对象阅读导航前置知识笔记正文一、系统架构的演变1.1 单体架构1.2 单体水平架构1.3 垂直架构1.4 SOA架构1.5 微服务架构 二、如何实现微服务架构2.1 微服务架构下的技术挑战2.2 微服务技术栈选型2.3 什么是Spring Cloud全家桶2.4 Spring Cloud Alibaba版本选择 学…

合并区间[中等]

一、题目 以数组intervals表示若干个区间的集合,其中单个区间为intervals[i] [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:intervals […

人工智能-产生式系统实验(动物识别)

1.实验目的 1.熟悉知识的表示方法 2.掌握产生式系统的运行机制 3.产生式系统推理的基本方法。 2.实验内容 运用所学知识,设计并编程实现一个小型动物识别系统,能识别虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物的产生式系统。 规则库&…

SPSS生存分析:寿命表分析

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝙蝠算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

分布式运用之ELK企业级日志分析系统

1.1 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch: 是基于Lucene(一个全文检索引…

Python(八十九)函数的参数的内存分析

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

SQL注入-数据库基础/SQL语法

目录 一,数据库概述 1.1 数据库 1.2 了解 ACID 理论 1.3 识别数据库 二,SQL 语法基础 三,SQL语句实例 3.1 SQL基础语句 3.2 SQL高级语句 四,基于SQL注入理解语法/函数 4.1 语法 4.2 函数 五,目录数据库info…

【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)

​ 目录 一、排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法 二、常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.1.3 直接插入排序和希尔排序的性能对比 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.2.3 直接选择排序和堆排序的性能…

整车测试中的UDS诊断

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能,包括电控燃油喷射系统&#xff0…

WPF中DataGrid解析

效果如图&#xff1a; 代码如下&#xff1a; <DataGrid Grid.Row"1" x:Name"dataGrid" ItemsSource"{Binding DataList}" AutoGenerateColumns"False"SelectedItem"{Binding SelectedItem,UpdateSourceTriggerPropertyChange…

Redis 主库挂了,如何不间断服务?

目录 1、哨兵机制的基本流程 2、主观下线和客观下线 3、如何选定新的主库&#xff1f; 总结 // 你只管前行&#xff0c;剩下的交给时间 在 reids 主从库集群模式下&#xff0c;如果从库发生故障了&#xff0c;客户端可以继续向主库或其他从库发送请求&#xff0c;进行相关的…

Spring Cloud,注册中心,配置中心,原理详解

文章目录 Spring Cloud&#xff0c;注册中心&#xff0c;配置中心&#xff0c;原理详解谈谈我个人对 spring Cloud 的理解 注册中心Eureka&#xff1a;服务搭建小结 Ribbo - 负载均衡1. 负载均衡流程2. 负载均衡策略 nacos注册中心1. 配置集群1. 创建 namespace2. 配置命名空间…

Redis 的过期策略都有哪些?

思考:假如redis的key过期之后&#xff0c;会立即删除吗&#xff1f; Redis对数据设置数据的有效时间&#xff0c;数据过期以后&#xff0c;就需要将数据从内存中删除掉。可以按照不同的规则进行删除&#xff0c;这种删除规则就被称之为数据的删除策略&#xff08;数据过期策略…

如何运行C/C++程序

一、在线运行C/C 码曰 - 让代码在云端多飞一会&#xff1a;这是一个支持C/C&#xff0c;Java&#xff0c;Python等多种语言的在线编程&#xff0c;编译运行&#xff0c;粘贴分享的平台。你可以在这里输入你的代码&#xff0c;点击运行按钮&#xff0c;就可以看到输出结果。你也…

【shell】多行重定向与免交互expect与ssh、scp的结合使用

目录 一、多行重定向 举例1&#xff1a;使用read命令接收用户的输入值会有交互过程 举例2&#xff1a;设置变量的值 举例3&#xff1a;创建用户密码 举例4&#xff1a;使用多行重定向写入文件中&#xff08;以repo文件举例&#xff09; 举例5&#xff1a;变量设定 二、免…

微信小程序开发——开发账号注册与配置

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 概述 本文的重点在于介绍注册微信小程序开发账号的步骤及其流程。 账号注册 请点击官方网站右上角的 https://mp.weixin.qq.com/ 立即注册&#xff0c;图示如下&#xf…

【C++ Primer Plus学习记录】while循环

while循环是没有初始化和更新部分的for循环&#xff0c;它只有测试条件和循环体&#xff1a; while(test-condition)dody 首先&#xff0c;程序计算圆括号内的测试条件表达式。如果该表达式为true&#xff0c;则执行循环体内的语句。与for循环一样&#xff0c;循环体也由一条…

RPC之grpc重试策略

1、grpc重试策略 RPC 调用失败可以分为三种情况&#xff1a; 1、RPC 请求还没有离开客户端&#xff1b; 2、RPC 请求到达服务器&#xff0c;但是服务器的应用逻辑还没有处理该请求&#xff1b; 3、服务器应用逻辑开始处理请求&#xff0c;并且处理失败&#xff1b; 最后一种…