[发明专利]一种适用于PostgreSQL主备环境的文件备份及清理方法及系统在审
申请号: | 202111215236.3 | 申请日: | 2021-10-19 |
公开(公告)号: | CN114036000A | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 张皓;林文辉;王志刚;白雪珂;马兰 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/21;G06F16/28 |
代理公司: | 北京工信联合知识产权代理有限公司 11266 | 代理人: | 刘海蓉 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 postgresql 环境 文件 备份 清理 方法 系统 | ||
本发明公开了一种适用于PostgreSQL主备环境的文件备份及清理方法及系统,属于文件处理技术领域。本发明方法,包括:登录PostgreSQL的主备环境,在所述主备环境中定时执行Shell脚本;使用PostgreSQL的pg_controldata命令,对历史WAL归档文件进行备份,并在备份完成后进行清理;针对PostgreSQL的备环境,计算磁盘的可存储WAL归档文件的支撑天数,根据所述支撑天数确定安全阈值天数,并将超出安全阈值天数的WAL归档文件进行清理。本发明的方法通过PostgreSQL原生pg_archivecleanup等命令,针对主备两种环境所承担工作的特点,分别实现了WAL文件的备份、清理和彻底清除等相关功能。
技术领域
本发明涉及文件处理技术领域,并且更具体地,涉及一种适用于PostgreSQL主备环境的文件备份及清理方法及系统。
背景技术
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,其支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。
同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。PostgreSQL的REDO文件在10版本以前被称为XLOG日志,10版本以后被称为WAL文件,保存于$PGDATA/pg_xlog或者$PGDATA/pg_wal目录中。
一般来说,PostgreSQL可以通过启用archive_mode并设置archive_command对WAL文件进行归档,归档操作可以理解为在创建检查点时,将内存中WAL文件的内容持久化到磁盘上。也就是说,最新记录的持久化内容是来源于某个WAL文件中的,而在这个文件之前的所有数据都已经持久化到了磁盘。同时,利用checkpoint_segments、wal_keep_segments、checkpoint_completion_target等参数能实现WAL文件保存最大个数的限制,超过这个限制则会自动清理。对于已开启归档的PostgreSQL,保存归档状态的目录archive_status中会生成ready、done等标记在文件名结尾的标签文件。其中ready表示WAL文件已写满,可以调用归档命令;done表示该WAL文件已完成归档,只有归档成功的WAL文件才会被清除。在归档命令被执行后,会触发清除归档标签文件的操作,并且在执行检查点时,也会触发清除归档标签文件的操作。
虽然强烈建议PostgreSQL通过自动方式进行WAL文件的归档和清除操作,以防止人为误操作导致归档和清除过程中出现异常,进而导致数据丢失的严重后果,但依然不可避免地存在PostgreSQL数据库因配置不当或者其他因素使得自动归档和文件清理失效的情况。比如虽然开启了archive_mode但没有配置archive_command,那么WAL文件会在pg_wal目录一直堆积,这是因为WAL文件写完后,会再写入对应的ready标签文件,但由于没有配置archive_command,所以不会触发归档命令,也就始终无法写入done标签文件,导致pg_wal目录一直都不会被清理。这种情况就需要人为及时介入处理,因为一旦未及时处理,其后果将是WAL文件的归档目录无法接收新的归档文件,使得大量WAL文件滞留在pg_wal目录,当磁盘空间被彻底占满时,PostgreSQL数据库会出现宕机不可用的情况。
发明内容
本发明针对上述问题,提出了一种适用于PostgreSQL主备环境的文件备份及清理方法,包括:
登录PostgreSQL的主备环境,判断登录用户是否为所述PostgreSQL的专用用户,若是,则在所述主备环境中定时执行Shell脚本;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111215236.3/2.html,转载请声明来源钻瓜专利网。