当前位置: 首页 > news >正文

【Oracle之DataGuard的初步学习】

**

以下所有均是基于11G版本的

**
一、DataGuard的部署方式
DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数,但是这样做在初始同步时如果数据量过大会耗费较长的时间;相对来说这中方式比较简单不易出错。
还有一种方式就是通过rman的备份恢复的方式进行部署,当然也可以通过Oracle的复制库的方式部署,主要说一下rman的复制命令,其他的就和正常备份恢复是一样的,参数配置也是一样的。
以下均在备库端执行
恢复控制文件:

RMAN> restore standby controlfile from ‘/sasbackup/ctl_file_g4qfmqm6_1_1_20150828’;
登录,通过duplicate恢复
[oracle@localhost ~]$ rman target sys/oracle@orcl_pd auxiliary sys/oracle@orcl_st
RMAN> duplicate target database for standby nofilenamecheck dorecover;

以上是两种相对常见的部署方式,不论那种部署方式数据库的主要参数是一样的。
在数据库主要参数有以下:
1.DB_NAME
只需注意DataGuard的主备各节点instance使用相同的db_name即可。推荐与service_name一致。我们这里未作重定义
2.DB_UNIQUE_NAME
1)Primary与Standby端数据库的唯一名字,设定后不可再更改。
2)如果主备db_unique_name不一样,需要与LOG_ARCHIVE_CONFIG配合使用
3)db_unique_name并未规定需要与数据库service_name一致,可以自定义任意名称。
3.LOG_ARCHIVE_CONFIG
列出主备库上的DB_UNIQUE_NAME 参数。默认情况下,定义该参数保证数据库能够发送或接收redo log。
4.LOG_ARCHIVE_DEST_1
本地归档路径。Primary与Standby需要定义各自的online redo log的归档地址,以系统实际的存放路径为准。
本例LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=bj’
可以这样理解:对于bj(主库)而言,不管它是主库角色还是备库角色(ALL_ROLES),它都会自己完成归档动作,并将它们归档在本地的/u01/arch下。
5.LOG_ARCHIVE_DEST_2
该参数仅当数据库角色为primary时生效,指定primary传输redo log到该参数定义的standby database上。
log_archive_dest_2可以说是dataguard上最重要的参数之一,它定义了redo log的传输方式(sync or async)以及传输目标(即standby apply node),直接决定了dataguard的数据保护级别。
注意:SERVICE值,比如bj,是tnsnames.ora文件里定义的Oracle Net名称。
6.LOG_ARCHIVE_DEST_STATE_n
设置为ENABLE,激活log_archive_dest_n定义的属性。
7.FAL_SERVER and FAL_CLIENT
FAL是Fetch Archive Log的简写,它是dataguard主备之间GAP(间隙)的处理机制。
Primary上不会有GAP,所以fal_server和fal_client也是只在standby上生效的参数,当然为了switch over的需要同样会在primary端进行预设置。
FAL参数定义的数据库名同样取自本地tnsnames.ora里配置的Oracle Net Service Name.
11g以后 FAL_CLIENT可以忽略。
本例FAL_SERVER=tj的意思可以理解为:tj(备库)产生的归档日志间隙,要从主库(bj)那里获得。
8.DB_FILE_NAME_CONVERT
primary与standby上diskgroup的名称或是数据文件的存放路径不一致的时候,需要定义该参数进行转换,否则standby apply后无法创建与primary一致的数据文件并报错。
1)primary上的该参数仅在主备switch over后生效
2)注意格式应保持一致,比如"*.db_file_name_convert=‘+DG1/db/datafile’,‘+DATAGRP/db/datafile/’ ”,路径少了一个"/”,将导致standby apply失败。
本例 DB_FILE_NAME_CONVERT=‘/u01/oradata/prodstd’,‘/u01/oradata/prod’ 使用的是物理文件路径,所以可以省略”/”
3)primary上执行create tablespace等add datafile操作时,无须自定义datafile的全路径名称,由数据库自动创建datafile即可。
9.LOG_FILE_NAME_CONVERT
同DB_FILE_NAME_CONVERT类似,定义主备log文件的存放路径转换。
10)STANDBY_FILE_MANAGEMENT
设置为auto时,主库执行增删数据文件的动作,在备库也会增删数据文件,缺省是manual 需要在备库做手动增删。

