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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 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

相关实践学习
函数计算X RDS PostgreSQL,基于LLM大语言模型构建AI知识库
基于ChatGLM6B 大语言模型构建AI知识库问答应用。答疑群17125058181
相关文章
|
1月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
165 11
|
1月前
|
边缘计算 容灾 网络性能优化
算力流动的基石:边缘网络产品技术升级与实践探索
本文介绍了边缘网络产品技术的升级与实践探索,由阿里云专家分享。内容涵盖三大方面:1) 云编一体的混合组网方案,通过边缘节点实现广泛覆盖和高效连接;2) 基于边缘基础设施特点构建一网多态的边缘网络平台,提供多种业务形态的统一技术支持;3) 以软硬一体的边缘网关技术实现多类型业务网络平面统一,确保不同网络间的互联互通。边缘网络已实现全球覆盖、差异化连接及云边互联,支持即开即用和云网一体,满足各行业需求。
|
22天前
|
算法 安全 大数据
【算法合规新时代】企业如何把握“清朗·网络平台算法典型问题治理”专项行动?
在数字化时代,算法推动社会发展,但也带来了信息茧房、大数据杀熟等问题。中央网信办发布《关于开展“清朗·网络平台算法典型问题治理”专项行动的通知》,针对六大算法问题进行整治,明确企业需落实算法安全主体责任,建立健全审核与管理制度,并对算法进行全面审查和备案。企业应积极自查自纠,确保算法合规透明,防范风险,迎接新机遇。
|
2天前
|
人工智能 供应链 安全
2025年网络安全的12大决议:领航企业防护新篇章
2025年网络安全的12大决议:领航企业防护新篇章
|
1月前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
2月前
|
运维 供应链 安全
阿里云先知安全沙龙(武汉站) - 网络空间安全中的红蓝对抗实践
网络空间安全中的红蓝对抗场景通过模拟真实的攻防演练,帮助国家关键基础设施单位提升安全水平。具体案例包括快递单位、航空公司、一线城市及智能汽车品牌等,在演练中发现潜在攻击路径,有效识别和防范风险,确保系统稳定运行。演练涵盖情报收集、无差别攻击、针对性打击、稳固据点、横向渗透和控制目标等关键步骤,全面提升防护能力。
|
2月前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
312 30
|
2月前
|
云安全 人工智能 安全
|
2月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维在企业IT管理中的应用与实践####
本文深入探讨了智能化运维(AIOps)的核心技术原理,通过对比传统运维模式,揭示了AIOps如何利用大数据、机器学习等先进技术提升故障预测准确性、优化资源分配及自动化处理流程。同时,文章详细阐述了智能化运维平台的实施步骤,包括数据收集与分析、模型训练与部署、以及持续监控与优化,旨在为企业IT部门提供一套切实可行的智能化转型路径。最后,通过几个典型应用案例,如某大型电商平台的智能告警系统和金融企业的自动化故障排查流程,直观展示了智能化运维在实际业务场景中的显著成效,强调了其在提升运维效率、降低运营成本方面的关键作用。 ####
77 4
|
3月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。