返回顶部
分享到

Oracle数据库高可用之DG+RAC介绍

oracle 来源:互联网 作者:佚名 发布时间:2026-04-12 18:33:42 人浏览
摘要

一、DG的概念和原理 Oracle Data Guard是Oracle数据库的一种高可用性解决方案,它通过在主数据库和一个或多个辅助数据库之间自动复制和同步数据,来实现数据库的持续可用性和灾难恢复能力。

一、DG的概念和原理

Oracle Data Guard是Oracle数据库的一种高可用性解决方案,它通过在主数据库和一个或多个辅助数据库之间自动复制和同步数据,来实现数据库的持续可用性和灾难恢复能力。

以下是Oracle Data Guard的工作原理

  • 主数据库(Primary Database):主数据库是应用程序连接和执行事务的数据库。在主数据库中进行的所有更改都会被记录在归档日志中。
  • 辅助数据库(StandBy database):辅助数据库是通过复制主数据库的归档日志来保持与主数据库同步的数据库。辅助数据库可以是物理备库或逻辑备库。

物理备份

主数据库将归档日志传输给辅助数据库。

这可以通过物理方式(通过网络传输二进制归档日志)进行

DG保护模式

模式 数据丢失风险 传输 特点
最大保护 零数据丢失 同步 只有备考确认收到日志,主库才进行下一步操作
最大可用 零数据丢失 同步 与最大保护不同,最大可用在日志传输超时和备库收到日志后都会进行下一步操作
最大性能 有少量数据丢失风险 异步 主数据库不等待备用数据库确认

  • LGWR进程:将日志写入写入在线日志中,
  • LNSN进程:将在线日志传输到备库
  • ARcn:对在线日志进行归档
  • RFS进程:远程接数据,连接备库的日志
  • MRP进程:将日志应用恢复到备用数据库

业务中主库一般用作更新,备库一般用作读,查询操作。

二、RAC原理

Oracle RAC(Real Application Clusters)是一种高可用性和可伸缩性的数据库解决方案,它基于共享磁盘架构,允许多个服务器共享同一个数据库实例。

以下是Oracle RAC的工作原理:

  • 共享存储:Oracle RAC使用共享存储,将数据库文件存储在共享的磁盘阵列上。这使得多个服务器可以同时访问和修改数据库文件。
  • 共享缓存:Oracle RAC使用共享缓存(Shared Cache),也称为共享SGA(System Global Area),来缓存数据和SQL语句。每个服务器都可以访问并更新共享缓存,这样可以提高性能和并发能力。
  • 共享连接:Oracle RAC使用公共网络连接来提供对数据库的访问。客户端可以通过网络连接到任意一个服务器节点,然后通过Oracle Clusterware将请求路由到运行数据库实例的节点。
  • 数据库实例:Oracle RAC包含多个数据库实例,每个实例都运行在独立的服务器上。每个实例都有自己的SGA和后台进程,但它们共享同一个数据库。
  • 数据共享:共享存储和共享缓存使得所有的数据库实例都可以访问相同的数据。当一个实例修改数据时,其他实例可以立即看到这些修改。
  • 数据同步:Oracle RAC使用高速的内部网络来保持所有数据库实例之间的数据同步。当一个实例修改数据时,这些修改会被写入共享存储,并通过内部网络传播到其他实例,以确保数据的一致性。
  • 故障转移:如果一个数据库实例故障,Oracle Clusterware会检测到这个故障,并将数据库会话和工作负载迁移到其他正常运行的实例上,实现高可用性和容错能力。

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Oracle数据库高可用之DG+RAC介绍

    Oracle数据库高可用之DG+RAC介绍
    一、DG的概念和原理 Oracle Data Guard是Oracle数据库的一种高可用性解决方案,它通过在主数据库和一个或多个辅助数据库之间自动复制和同步数
  • Oracle归档日志爆满的急救指南
    作为运维工程师,你一定遇到过这样的紧急情况:/oracle/app/archivelog目录突然爆满,数据库挂起无法写入,业务全线中断。你慌忙执行了网上
  • Oracle授予普通用户kill session权限的方法
    开发A在测试环境操作时有时会遇到阻塞问题,需要找DBA帮忙查看阻塞会话及kill session,后来觉得太麻烦想要个kill会话的权限,查了下Oracl
  • Oracle日期时间查询方式
    一、查询近一个月的数据 如果是月份的话,oracle中可以使用add_months()函数来实现,如: 1 ADD_MONTHS(sysdate,-1) = CREATE_DATE 表示创建日期 CREATE_
  • Oracle登录时忘记用户名或密码该怎么解决
    (注意:Oracle12c规定用户名都必须以C##开头,否则无法使用。) 1.用户名:sys密码:change_on_install或者manager as sysdba 2.用户名:system密码:manager
  • Oracle记录登录用户IP的方法
    在运维场景中,在定位到某个SQL引起系统故障之后,想知道是哪台机器发过来的,方便定位源头,该如何解决? 在 Oracle 数据库中记录登录
  • 使用Oracle通过gateway连接MSSQL的流程

    使用Oracle通过gateway连接MSSQL的流程
    环境概述 某医院的his系统Oracle数据库要和体检系统进行数据通讯,需要从Oracle能查到sqlserver的数据。本次通过Oracle gateway来解决此问题。
  • oracle数据库被锁定的解除方案介绍

    oracle数据库被锁定的解除方案介绍
    oracle数据库被锁定如何解除 使用以下SQL语句查询Oracle被锁定的表 1 2 SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects b, v$ses
  • Oracle锁表处理方式介绍
    Oracle锁表处理 1.查看被锁的表 1 2 3 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id 2.查看锁表
  • oracle临时表WITH AS用法介绍
    临时表分类 oracle临时表分为会话级临时表和事务级临时表; 会话级的临时表只与当前会话相关,只要当前会话还存在,临时表中的数据就还
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计