DBA面试(ORACLE ADG篇)

一、在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?

1.RFS进程

RFS(Remote File Server)进程主要用来接受从主库传送过来的日志信息。对于物理备库而言,RFS进程可以直接将日志写进Standby Redo logs,也可以直接将日志信息写到归档日志。

2.LNSn(LGWR Network Server process)进程

DG可以使用ARCn、LGWR来传送日志,但它们都是把日志发送给本地的LNSn(如果有多个目标备库,那么会启动相应数量的LNSn进程,同时发送数据)进程,然后备库的RFS进程接收数据,接收到的数据可以存储在备库的备用Redo日志文件中或备库的归档日志中,然后再应用到备库中。

3.MRP(Managed Recovery Process)进程

该进程只针对物理备库,作用为应用从主库传递过来的Redo日志到物理备库,称为Redo Apply。如果使用SQL语句“ALTER DATABASE RECOVER MANAGED STANDBY DATABASE”启用该进程,那么前台进程将会做恢复。如果加上DISCONNECT语句,那么恢复过程将在后台进程,发出该语句的进程可以继续做其它的事情,

4.LSP(logical standby process)进程

只有逻辑备库才会有该进程。LSP进程控应用Redo日志到逻辑备库。

二、Oracle DG的架构

  1.主库和备库

主库是生产环境中的数据库,处理日常的业务操作。备库是主库的副本,用于在需要时接管主库的工作负载。主备库之间通过网络进行通信和数据传输。

   2.日志发送(Redo Send):

主库(Primary Database)在运行过程中,会源源不断地产生Redo日志,这些日志需要发送到备库(Standy Database)端,这个发送动作可以由主库的LGWR或者ARCn进程完成,不同的归档目的地可以使用不同的方法,但是对于一个目的地,只能选用一种方法。

传输方式如下:

(1)使用ARCH进程

① 主库(Primary Database)不断产生Redo日志,这些日志被LGWR进程写到联机日志。

② 当一组联机日志被写满后,会发生日志切换(Log Switch),并且会触发本地归档,本地归档位置是采用“LOG_ARCHIVE_DEST_1='LOCATION=/path'”格式定义的。例如,修改本地归档的SQL语句可以是:“ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch' SCOPE=BOTH;”。

③ 完成本地归档后,联机日志就可以被覆盖重用。

④ ARCH进程通过网络把归档日志发送给备库(Standby Database)的RFS(Remote File Server)进程。

⑤ 备库端的RFS进程把接收的日志写入到归档路径中。

⑥ 若是物理DG的话,则备库的MRP(Managed Recovery Process)进程进行Redo Apply;若是逻辑DG的话,则备库的LSP(logical standby process)进程进行SQL Apply进而同步数据。

用ARCH模式传输不写Standby Redo Logs,直接保存成归档文件存放于Standby端。

逻辑备库接收日志后将日志转换成SQL语句,然后逻辑备库上的LSP进程执行这些SQL语句进而实现主备库的数据同步,这种方式叫SQL Apply。物理备库接收完主库生成的Redo数据后,MRP进程以介质恢复的方式实现同步,这种方式也叫Redo Apply。

使用ARCH进程传递最大问题在于:主库只有在发生归档时才会发送日志到备库。如果主库异常宕机,那么联机日志中的Redo内容就会丢失,所以,使用ARCH进程无法避免数据丢失的问题,要想避免数据丢失,就必须使用LGWR,而使用LGWR又分SYNC(同步)和ASYNC(异步)两种方式。

(2)使用LGWR进程的SYNC方式

① 主库产生的Redo日志要同时写到日志文件和网络,也就是说LGWR进程把日志写到本地日志文件的同时还要发送给本地的LNSn进程(LGWR Network Server Process),再由LNSn进程把日志通过网络发送给远程的目的地,每个远程目的地对应一个LNS进程,多个LNS进程能够并行工作。

② LGWR必须等待写入本地日志文件操作和通过LNSn进程的网络传送都成功,主库上的事务才能提交,这也是SYNC的含义所在。

③ 备库的RFS进程把接收到的日志写入到Standby Redo Log日志中。

④ 主库的日志切换也会触发备库上的日志切换,即主库对Standby Redo Log的归档,然后触发备库的MRP或者LSP进程应用归档日志。

(3)使用LGWR进程的ASYNC方式:

使用LGWR SYNC方法的可能问题在于,如果日志发送给备库过程失败,那么LGWR进程就会报错。也就是说主库的LGWR进程依赖于网络状况,有时这种要求可能过于苛刻,这时就可以使用LGWR ASYNC方式。它的工作机制如下所示:

① 主库一旦产生Redo日志,LGWR就把日志同时提交给日志文件和本地LNS进程,但是LGWR进程只需成功写入日志文件就可以,不必等待LNSn进程的网络传送成功。

② LNSn进程异步地把日志内容发送到备库,多个LNSn进程可以并发发送。

③ 主库的联机Redo日志文件写满后发生Log Switch,触发归档操作,也触发备库对Standby Redo Log的归档;然后触发MRP或者LSP进程恢复归档日志

3.日志接收(Redo Receive):

备库的RFS(Remote File Server)进程接收到日志后,就把日志写到Standby Redo Log或者Archived Log文件中,具体写入哪个文件,取决于主库的日志传送方式。如果写到Standby Redo Log文件中,那么当主库发生日志切换时,也会触发备库上的Standby Redo Log的日志切换,并把这个Standby Redo Log归档;如果是写到Archived Log,那么这个动作本身也可以看作是个归档操作。在日志接收中归档日志会被放在LOG_ARCHIVE_DEST_n指定的位置。

4.日志应用(Redo Apply):

日志应用服务,就是在备库上重演主库的日志,从而实现两个数据库的数据同步。根据Redo Apply发生的时间不同可以分成两种:一种是实时应用(Real-Time Apply),这种方式必须包含Standby Redo Log,每当日志被写入Standby Redo Log时,就会触发恢复,使用这种方式的好处在于可以减少数据库切换(Switchover或者Failover)的时间,因为切换时间主要用在剩余日志的恢复上。另一种是归档应用,这种方式在主库上发生日志切换,会触发备库的归档操作,归档完成后触发恢复。这也是默认的恢复方式。

根据备库重演日志方式的不同,可分为Redo Apply和SQL Apply:若是物理DG的话,则备库的MRP(Managed Recovery Process)进程进行Redo Apply。物理备库接收完主库生成的Redo数据后,MRP进程以介质恢复的方式实现同步,这种方式叫Redo Apply。若是逻辑DG的话,则备库的LSP(logical standby process)进程进行SQL Apply进而同步数据。逻辑备库接收日志后将日志转换成SQL语句,然后逻辑备库上的LSP进程执行这些SQL语句进而实现主备库的数据同步,这种方式叫SQL Apply。

三、ADG备库有哪几种类型

1.物理备库

物理DG使用的是Media Recovery技术,在数据块级别进行恢复,这种方式没有数据类型的限制,可以保证两个数据库完全一致。在Oracle 11g之前的物理DG只能在MOUNT状态下进行恢复,虽然可以以只读方式打开备库,但是不能应用日志,而到了Oracle 11g时备库可以在打开的情况下执行恢复操作了,这称为ADG(Active Data Guard)。物理DG实时应用进程为MRP进程。需要注意的是,主库在开启闪回数据库功能后,物理备库并不会开启闪回数据库的功能。

2.逻辑备库

逻辑DG使用的是LogMiner技术,通过把日志内容还原成SQL语句,然后通过SQL引擎执行这些SQL语句。逻辑DG不支持所有的数据类型,这些不支持的数据类型可以在视图DBA_LOGSTDBY_UNSUPPORTED中查看。如果使用了这些数据类型,那么不能保证主备库完全一致。Logical Standby可以在恢复的同时进行读写操作。逻辑DG实时应用进程为LSP进程。需要注意的是,在逻辑DG中,SYS用户下的对象不会同步。要想创建一个逻辑备库需要先创建一个物理备库,然后再将其转换成逻辑备库。

3.快照备库

当Physical Standby转换为Snapshot Standby时,它是一个完全可更新的Standby数据库。Snapshot Standby依然会接收来自主库的归档文件,但是它不会应用。当Snapshot Standby转换为Physical Standby时,所有在Snapshot Standby数据库的操作被丢弃之后,Physical Standby数据库才会应用Primary数据库的Redo数据。

最后需要说明的一点是,物理DG可以转换为逻辑DG,但是逻辑DG不能转换为物理DG。快照DG和物理DG可以相互转换。

四、ADG保护模式(Protection Mode):