二、DataGuard的同步原理
典型的SYNC 方式
实时恢复(Real-TimeApply):日志写入StandbyRedoLog就会立即进行恢复;
归档恢复:在完成对StandbyRedoLog归档才触发恢复。
在这里插入图片描述
典型的ASYNC方式
由主库归档进程(ARCH)负责推送日志,MRP从备库的归档中恢复数据
(注:异步可以有两种模式①LGWR+ASYNC,②ARCH+ASYNC)
在这里插入图片描述
异步和同步的传输方式:
在这里插入图片描述
三、DataGuard的主要进程
RFS: (Remote File Server)在备库上启用的进程,接收重做日志(redo log和arch log)
LNSn: (LGWR Network Server Process)本地网络服务,在主库上负责传送redo日志
MRP: (Managed Recovery Process)备库上管理恢复进程,如果是物理 DG,用于对redo log做recovery
LSP: (Logical Standby Process)备库上逻辑备用进程,逻辑DG,是对redo log中抽取的sql进行应用。

四、DataGuard的保护模式
1.最大保护(Maximum Protection) SYNC同步模式
这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其REDO不仅被写入到本地的Online Redologs,还要同时写入到Standby数据库的Standby Redologs,并确认REDO数据至少在一个Standby数据库中可用(如果有多个的话),然后才会在Primary 数据库上提交。如果出现了什么故障导致Standby数据库不可用的话(比如网络中断),Primary 数据库会被Shutdown,以防止数据丢失。使用这种方式要求Standby Database必须配置Standby Redo Log,而 Primary Database必须使用LGWR,SYNC,AFFIRM方式归档到Standby Database.

2.最高可用(Maximum availability)
这种模式在不影响 Primary 数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台(俗称同步模式)
Standby 数据库的 Standby Redologs 中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式,等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。这种方式虽然会尽量避免数据丢失,但不能绝对保证数据完全一致。这种方式要求Standby Database必须配置Standby Redo Log,而Primary Database 必须使用LGWR SYNC,AFFIRM方式归档到Standby Database.

3.最高性能(Maximum performance) ASYNC异步模式
缺省模式。这种模式在不影响Primary数据库性能前提下,提供最高性能级别的数据保护策略。事务可以随时提交,当前Primary 数据库的REDO数据至少需要写入一个Standby数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对 Primary 数据库的性能有轻微影响。
这也是创建Standby数据库时,系统的默认保护模式。这种方式可以使用 LGWR ASYNC 或者 ARCH 进程实现,Standby Database也不要求使用Standby Redo Log
在这里插入图片描述

相关文章:

【Oracle之DataGuard的初步学习】

** 以下所有均是基于11G版本的 ** 一、DataGuard的部署方式 DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数,但是这样做在初始同步时如果数据量过大会耗费较长的时间;相对来说这中方式比较简单不易出错。 还有一种方式就是通过rman的备…...

PyCharm无代码提示解决

PyCharm无代码提示解决方法 在使用PyCharm工具时,调用方法却无法进行提示,针对PyCharm无代码提示整理下解决方案 1、Python内置语法无智能提示 复现:我这里以urllib库读取网页内容为例,在通过urlopen()之后调用getur…...

记一次 .NET某设备监控自动化系统 CPU爆高分析

一:背景 1. 讲故事 先说一下题外话,一个监控别人系统运行状态的程序,结果自己出问题了,有时候想一想还是挺讽刺的,哈哈,开个玩笑,我们回到正题,前些天有位朋友找到我,说…...

大数据与云计算

目录 一、大数据时代二、云计算——大数据的计算三、云计算发展现状四、云计算实现机制五、云计算压倒性的成本优势 一、大数据时代 我们先来看看百度关于 “大数据”(Big Data)的搜索指数。 可以看出,“大数据” 这个词是从2012年才引起关注…...

一. 并行处理与GPU体系架构-并行处理简介

目录 前言0. 简述1. 串行处理与并行处理的区别2. 并行执行3. 容易混淆的几个概念4. 常见的并行处理总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第一章——并行处…...

vb机试考试成绩分析与统计,设计与实现(高数概率统计)-141-(代码+程序说明)

转载地址http://www.3q2008.com/soft/search.asp?keyword141 前言: 为何口出狂言,作任何VB和ASP的系统, 这个就是很好的一个证明 :) 又有些狂了... 数据库操作谁都会,接触的多了也没什么难的,VB编程难在哪?算法上,这个是一个算法题的毕业设计,里面涉及到对试卷的 平均分,最…...

