我们可以为PostgreSQL数据库备份制作脚本或作业计划吗?

时间:2013-11-15 17:42:32

标签: postgresql job-scheduling pgadmin pgagent

我正在使用PostgreSQL数据库,我正在运行数据库服务器。

我的 PostgreSQL版本是:

postgres=# select version();
                           version
-------------------------------------------------------------
 PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 32-bit
(1 row)

我的要求:

我们能否每2天为Script or a Job-Schedule PostgreSQL 数据库保持Back-Up运行?

有没有办法做到这一点?

我们可以运行任何脚本或作业调度工作来实现这一目标吗?

有没有办法使用 PgAgent 来做到这一点!我正在使用 PgAdminIII

1 个答案:

答案 0 :(得分:3)

取自here

在Windows环境中实现自动备份:

<强> 1。创建.pgpass文件

(我打电话给我的pgpass.conf)把它放在安全的地方。我把它放在一个子目录下 运行备份的脚本。

pgpass包含此格式的主机访问信息

hostname:port:database:username:password

锁定.pgpass文件 使用NTFS权限,禁止每个人访问此文件,除了用户pg正在运行 (如果您在系统帐户下运行pg,则应将其设置为使用自己的用户凭据)

<强> 2。创建一个脚本来调用pg_dumpall

例如:

SET PGPASSFILE=C:\foo\bar\PG_BACKUP\PGPASSFILE\pgpass.conf
"C:\Program Files\PostgreSQL\9.2\bin\pg_dumpall.exe" -U postgres_username  > C:\foo\bar\PG_BACKUP\db.out current

第一行是pgpass文件的位置。第二行是pg_dumpall命令,它将整个数据库输出到文件C:\foo\bar\PG_BACKUP\db.out

第3。创建计划任务

命令是

C:\Windows\System32\cmd.exe /c "C:\foo\bar\PG_BACKUP\pg_backup.bat"

,它从目录

开始

C:\foo\bar\PG_BACKUP

这是一个关于如何在Windows上创建计划任务的好教程:

http://www.makeuseof.com/tag/how-to-automate-windows-programs-on-a-schedule/

您可以通过简单的搜索找到大量此类教程和信息。