在本文中,我们将回顾使用CommVault for PostgreSQL备份的经验。 为此,我们将分析过去项目之一的一小部分,在那儿我们从客户端设置了PostgreSQL数据库的备份。

关于CommVault
CommVault是一个可扩展的平台,提供集成的数据保护和内容管理。 该平台支持具有以下功能的软件模块:数据的备份和还原,归档,重复数据删除,复制,媒体的分层分发和加密。 平台模块可与来自各种来源的公司内容一起使用,并通过虚拟存储库中的文档的智能索引,甚至可以从归档中端对端搜索公司环境中的信息及其持续可用性。 该平台还配备了高级分析工具,可生成有关用户和应用程序的操作以及基础架构的功能的报告。
CommVault在物理和虚拟环境中保护,还原和管理数据以及对其的访问。
关于PostgreSQL备份
要执行PostgreSQL数据库的备份,使用了一个代理(iDataAgent),该代理安装在运行数据库的服务器上。 该代理旨在有效地管理和保护PostgreSQL数据库中的重要业务数据。 您可以使用该代理来备份和还原整个PostgreSQL服务器或单个数据库。 如有必要,您还可以还原单个表。
主要特点:
PostgreSQL iDataAgent提供了以各种模式备份数据库并在最短时间内还原它们的灵活性。 您可以随时备份或备份整个PostgreSQL服务器,单个数据库或归档日志。
可以在不同模式下执行的备份和恢复功能:
- iDataAgent提供了还原整个PostgreSQL服务器的功能。 可以在目标服务器上还原位于源服务器上的所有数据库。
- 将单个数据库或数据库组定义为子客户端数据,然后进行备份和还原。
- 仅备份PostgreSQL服务器上的日志。 这些日志文件可用于恢复由于操作系统或磁盘故障而丢失的数据库事务。
- 在特定时间点还原整个PostgreSQL服务器,以进行基于文件系统的备份。
- 在CommCell控制台中,从Job Controller和Event Viewer查看并验证备份和恢复操作的状态。 使用可以保存和分发的报告跟踪工作状态。
- 使用块级备份作为备份数据的更快方法,因为备份仅针对数据块(或数据库的修改部分),而不是针对整个PostgreSQL数据库。
- 块级重复数据删除 重复数据删除通过在数据保护操作中识别和删除重复项,提供了一种更智能的数据存储方式。
建筑学
方案
运作方式:CommVault平台作为CommServe管理服务器和单独的MediaAgent服务器的一部分部署在网络上(建议使用物理服务器)。
代理(iDataAgent)与PostgreSQL数据库一起安装在服务器上,其备份策略根据要求进行配置。 iDataAgent会收集必要的数据,进行压缩,重复数据删除(如有必要),对其进行加密并将其传输到MediaAgent。
此外,数据被放置在存储系统,磁带库或云存储上。
为了恢复,使用PostgreSQL从存储中提取数据并将其复制到服务器。
在CommVault控制台中进行设置现在,让我们看看如何在管理控制台中执行此操作。
1.目前,要开始数据库备份,请在CommCell Browser控制台中选择:
客户端计算机| | PostgreSQL | | DumpBasedBackupSet。
右键单击
子客户端中的
默认文件夹,然后选择“
备份” 。

2.选择
完全作为备份类型,然后选择
立即 。
3.单击
确定 。
PostgreSQL备份
开始 。

4.在作业执行期间,可以通过其
CommCell控制台的“
作业”窗口监视其状态。

5.任务完成后,您可以从“
备份历史记录”窗口中查看已完成任务的详细信息。 在
子客户端中选择
默认文件夹,然后选择“
备份历史记录” 。

