[postgres]启用归档模式

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: [postgres]启用归档模式

前言

默认情况下,postgres未开启归档模式。当重做日志被写满时,之前的重做日志信息将被覆盖,这就可能导致重做日志信息的丢失。为了保证所有的重做日志不被覆盖,生产环境下一般启用归档模式。当重做日志被写满,pg先产生归档日志文件以备份重做日志,然后再覆盖重做日志文件。

配置步骤

  1. 在psql中查看当前的归档模式。默认为off,也就是未开启归档模式。
show archive_mode;
  1. 创建归档日志目录。个人习惯在数据目录下创建,可根据实际需求修改。
mkdir -p /home/postgres/apps/pgsql/data/archivelog
  1. 修改postgresql.conf文件
# 开启归档模式
archive_mode = on
# 配置归档命令
archive_command = 'log_dt=$(date +%Y%m%d);log_dir="/home/postgres/apps/pgsql/data/archivelog/${log_dt}";(test -d ${log_dir} || mkdir -p ${log_dir}) && cp %p ${log_dir}/%f'
  1. 重启postgres
pg_ctl restart -D /home/postgres/apps/pgsql/data/
  1. 使用psql登录控制台确认
-- 查看归档模式, 此时应该为on
show archive_mode;
-- 查看预写日志列表
select * from  pg_ls_waldir() order by modification desc;
-- 手动切换日志
checkpoint;  -- 触发一个完全检查点, 以及将内存中的脏数据写入数据文件
select pg_switch_wal();
  1. 查看归档文件
/home/postgres/apps/pgsql/data/archivelog

自动清理归档日志文件的shell脚本

虽然都是写shell脚本,但有两种配置自动执行的方式。一种是写在postgresql.conf中的archive_command中,每次创建归档日志的时候调用。另一种是搭配crontab。crontab方式跟配置archive_command方式差不多,只不过省去传参,直接配置crontab定时删除即可。以下为配置archive_command的步骤。

脚本内容

#!/bin/bash
set -u
log_dt=$(date +%F)
archivelog_dir="/home/postgres/apps/pgsql/data/archivelog/${log_dt}"
if [ ! -d "${archivelog_dir}/$1" ]; then
    mkdir -p "${archivelog_dir}/$1"
fi
cp --preserve=timestamps $2 ${archivelog_dir}/$1
find ${archivelog_dir}/* -type f -mtime +7 | xargs rm -f

修改postgresql.conf文件

archive_command = 'bash /home/postgres/scripts/clean_archivelog.sh %f %p'

参考

  • 赵渝强《PostgreSQL数据库实战派》
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
SQL 消息中间件 存储
PostgreSQL CDC的最佳实践
PostgreSQL CDC的最佳实践
PostgreSQL CDC的最佳实践
|
关系型数据库 PostgreSQL 索引
PostgreSQL 11 新特性解读:分区表支持创建主键、外键、索引
PostgreSQL 10 版本虽然支持创建范围分区表和列表分区表,但创建过程依然比较繁琐,需要手工定义子表索引、主键,详见 PostgreSQL10:重量级新特性-支持分区表,PostgreSQL 11 版本得到增强,在父表上创建索引、主键、外键后,子表上将自动创建,本文演示这三种场景。
7566 0
|
7月前
|
自然语言处理 监控 Linux
Linux 内核源码分析---proc 文件系统
`proc`文件系统是Linux内核中一个灵活而强大的工具,提供了一个与内核数据结构交互的接口。通过本文的分析,我们深入探讨了 `proc`文件系统的实现原理,包括其初始化、文件的创建与操作、动态内容生成等方面。通过对这些内容的理解,开发者可以更好地利用 `proc`文件系统来监控和调试内核,同时也为系统管理提供了便利的工具。
274 16
|
运维 监控 关系型数据库
【一文搞懂PGSQL】7. PostgreSQL + repmgr + witness 高可用架构
该文档介绍了如何构建基于PostgreSQL的高可用架构,利用repmgr进行集群管理和故障转移,并引入witness节点增强网络故障检测能力。repmgr是一款轻量级的开源工具,支持一键部署、自动故障转移及分布式节点管理。文档详细描述了环境搭建步骤,包括配置postgresql参数、安装与配置repmgr、注册集群节点以及配置witness节点等。此外,还提供了故障手动与自动切换的方法及常用命令,确保集群稳定运行。
|
11月前
欧拉服务器修改系统时间
【10月更文挑战第27天】欧拉服务器修改系统时间
2475 1
|
SQL 关系型数据库 数据库
【一文搞懂PGSQL】4.逻辑备份和物理备份 pg_dump/ pg_basebackup
本文介绍了PostgreSQL数据库的备份与恢复方法,包括数据和归档日志的备份,以及使用`pg_dump`和`pg_basebackup`工具进行逻辑备份和物理备份的具体操作。通过示例展示了单库和单表的备份与恢复过程,并提供了错误处理方案。此外,还详细描述了如何利用物理备份工具进行数据损坏修复及特定时间点恢复(PITR)的操作步骤,以应对误操作导致的数据丢失问题。
|
关系型数据库 Linux 数据库
在CentOS 7上安装和使用PostgreSQL的方法
在CentOS 7上安装和使用PostgreSQL的方法
1691 0
|
负载均衡 关系型数据库 网络安全
Pgpool-II实现高可用+读写分离+负载均衡(二)---- 配置篇
Pgpool-II是一款工作在PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件。提供了连接池、复制、负载均衡、限制过多连接、看门狗、查询缓存等功能。本篇介绍详细配置。
LXJ
|
安全 关系型数据库 Linux
PostgreSQL通过pg_upgrade进行大版本升级
PostgreSQL通过pg_upgrade进行大版本升级
LXJ
3367 0