PostgreSQL 实现定时任务的 4 种方法

文章目录

        操作系统定时任务
        pgAgent
            安装 pgAgent
            创建定时任务
        pg_cron
            安装 pg_cron
            配置 pg_cron
        pg_timetable
            安装 pg_timetable
            使用 pg_timetable
        总结

数据库定时任务可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等。PostgreSQL 没有提供类似 Oracle、MySQL 以及 Microsoft SQL Sever 的内置任务调度功能,因此本文给大家介绍一下 PostgreSQL 数据库中实现定时任务的 4 种方法。

如果你觉得文章有用,欢迎评论📝、点赞👍、推荐🎁
操作系统定时任务

Linux 定时任务(crontab)或者 Windows 任务计划程序(Task Scheduler)为我们提供了一个实现定时任务传统的方法。以 crontab 为例,我们可以使用以下命令编辑任务列表:

crontab -e

然后在打开的文件中使用以下格式增加一行数据:

#分钟     小时   月份中的某一天  月份     星期          命令
#(0-59)  (0-23) (1-31)         (1-12)  (0-7 [7 or 0 == Sunday])
<minute> <hour> <day of month> <month> <day of week> <command>

其中的前五个字段表示执行命令的时间,可以使用星号(*)匹配所有的时间。例如,将 <month> 设置为星号表示每个月都执行命令。

举例来说,输入以下内容表示每天零点执行数据库逻辑备份操作。

0 0 * * * pg_dump --no-password -U user db_name > backup.sql

为了安全起见不要直接输入密码,而是应该将密码加入 .pgpass 文件,并且将该文件的权限设置为仅当前用户可见:

chmod 600 .pgpass

pgAgent

pgAgent 是一个用于 PostgreSQL 数据库的任务调度代理,能够基于复杂的调度计划运行多步骤的批处理、shell 脚本以及 SQL 命令。对于 Unix/Linux 系统,pgAgent 以后台进程的方式运行;对于 Windows 系统,pgAgent 以服务的形式运行。
安装 pgAgent

PgAdmin 4 管理工具集成了 pgAgent 的功能,但是这两者需要单独安装。我们可以通过官方网站下载 PgAdmin 4 以及 pgAgent。具体的安装步骤和注意事项可以参考官网文档。安装完成之后,我们可以在 PgAdmin 4 左侧导航树中看到“pgAgent Jobs”节点。


创建定时任务

右键点击“pgAgent Jobs”节点,选择“Create” > “pgAgent Job”创建一个新的定时任务。

更多请见:http://www.mark-to-win.com/tutorial/51601.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL是一款非常强大的开源数据库系统,提供类繁多的备份选项,包括完全备份、增量备份等。PostgreSQL定时备份功能可以自动备份数据库,避免了手动备份过程中可能发生的错误,也极大地减轻了管理员的工作压力。下面详细介绍PostgreSQL定时备份及相关知识。 一、PostgreSQL备份方式 1.全备份 全备份是指备份整个数据库,包括所有的表、索引、触发器、函数、存储过程等。 2.增量备份 在全备份基础上,只备份该备份后新增的数据或者改变的数据。 3.差异备份 和增量备份类似,差异备份仅备份最近一次全备份后的数据变化。 二、PostgreSQL定时备份步骤 1.安装pg_dump pg_dump是PostgreSQL自带的备份工具,安装完成后,可以进行数据库备份。 2.创建备份脚本 在服务器上创建shell脚本backup.sh #!/bin/bash DATE=`date +%Y%m%d` BACKUP_PATH=/backup/pgsql if [ ! -d $BACKUP_PATH ]; then mkdir -p $BACKUP_PATH fi cd $BACKUP_PATH pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f $BACKUP_PATH/pgsql-$DATE.sqlc postgres 3.设置定时任务 使用crontab命令设置定时任务。 $crontab -e 30 2 * * * /bin/bash /backup/pgsql/backup.sh > /dev/null 2>&1 命令的含义是每天凌晨两点半执行备份脚本backup.sh,并将输出结果重定向到null设备中,以防止输出信息占用过多的磁盘空间。 三、其他备份方式 PostgreSQL还提供了其他备份方式: 1.Pg_basebackup pg_basebackup是PostgreSQL 9.1及以后版本中自带的全备份工具,它可以备份整个集群的数据文件。 2.Pg_dumpall pg_dumpall是备份整个集群所有数据库和用户信息的工具。 总的来说,PostgreSQL提供的备份方式不仅灵活、全面,而且易于使用,管理员只需要根据自己的需要选择一或多备份方式即可实现数据的自动备份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值