6.在“
备份历史记录”窗口中,您可以查看有关已完成任务的以下数据:
-完成任务时出现备份错误;
-成功备份的项目;
-作业细节;
-活动;
-日志文件;
-存储数据的介质。
为什么可以备份基于转储的备份:
- PostgreSQL系统数据库;
- PostgreSQL用户数据库
- 备份文件系统(基于文件系统的备份)。
PostgreSQL数据库(数据和日志)(数据和日志):
未复制的内容:
- PostgreSQL应用程序文件(应用程序文件);
- 操作系统数据。
使用文件系统iDataAgent备份上述组件。
挑战赛
客户端需要部署CommVault平台来备份其服务。 其中一项服务是PostgreSQL数据库,该数据库以2个节点的群集配置进行部署:主节点和备用节点。 两者都在物理服务器上工作。
客户端PostgreSQL配置功能选择PostgreSQL集群配置是为了确保数据库服务器的容错能力。
客户端使用pg_dump进行了PostgreSQL数据库备份。
下图显示了工作方案:

使用CommVault配置备份
为了统一备份平台并利用备份存储,我们决定使用CommVault备份PostgreSQL数据库。
因为 客户端使用PostgreSQL集群配置,对于备份,我们决定使用基于文件系统的备份选项进行文件备份。 同时,我不得不放弃使用块备份(Block Level Backup),因为 部署PostgreSQL所使用的Linux内核版本高于官方支持的CommVault。 由于该服务对于组织至关重要,因此他们决定根据下表制定备份计划:
| 完整副本
| 交易记录
|
---|
图表
| 每天一次,在23小时
| 每小时24小时 |
副本的保存期限
| 7天
| 1天
|
数据库的总容量超过1.5 Tb,并且为了保持在所需的RTO和RPO之内,使用了单独的LAN网络以10 Gb / s的速度进行备份。
根据下图执行备份:

备份是从PostgreSQL备用服务器获取的,并存储在安装了MediaAgent的服务器上。 接下来,每月一次,将完整副本上载到亚马逊云,保质期为一年。
进行所有必要的设置,备份成功。
PostgreSQL备份配置功能在安装和配置备份时,我们遇到了一些困难,下面列出了这些困难。 我认为在执行类似项目和设置PostgreSQL数据库管理员时考虑这些功能会很有用。
- 检查主节点和备用节点是否具有根据CommVault文档设置的相同PostgreSQL服务设置:
documentation.commvault.com/commvault/v11_sp14/article?p=21491.htm - 检查“备份故障排除”中指定的参数是否与链接指定的参数一致:
documentation.commvault.com/commvault/v11_sp14/article?p=21723.htm
documentation.commvault.com/commvault/v11_sp14/article?p=21518.htm - 确保根据以下要求设置对数据库服务器和数据库的访问权限:
documentation.commvault.com/commvault/v11_sp14/article?p=21523.htm
恢复备份是好的。 自然,我们不仅对它的创建过程感兴趣,而且对它的恢复感兴趣。 对于所有的事情。
在这种情况下,根据我们的经验,有两种情况可能需要客户进行修复:
- 在某个时间点还原数据库,以访问例如可以从数据库中删除的数据;
- 以防丢失整个PostgreSQL数据库集群。
要还原数据库,只需阅读以下链接上的
文档 :
documentation.commvault.com/commvault/v11_sp14/article? p =
21502.htm我们还将在恢复过程中将您的注意力集中在以下功能和步骤上:
- 始终遵循PostgreSQL DBA的恢复过程。 这将帮助您避免错误的操作并快速解决恢复过程中出现的问题;
- 必须在具有主角色的节点上执行恢复;
- 还原时,请确保在操作完成后确认PostgreSQL服务没有启动;
- 在还原的节点中,将设置更改为主角色,因为 在本例中,我们备份了Standby节点;
- 在备用节点上禁用服务,在主节点上启用它们,然后启用备用节点并再次配置复制。
结论
在本文中,我们没有考虑Linux OS本身和其他系统的备份。 应该单独进行。 CommVault文档对此进行了详细描述。 如果我们的文章引起了人们的兴趣,并且有很多希望,那么我们肯定会描述如何备份其他系统。 在评论中写下您感兴趣的系统。
希望我们的经验能帮助您设置PostgreSQL DBA的备份。
作者:
Sergey Alexandrov,Softline备份组主管
服装线首席工程师Artyom Khmelenko