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

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

相关实践学习
函数计算X RDS PostgreSQL,基于LLM大语言模型构建AI知识库
基于ChatGLM6B 大语言模型构建AI知识库问答应用。答疑群17125058181
相关文章
|
24天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
41 5
|
16天前
|
云安全 监控 安全
云计算环境下的网络安全策略与实践
在数字化时代,云计算已成为企业和个人存储、处理数据的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨如何在云计算环境中实施有效的网络安全措施,包括加密技术、访问控制、安全监控和应急响应计划等方面。我们将通过具体案例分析,展示如何在实际场景中应用这些策略,以保护云中的数据不受威胁。
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
29天前
|
机器学习/深度学习 监控 数据可视化
企业上网监控:Kibana 在网络监控数据可视化
在网络监控中,Kibana 作为一款强大的数据可视化工具,与 Elasticsearch 配合使用,可处理大量日志数据,提供丰富的可视化组件,帮助企业高效管理网络活动,保障信息安全。通过索引模式和数据映射,Kibana 能够组织和分类原始数据,支持深入分析和异常检测,助力企业识别潜在安全威胁。
48 5
|
1月前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
62 5
|
28天前
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
49 1
|
1月前
|
存储 安全 云计算
云上防线:云计算时代的网络安全策略
云上防线:云计算时代的网络安全策略
37 4
|
1月前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
182 1
|
1月前
|
边缘计算 5G 数据处理
5G网络能耗管理:绿色通信的实践
【10月更文挑战第30天】
38 0
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
63 4

热门文章

最新文章