Arm MMU深度解读

文章目录 一、MMU概念介绍二、虚拟地址空间和物理地址空间2.1、(虚拟/物理)地址空间的范围2.2、物理地址空间有效位(范围) 三、Translation regimes四、地址翻译/几级页表?4.1、思考:页表到底有几级?4.2、以4KB granule为例,页表的…...

2024 年 AI 辅助研发趋势

在2024年,AI辅助研发的应用趋势将非常广泛。举个例子,比如在医疗健康领域,AI将深度参与新药研发、早期癌症研究以及辅助诊断等,助力医疗技术的突破。同时,在农业领域,AI也将通过无人机、智能装备等方式&…...

聊聊pytho中的函数

Python中的函数 一、Python中函数的作用与使用步骤 1、为什么需要函数 在Python实际开发中,我们使用函数的目的只有一个“让我们的代码可以被重复使用” 函数的作用有两个: ① 代码重用(代码重复使用) ② 模块化编程&#x…...

Python中starmap有什么用的?

目录 前言 starmap函数的作用 starmap函数的用法 starmap函数的示例 1. 对每个元组元素进行求和 2. 对每个元组元素进行乘积 实际应用场景 1. 批量处理函数参数 2. 并行处理任务 3. 批量更新数据库 总结 前言 在Python中, starmap 是一个非常有用的函数&…...

面向切面编程 AOP

提示:主要内容参考动力节点老杜的Spring6讲义。 面向切面编程 AOP 一、AOP介绍二、AOP的七大术语三、切点表达式 IoC使软件组件松耦合。AOP让你能够捕捉系统中经常使用的功能,把它转化成组件。AOP(Aspect Oriented Programming)&a…...

POS 之 奖励机制

为什么需要有奖惩机制 如果没有奖励,就不会有节点参与POS,运营节点有成本,而奖励正是让运营者获利的方式 如果没有惩罚,网络上会充斥着很多无效节点,会扰乱甚至破坏网络 所有奖励和惩罚在每个 Epoch 实施一次 奖励 什…...

Unity类银河恶魔城学习记录9-7 p88 Crystal instead of Clone源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Blackhole_Skill_Controller.cs using System.Collections; using System…...

导出RWKV模型为onnx

测试模型&#xff1a; https://huggingface.co/RWKV/rwkv-5-world-3b 导出前对modeling_rwkv5.py进行一个修改&#xff1a; # out out.reshape(B * T, H * S) out out.reshape(B * T, H * S, 1) # <<--- modified out F.group_norm(out, nu…...

【LeetCode】整数转罗马数字 C语言 | 此刻,已成艺术(bushi)

