企业运维之云上网络原理与实践-备份与恢复(下)

简介: 企业运维之云上网络原理与实践-备份与恢复

接上篇:

搭建RO

 

您可以通过以下两种方式来搭建RO node。

 

使用initdb来搭建RO

 

主要步骤是使用initdb初始化RO的本地存储目录,然后修改配置文件,启动实例。具体请参考只读节点部署

 

备份RW的本地存储目录来搭建RO

 

这里使用备份RW的本地存储目录。下面通过polar_basebakcup来演示:

 

1. polar_basebackup --host=[主节点所在IP] --port=5432 -D /home/postgres/replica1 -X stream --progress --write-recovery-conf -v  

 

image.png

完成polar_basebackup命令后,我们可以看到/home/postgres/replica1中存在一个polar_shared_data搭建RO时不需要它,将它删除:

 

1. rm -rf /home/postgres/replica1/polar_shared_data  

 

 

打开/home/postgres/replica1/postgresql.conf,修改如下配置项:

 

1.

2. port=5433  

3. polar_hostid=2  

4. polar_enable_shared_storage_mode=on  

5. polar_disk_name='nvme0n1'  

6. polar_datadir='/nvme0n1/shared_data/'  

7. polar_vfs.localfs_mode=off  

8. shared_preload_libraries='$libdir/polar_vfs,$libdir/polar_worker'  

9. polar_storage_cluster_name='disk'  

10. logging_collector=on  

11. log_line_prefix='%p\t%r\t%u\t%m\t'  

12. log_directory='pg_log'  

13. listen_addresses='*'  

14. max_connections=1000  

15. synchronous_standby_names=''

 

打开/home/postgres/replica1/recovery.conf,使用以下配置项替换文件中的所有内容:

 

1. polar_replica='on'  

2. recovery_target_timeline='latest'  

3. primary_slot_name='replica1'  

4. primary_conninfo='host=[主节点所在IP] port=5432 user=postgres dbname=postgres application_name=replica1'  

 

最后,启动只读节点:

 

1. $HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl start -D $HOME/replica1  

 

检查只读节点能否正常运行:

 

1. $HOME/tmp_basedir_polardb_pg_1100_bld/bin/psql \  

2.    -p 5433 \  

3.    -d postgres \  

4.    -c 'select version();'  

5.            version  

6. --------------------------------  

7. PostgreSQL 11.9 (POLARDB 11.9)  

8. (1 row)  

 

搭建Standby

 

您可以使用全量备份集搭建Standby,这里推荐使用polar_basebackup进行搭建,下面介绍搭建流程。

 

使用polar_basebakcup对实例作全量备份

 

1. polar_basebackup --host=[主节点所在IP] --port=5432 -D /home/postgres/standby --polardata=/nvme0n2/shared_data/  --polar_storage_cluster_name=disk --polar_disk_name=nvme0n2  --polar_host_id=3 -X stream --progress --write-recovery-conf -v  

 

image.png

提示

 

注意这里是构建共享存储的Standby,首先您需要找一台机器部署好PolarDB及其文件系统PolarFS,且已经搭建好了共享存储nvme0n2具体操作请参考准备块设备与搭建文件系统

 

备份完成后如下图所示:

 

image.png

提示

 

如果您没有共享存储设备,则不需要指定--polar_storage_cluster_name,--polar_disk_name,--polar_host_id参数。

 

下面我们简单介绍下其他形态的PolarDB备份:

 

1. -- 单节点本地备份  

2. polar_basebackup -D /polardb/data-standby -X stream  --progress --write-recovery-conf -v  

3. --共享存储本地备份  

4. polar_basebackup -D /polardb/data-standby --polardata=/polardb/data-local  -X stream --progress --write-recovery-conf -v  

5. -- 共享存储写入pfs  

6. polar_basebackup -D /polardb/data-standby --polardata=/nvme7n1/data  --polar_storage_cluster_name=disk --polar_disk_name=nvme7n1  --polar_host_id=3  

 

检查备份是否正常

 

查看本地目录:

 

image.png

查看共享存储目录:

 

image.png

修改postgresql.conf

 

将参数修改为如下所示:

 

1. polar_hostid = 3  

2. polar_disk_name = 'nvme0n2'  

