【Oracle之DataGuard的初步学习】

news2025/1/13 13:38:26

**

以下所有均是基于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
在这里插入图片描述

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

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

相关文章

如何打开EDI文件?

使用EDI系统传输文件的过程中,用户可能会遇到这样的问题:如何打开EDI文件?电脑不在身边如何查看EDI文件?EDI文件未按照标准格式呈现如何梳理?为了解决上述问题,方便用户查看文件,知行之桥EDI系统…

Linux启动流程

Linux启动流程总的来说可以分成三个阶段 Linux启动流程图 第一步:上电 在 x86 系统中,将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给 ROM。 当电脑刚加电的时候,会做一些重置的工作,将 CS 设置为 0xFFFF,将 …

mac解决brew install报错“fatal: not in a git directory“

在macbook上使用brew安装软件时,可能会遇到问题,报错如下: fatal: not in a git directory Error: Command failed with exit 128: git 使用brew -v,仔细看,可以发现有两个fatal(致命错误)提示: 解决方案:…

springboot笔记1

快速入门 添加父工程和web启动器 创建启动类 编写处理器controller springboot 配置文件 推荐使用 .yaml 格式 批量读取配置文件 多环境配置和激活 分开写 然后在application.yaml里面激活 SpringBoot–springmvc整合和配置 SpringBoot3整合Druid连接池 pom.xml中导入相…

Oracle P6 负浮时和必须完成日期

前言 学习过计划的人大都有这有这样的经历,即无论是Microsoft Project 亦或是P6见过负浮时那么 Primavera P6 计划中的负浮时是从何而来的呢,那么本文可能会有所帮助。 首先,当活动的最晚日期早于最早日期时,就会出现负浮时。 换…

【python】centos 8新装python3.10.0

1.python源码包准备 2.gcc环境安装 如果系统已具备,可以略过。 有的已经自带了gcc,但是如果编译时启动优化的话,如果gcc版本过老就必须要升级。 3.make环境安装 如果系统已具备,可以略过。 4.更新openssl版本(很重…

Coarse-to-Fine Latent Diffusion for Pose-Guided Person Image Synthesis阅读笔记

连更!! 0 Abstract 先前的姿势引导图像合成方法简单的将人的外观与目标姿势进行对齐,这容易导致过拟合,因为缺乏对source person image的high-level semantic understanding;文章开发了一种新的训练范式:…

双线性插值

先来看看线性插值的情况 如上图,在已知p2 (x2,y2)和p1 (x1,y1)的情况下要求解在区间[x1,x2]上任意点x对应的y值,有如下公式: 因式分解,解开y有: 可以看出是计算点p与p3的距离权重,是计算点p与p2的距离权重&…

C++ 字符串OJ

目录 1、14. 最长公共前缀 2、 5. 最长回文子串 3、 67. 二进制求和 4、43. 字符串相乘 1、14. 最长公共前缀 思路一:两两字符串进行比较,每次比较过程相同,可以添加一个函数辅助比较,查找最长公共前缀。 class Solution { pu…

多域名证书和泛域名证书的区别

多域名证书是一种SSL/TLS证书,其特殊之处在于它可以在同一证书中添加多个域名。这些域名可以是不同的主机名或完全不同的域。与传统的SSL证书只能用于一个域名相比,多域名证书提供了为多个域名提供安全保障的便利。 多域名证书的主要优势包括&#xff1…

matplotlib-直方图

日期:2024.03.114 内容:将matplotlib的常用方法做一个记录,方便后续查找。 # 引入需要的库 from matplotlib import pyplot as plt import numpy as np# 设置画布大小 plt.figure(figsize (20,8),dpi 200)# 全局设置中文字体 plt.rcParams…

【六】【算法分析与设计】二分查找

69. x 的平方根 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示…

案例分析:分库分表后,我的应用崩溃了

今天我们主要分析一个案例,那就是分库分表后,我的应用崩溃了。 前面介绍了一种由于数据库查询语句拼接问题,而引起的一类内存溢出。下面将详细介绍一下这个过程。 假设我们有一个用户表,想要通过用户名来查询某个用户&#xff0…

阿里云价格战的背后,难以言说附送阿里云服务器优惠价格明细表

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

leetcode110.平衡二叉树

之前没有通过的样例 return语句只写了一个 return abs(l-r)<1缺少了 isBalanced(root->left)&&isBalanced(root->right);补上就好了 class Solution { public:bool isBalanced(TreeNode* root) {if(!root){return true;}int lgetHeight(root->left);i…

阿里云国际配置DDoS高防(非中国内地)加速线路

DDoS高防&#xff08;非中国内地&#xff09;加速线路只能与DDoS高防&#xff08;非中国内地&#xff09;保险版或无忧版实例结合使用。您将业务&#xff08;部署在中国内地以外地域&#xff09;接入DDoS高防&#xff08;非中国内地&#xff09;实例防护后&#xff0c;可以通过…

upload 上传文件后在下次弹框打开时清空上次上传的内容

文章目录 需求分析 需求 upload 上传文件后在下次弹框打开时清空上次上传的内容 分析 arco-design 暂时无法实现该需求&#xff0c;所以继续使用了 elementPlus 的解决方案 获取 Token const getToken () > {return localStorage.getItem(TOKEN_KEY); };页面 <a-f…

2024年将人力RPO项目当蓝海项目吗?

随着科技的快速发展和全球化趋势的加强&#xff0c;人力资源外包(RPO)项目在过去的几年中异军突起&#xff0c;成为企业优化人力资源配置、降低运营成本的重要手段。然而&#xff0c;到了2024年&#xff0c;我们是否还能将人力RPO项目视为一片尚待开发的蓝海呢? 从市场角度来看…

Ansible管理主机的清单------------inventory

一、 Ansible组成 INVENTORY&#xff1a;Ansible管理主机的清单 /etc/ansible/hosts 需要管理的服务清单,(将你需要管理的主机 、地址 或者名字 写入此文件) MODULES&#xff1a;Ansible执行命令的功能模块&#xff0c;多数为内置核心模块&#xff0c;也可自定义 PLUGINS&…

C goto 语句

C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。 注意&#xff1a;在任何编程语言中&#xff0c;都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪&#xff0c;使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语…