Problem: 12. 整数转罗马数字 文章目录 思路解题方法复杂度Code 思路 暴力破解 转换 解题方法 由思路可知 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code char* intToRoman(int num) {char *s (char*)malloc(sizeof(char)*4000), *p s;while(…...

移动App开发常见的三种模式:原生应用、H5移动应用、混合模式应用

引言 在移动应用市场的迅猛发展中&#xff0c;移动App开发正日益成为技术创新和用户体验提升的焦点。对于开发者而言&#xff0c;选择适合自己项目的开发模式成为至关重要的决策。本文将探究移动App开发的三种常见模式&#xff1a;原生应用、H5移动应用和混合模式应用。这三种…...

k8s Secret配置资源,ConfigMap 存储配置信资源管理详解

目录 一、Secret 概念 三种Secret类型 pod三种使用secret的方式 应用场景&#xff1a;凭据&#xff1a; 二、 示例 2.1、用kubectl create secret命令创建 Secret 创建Secret&#xff1a; 查看Secret列表&#xff1a; 描述Secret&#xff1a; 2.2、用 base64 编码&…...

POS 之 最终确定性

Gasper Casper 是一种能将特定区块更新为 最终确定 状态的机制&#xff0c;使网络的新加入者确信他们正在同步规范链。当区块链出现多个分叉时&#xff0c;分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 最终确定性 最终确定性是某些区块的属性&#xff0c;意味…...

Vue快速开发一个主页

前言 这里讲述我们如何快速利用Vue脚手架快速搭建一个主页。 页面布局 el-container / el-header / el-aside / el-main&#xff1a;https://element.eleme.cn/#/zh-CN/component/container <el-container><el-header style"background-color: #4c535a"…...

Java SE入门及基础(33)

final 修饰符 1. 应用范围 final 修饰符应该使用在类、变量以及方法上 2. final 修饰类 Note that you can also declare an entire class final. A class that is declared final cannot be subclassed. This is particularly useful, for example, when creating an imm…...

ROS2手眼标定实战:从二维平面到三维空间的坐标对齐

1. 手眼标定基础概念与ROS2环境搭建 手眼标定是机器人视觉引导系统中的关键环节&#xff0c;简单来说就是让机器人"知道"眼睛看到的东西在哪里。想象一下你闭着眼睛摸桌上的水杯&#xff0c;如果不知道手和眼睛的相对位置关系&#xff0c;很容易把杯子打翻。在工业场…...

液压剪切机的设计(论文+CAD图纸+开题报告+翻译……)

液压剪切机是金属加工领域的重要设备&#xff0c;其核心作用在于通过液压系统驱动剪切刃口&#xff0c;实现对金属板材、型材等材料的高效精准切割。相较于传统机械剪切方式&#xff0c;液压驱动具备力量大、冲击小、运行平稳的特点&#xff0c;尤其适用于高强度材料的加工需求…...

提交艺术:编写规范的Commit Message与创建高质量的Pull Request

提交艺术:编写规范的Commit Message与创建高质量的Pull Request 从一次痛苦的代码回溯说起 上周排查一个线上闪退问题,git log 拉出来一看,满屏的“fix bug”“update”“优化代码”这类提交信息。为了定位引入问题的变更,我们不得不逐个点开提交看diff,花了近两个小时才…...

EVA-01部署避坑指南:环境配置、模型下载、常见问题一站式解决

EVA-01部署避坑指南&#xff1a;环境配置、模型下载、常见问题一站式解决 1. 引言&#xff1a;从零启动你的初号机 想象一下&#xff0c;你拿到了一台EVA初号机的启动钥匙&#xff0c;但面对复杂的神经连接接口和陌生的操作面板&#xff0c;却不知从何下手。别担心&#xff0…...

Emotional First Aid Dataset:破解AI心理陪伴技术瓶颈的20,000条高质量对话语料库

Emotional First Aid Dataset&#xff1a;破解AI心理陪伴技术瓶颈的20,000条高质量对话语料库 【免费下载链接】efaqa-corpus-zh ❤️Emotional First Aid Dataset, 心理咨询问答、聊天机器人语料库 项目地址: https://gitcode.com/gh_mirrors/ef/efaqa-corpus-zh 在心理…...

.NET 诊断技巧 | 日志框架原理、手写日志框架学习纷

一、 什么是 AI Skills&#xff1a;从工具级到框架级的演化 AI Skills&#xff08;AI 技能&#xff09; 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初&#xff0c;Skills 被视为“工具级”的增强&#xff0c;如简单的文件读写或终端操作&#xff0c;方便用户快速…...

2026奇点智能技术大会核心议程泄露(仅限前500名技术负责人获取的微调参数黄金组合)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;大模型个性化微调 2026奇点智能技术大会(https://ml-summit.org) 微调范式的根本性演进 在2026奇点智能技术大会上&#xff0c;主流大模型微调已从全参数微调全面转向高效参数微调&#xff08;PEFT&#xff09;与上下文感…...

Swin2SR在Java项目中的集成指南:SpringBoot图像增强服务开发

Swin2SR在Java项目中的集成指南&#xff1a;SpringBoot图像增强服务开发 1. 引言 作为一名Java开发者&#xff0c;你可能经常遇到这样的场景&#xff1a;用户上传的图片分辨率太低&#xff0c;直接显示会影响用户体验&#xff1b;或者需要处理大量历史图片&#xff0c;但原始…...

幻境·流金部署案例:边缘设备Jetson AGX Orin运行精简版i2L模型

幻境流金部署案例&#xff1a;边缘设备Jetson AGX Orin运行精简版i2L模型 1. 项目背景与价值 边缘计算设备上的AI模型部署一直是技术挑战&#xff0c;特别是对于需要大量计算资源的图像生成模型。NVIDIA Jetson AGX Orin作为高性能边缘AI设备&#xff0c;为这类部署提供了可能…...

5分钟揪出Windows热键“小偷“:Hotkey Detective终极解决方案揭秘

5分钟揪出Windows热键"小偷"&#xff1a;Hotkey Detective终极解决方案揭秘 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-dete…...