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

PostgreSQL 主从的进程和Oracle dataguard的进程对比介绍

PostgreSQL 主从的进程和Oracle dataguard的进程对比介绍

PostgreSQL 的主从复制和 Oracle Data Guard(Oracle 的高可用、灾难恢复和数据保护解决方案)在实现高可用性和数据保护方面有很多相似之处,但它们的实现细节和所涉及的进程有所不同。以下是对这两者主要进程的比较:

PostgreSQL 主从复制

PostgreSQL 主从复制(Streaming Replication)通常涉及以下关键进程:

  1. WAL Sender (WAL 发送进程)

    • 进程名wal_sender
    • 作用:在主库上运行,将 WAL(预写式日志)记录发送到一个或多个从库。每个从库通常有一个对应的 wal_sender 进程。
    • 启动:当从库请求流复制时,主库会启动 wal_sender 进程。
  2. WAL Receiver (WAL 接收进程)

    • 进程名wal_receiver
    • 作用:在从库上运行,接收来自主库的 WAL 数据并将其写入从库的 WAL 日志文件中。
    • 启动:当从库启动并连接到主库时,wal_receiver 进程被启动。
  3. WAL Writer (WAL 写入进程)

    • 进程名wal_writer
    • 作用:将 WAL 日志数据从缓冲区写入磁盘。此进程存在于所有 PostgreSQL 实例中,无论是主库还是从库。
    • 启动:在数据库启动时自动启动。
  4. Checkpointer (检查点进程)

    • 进程名checkpointer
    • 作用:定期将脏缓冲区数据写入磁盘,同时创建数据库的检查点。在从库上,这个进程也会进行类似的操作以进行数据恢复。
    • 启动:在数据库启动时自动启动。
  5. Background Writer (后台写入进程)

    • 进程名bgwriter
    • 作用:将脏缓冲区写入磁盘,以减轻 checkpointer 的负担。在主库和从库中都存在。
    • 启动:在数据库启动时自动启动。
  6. Startup (启动进程)

    • 进程名startup
    • 作用:在从库上运行,负责应用从主库接收到的 WAL 数据,从而将从库的数据库文件恢复到最新状态。

Oracle Data Guard

Oracle Data Guard 中主要涉及以下关键进程:

  1. Log Writer (日志写入进程)

    • 进程名LGWR
    • 作用:在主库上运行,将重做日志记录从内存写入磁盘的在线重做日志文件。
  2. Archiver (归档进程)

    • 进程名ARCn
    • 作用:将已经满的在线重做日志文件复制到归档日志文件中。在主库和备库上都存在,如果启用了归档模式。
  3. Log Transport Services(日志传输服务)

    • 进程名LNSRFS
    • Log Network Server (日志网络服务器进程, LNS):在主库上运行,将重做数据传输到远程日志应用服务。
    • Remote File Server (远程文件服务器进程, RFS):在备库上运行,接收来自主库的重做数据并将其写入远程重做日志文件。
  4. Recovery (恢复进程)

    • 进程名MRP(Managed Recovery Process, 自动恢复进程)和 LSP(Logical Standby Process, 逻辑备库进程)
    • MRP:在理备库上运行,应用收物到的重做数据以保持数据库同步。
    • LSP:在逻辑备库上运行,解析和应用重做数据。
  5. Fetch Archive Log (获取归档日志进程)

    • 进程名FAL
    • 作用:在备库上运行,用于请求主库重新发送丢失的日志文件。

比较总结

  1. 日志传输

    • PostgreSQL:使用 wal_senderwal_receiver 进程传输 WAL 日志。
    • Oracle Data Guard:使用 LNSRFS 进程传输重做日志。
  2. 日志写入与归档

    • PostgreSQLwal_writer 写入 WAL 日志,备库也有 WAL 写入机制。
    • Oracle Data GuardLGWR 写入重做日志,ARCn 负责日志归档。
  3. 恢复与同步

    • PostgreSQL:在从库上使用 wal_receiver 接收日志并通过常规恢复进程应用。
    • Oracle Data Guard:使用 MRP 在物理备库上应用日志,LSP 在逻辑备库上解析并应用重做数据。
  4. 额外支持

    • PostgreSQL:主要依赖流复制和物理备库,较少使用逻辑复制备份。
    • Oracle Data Guard:提供更丰富的逻辑和物理备库支持,并有多样的自动恢复与重新同步机制(如 FAL)。

总结

PostgreSQL 和 Oracle 在主从复制和数据保护上的实现有相似之处,但其具体进程和操作细节有所不同。PostgreSQL 的主要进程较少且集中,而 Oracle Data Guard 涉及更多专用进程,更细致地处理归档、日志传输和恢复操作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机毕业设计 基于 Hadoop平台的岗位推荐系统 SpringBoot+Vue 前后端分离 附源码 讲解 文档
  • [Redis][Zset]详细讲解
  • PHP转Go很丝滑开发框架设计思路-把php优秀设计借鉴到Go框架设计里面-保留php开发习惯又能提供高软件性能
  • 主流的消息队列
  • Java语言的Springboot框架+云快充协议1.5+充电桩系统+新能源汽车充电桩系统源码
  • 极狐GitLab 17.4 升级指南
  • 2024年一区极光优化+分解+深度学习!VMD-PLO-Transformer-GRU多变量时间序列光伏功率预测
  • 研究生三年概括
  • 【实战篇】join语句怎么优化?
  • [leetcode]216_组合总和III_给定数字范围且输出无重复
  • uni-app - - - - - 实现锚点定位和滚动监听功能(滚动监听功能暂未添加,待后续更新)
  • 后端Java-SpringBoot整合MyBatisPlus步骤(超详细)
  • ubuntu下载安装部署docker,ubuntu下载最新的docker
  • vue3.0 + element plus 全局自定义指令:select滚动分页
  • 第一弹:llama.cpp编译
  • ----------
  • 【391天】每日项目总结系列128(2018.03.03)
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Android单元测试 - 几个重要问题
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • go语言学习初探(一)
  • magento 货币换算
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 工程优化暨babel升级小记
  • 区块链将重新定义世界
  • 如何选择开源的机器学习框架?
  • 思维导图—你不知道的JavaScript中卷
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​zookeeper集群配置与启动
  • # dbt source dbt source freshness命令详解
  • #### go map 底层结构 ####
  • #nginx配置案例
  • $(selector).each()和$.each()的区别
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (TOJ2804)Even? Odd?
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 成都线下面基会拉开序幕
  • .Net中间语言BeforeFieldInit
  • @EventListener注解使用说明
  • @Transactional 竟也能解决分布式事务?
  • [android] 切换界面的通用处理
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 视觉模型篇
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • [HNOI2010]BUS 公交线路