1.最大保护

最大保护模式能够确保绝无数据丢失,该模式要求主库所有的事务在提交前其Redo不仅被写入到本地的Online Redo Logs,还要同时写入到备库的Standby Redo Logs,并确认Redo数据至少在一个备库中可用(如果有多个的话),然后才会在主库上提交。如果出现了导致备库不可用故障(例如网络中断),那么主库会被关闭。因此,在该保护模式下,数据库必须配置SYNC传输模式,且必须和备库连通,否则会导致主库不能启动。

2.最高可用

最高可用模式在不影响主库可用地前提下,提供最高级别的数据保护。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台备库的Standby Redo Logs中,不过与最大保护模式不同的是,如果出现故障导致备库无法访问,那么主库并不会被关闭,而是自动转为最高性能模式,等备库恢复正常之后,主库又会自动转换成最高可用模式。最高可用模式适用于想要确保获得零数据丢失保护,但不想让生产数据库受网络/备用服务器故障影响的企业。

3.最高性能

在最高性能模式下,事务可以随时提交。如果网络条件理想的话,那么这种模式能够提供类似最高可用性的数据保护,而仅对主库的性能有轻微影响。这也是在创建备库时,系统的默认保护模式。最高性能模式区别于最大保护模式的地方是,它并不需要将日志信息实时的传递到备库上,也不需要确保日志在其中的至少一台备库上应用。

五、Switchover和Failover的区别

1.Switchover是指主库转换成备库,然后将原备库转换成新主库;而Failover是指将备库转换成主库。

2. 使用场合不同:Switchover用于有准备的、计划之中的切换,通常是系统升级、数据迁移等常态任务;Failover用于意料之外的突发情况,例如异常断电、自然灾难等等。

3.数据丢失程度不同:Switchover不会丢失数据,Failover通常意味着有部分数据丢失。

4.善后处理的不同:Switchover之后DG环境不会被破坏,仍然有Primary、Standby两种角色的系统存在,但是Failover之后,DG环境就会被破坏,一般情况下需要重建。但是,若主库或备库开启了闪回功能,则都可以通过闪回数据库功能恢复DG环境。

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

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

相关文章

目标检测——多模态人体动作数据集

一、重要性及意义 连续多模态人体动作识别检测的重要性及意义主要体现在以下几个方面: 首先,它极大地提升了人体动作识别的准确性和稳定性。由于人体动作具有复杂性和多样性,单一模态的数据往往难以全面、准确地描述动作的特征。而连续多模…

深度学习数据处理——对比标签文件与图像文件,把没有打标签的图像文件标记并删除

要对比目录下的jpg文件与json文件,并删除那些没有对应json文件的jpg文件,这个在深度学习或者机器学习时常会遇到。比如对一个数据集做处理时,往往会有些图像不用标注,那么这张图像是没有对应的标签文件的,这个时候又不…

python-django企业设备配件检修系统flask+vue

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中,方便对数据进行操作本课题基于WEB的开发平台,设计的基本思路是: 前端:vue.jselementui 框架&#…

玄子Share-LVM与磁盘配额

玄子Share-LVM与磁盘配额 LVM概述 Logical Volume Manager,逻辑卷管理 Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层动态调整磁盘容量,从而提高磁盘管理的灵活性 /boot分区用于存放引导文件&#xff…

服务器中查看CPU/GPU使用情况的常用命令

1、查看显卡 nvidia-smi2、间隔查看GPU使用情况 间隔5s刷新信息 watch -n 5 nvidia-smiCtrlC退出 参考博文:https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?productsmartapp&tk6ff15196d305c4dd3daab94b4abb81a4&share_urlhttps%3A%2F%2Fyebd1h…

JavaSE备忘录(未完)

文章目录 基本数据类型println 小知识除法( / ) 和 Infinity(无穷) 小知识除法InfinityInfinity 在除法中正负判断 求余(%) 小知识 基本数据类型 除 int、char 的包装类分别为 Integer、Character 外,其余基本数据类型的第一个字母大写就是它的包装类。 println 小…

vscode自动生成返回值的快捷键

vscode中类似idea的altenter功能,可以添加返回值 idea中是Introduce local variable, vscode中按下command.(句号) 然后选extract to local variable或者 Assign statement to new local variable都行, 光标在分号前如图: 光标在…

Redis快速入门操作

