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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 企业运维之云上网络原理与实践-备份与恢复

接上篇:

搭建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

相关文章
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
2月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
3月前
|
存储 运维 安全
运维知识沉淀工具深度解析:从结构设计到落地实践全拆解
运维知识沉淀工具助力团队将零散经验结构化存储,实现问题处理路径标准化、知识复用化。通过标签、模板与自动化调取机制,让每次处理都留下可复用资产,提升团队协同效率与系统稳定性。
|
1月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
2月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
319 11
|
2月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
303 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
2月前
|
机器学习/深度学习 人工智能 运维
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
这篇文章系统性地阐述了 AI 原生时代下,面向技术风险领域的智能体系统(DeRisk)的架构设计、核心理念、关键技术演进路径与实践落地案例。
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
|
2月前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
332 0
|
1月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
108 17
|
6月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
491 0