3. polar_datadir = '/nvme0n2/shared_data'  

4. polar_storage_cluster_name = 'disk'  

5. synchronous_standby_names=''  

 

在主库中创建复制槽

 

1. psql --host=[主节点所在IP]  --port=5432 -d postgres -c 'SELECT * FROM pg_create_physical_replication_slot('standby1');'  

2. slot_name | lsn  

3. -----------+-----  

4. standby1  |  

5. (1 row)  

 

修改Standby本地目录配置

 

在Standby的本地存储目录中recovery.conf文件中增加如下参数:

 

1. recovery_target_timeline = 'latest'  

2. primary_slot_name = 'standby1'  

 

启动Standby

 

1. $HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl start -D $HOME/standby  

 

验证Standby

 

1. psql --host=[master所在IP] --port=5432 -d postgres -c "create table t(t1 int primary key, t2 int);insert into t values (1, 1),(2, 3),(3, 3);"  

2. CREATE TABLE  

3. INSERT 0 3  

 

1. psql --host=[standby所在IP] --port=5432 -d postgres -c ' select * from t;'  

2. t1 | t2  

3. ----+----  

4. 1 |  1  

5. 2 |  3  

6. 3 |  3  

7. (3 rows)  

 

按时间点恢复

 

可以参考PostgreSQL按时间点恢复PITR。其原理如图所示,使用备份集加上归档日志,可以恢复出任意历史时刻的PolarDB实例:

 

image.png

相关文章
|
4月前
|
存储 人工智能 运维
日志服务&云监控全新发布,共筑企业智能运维新范式
阿里云推出Operation Intelligence新范式,通过日志服务SLS与云监控2.0,实现从感知、认知到行动闭环,推动运维迈向自决策时代。
392 1
日志服务&云监控全新发布,共筑企业智能运维新范式
|
9月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
本文探讨了在企业数字化转型中,大型概念模型(LCMs)与图神经网络结合处理非结构化文本数据的技术方案。LCMs突破传统词汇级处理局限,以概念级语义理解为核心,增强情感分析、实体识别和主题建模能力。通过构建基于LangGraph的混合符号-语义处理管道,整合符号方法的结构化优势与语义方法的理解深度,实现精准的文本分析。具体应用中,该架构通过预处理、图构建、嵌入生成及GNN推理等模块,完成客户反馈的情感分类与主题聚类。最终,LangGraph工作流编排确保各模块高效协作,为企业提供可解释性强、业务价值高的分析结果。此技术融合为挖掘非结构化数据价值、支持数据驱动决策提供了创新路径。
576 6
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
|
4月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
4月前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
214 8
|
10月前
|
存储 SQL 运维
中国联通网络资源湖仓一体应用实践
本文分享了中国联通技术专家李晓昱在Flink Forward Asia 2024上的演讲,介绍如何借助Flink+Paimon湖仓一体架构解决传统数仓处理百亿级数据的瓶颈。内容涵盖网络资源中心概况、现有挑战、新架构设计及实施效果。新方案实现了数据一致性100%,同步延迟从3小时降至3分钟,存储成本降低50%,为通信行业提供了高效的数据管理范例。未来将深化流式数仓与智能运维融合,推动数字化升级。
519 0
中国联通网络资源湖仓一体应用实践
|
9月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1101 0
|
5月前
|
存储 人工智能 运维
从“看得见”到“能决策”:Operation Intelligence 重构企业智能运维新范式
从 Observability 到 Operation Intelligence,日志服务 SLS 与云监控 2.0 协力之下,为企业打造高效、稳定、智能运营的数字化中枢,让复杂系统变得可视、可管、可优。
|
5月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
188 4
|
9月前
|
运维 Kubernetes 前端开发
传统企业如何玩转平台工程?2 个运维靠它管 50 + 应用
做了五年运维,最深刻的感悟是:技术自负是效率的天敌。以前总觉得懂 Kubectl 命令才专业,直到被平台工程打脸,真正的专业不是炫技,而是让复杂技术为业务服务。现在我常跟新人说:能让开发和厂商爽的运维,才是好运维,而 Rainbond,就是那个让所有人都爽的神器。
传统企业如何玩转平台工程?2 个运维靠它管 50 + 应用