启动Redis 进入命令行客户端 字符串命令常用操作(redis默认使用字符串来存储数据) 列表(Lists)常用操作 集合(Sets)常用操作 (无序集合且元素不可重复) 有序集合(So…

云原生虚拟数仓 PieCloudDB Database 4月更新盘点

第一部分 PieCloudDB Database 最新动态 增强本地缓存文件生命周期管理 PieCloudDB 在最新版本中增强了本地缓存文件生命周期管理,执行器节点重启之后可以继续使用之前缓存在本地的数据文件,从而节约重新从远端下载数据文件的带宽资源,提升…

DFS之剪枝(上交考研题目--正方形数组的数目)

题目 给定一个非负整数数组 A A A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组。 返回 A A A 的正方形排列的数目。 两个排列 A 1 A1 A1 和 A 2 A2 A2 不同的充要条件是存在某个索引 i i i,使得 A 1 [ i …

C语言简单的数据结构:双向链表的实现

目录: 1.双向链表的结构和初始化1.1双向链表的结构1.2双向链表的初始化 2.双向链表的相关操作2.1双向链表的尾插、打印和头插2.11双向链表的尾插2.12双向链表的打印2.13双向链表的头插 2.2双向链表的尾删和头删2.21双向链表的尾删2.22双向链表的头删 2.3双向链表查找…

实力认证!亚数产品入选《中国网络安全行业全景图(第十一版)》

2024年4月12日,安全牛第十一版《中国网络安全行业全景图》(以下简称“全景图”)正式发布。 亚数信息科技(上海)有限公司(以下简称“亚数”)成功入选数字证书、加解密、密钥管理三项细分领域。 此…

开发同城O2O跑腿系统源码:构建高效便捷的本地服务平台教程

为了满足用户对便捷的需求,今天我们将一同探讨如何开发一个高效便捷的同城O2O跑腿系统,以构建一个功能全面、操作简单的本地服务平台。 一、确定需求和功能 在开发同城O2O跑腿系统之前,首先需要明确系统的需求和功能。用户可以通过该系统发布…

使用LangChain和Llama-Index实现多重检索RAG

大家好,在信息检索的世界里,查询扩展技术正引领着一场效率革命。本文将介绍这一技术的核心多查询检索,以及其是如何在LangChain和Llama-Index中得到应用的。 1.查询扩展 查询扩展是一种信息检索技术,通过在原始查询的基础上增加…

python辅助QQ登入

python辅助QQ登入 import pyautogui import time import random from pyautogui import ImageNotFoundException# 生成随机等待时间,范围在1到3秒之间 random_time random.uniform(1, 3)def find_and_click(image_path, moveFalse, execute_nextTrue):try:image_l…

达梦数据库:安装达梦数据库客户端并配置python调用

前言 本文主要介绍了达梦数据库的客户端安装方案、python调用方案。本文使用的达梦数据库版本为 V8,如果使用的是其他版本,操作可能会有些许差异。 下载 前往官网安装:产品下载 | 达梦数据库 根据自己的系统版本进行选择,而后点击…

基于SpringBoot的“论坛管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“论坛管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 论坛管理系统结构图 前台首页功能界面图 用户登录…

高速公路信息化大会 | 云轴科技ZStack分享云原生超融合在高速公路行业的应用

近日,作为第二十六届高速公路信息化大会分论坛之一,由中国公路学会邀请、英特尔支持和协办《第四届英特尔智慧化方案助力高速新基建升级论坛》在合肥顺利召开。来自智慧交通建设领域的创新企业和技术专家共聚一堂,围绕改扩建高速公路提升和数…

Odoo|手把手教你Odoo集成drools,完成物料规则配置与报价单自动审核!

一、背景介绍 在实际业务中,售前根据客户需求选择相应的产品和对应的物料来生成报价单。然而,在填写报价单的过程中,可能会出现物料漏选或数量不准确的情况,这会对后续备货和生产效率造成重大影响。此外,由于产品和物料…

安装docker的PHP环境NLMP环境在国产deepin操作系统上

1: 先安装docker 安装完后执行,权限设置 sudo usermod -aG docker $USER或者sudo usermod -aG docker kentrl#添加当前用户到Docker用户组中 sudo newgrp docker#更新用户组数据,必须执行否则无效 sudo systemctl restart docker 先看目录结构: 2:按照目录结构挂载磁盘,…
最新文章