Windows下Postgres数据库自动备份

本文介绍如何创建并使用 bat 脚本来自动执行数据库备份,并通过任务计划每天执行,同时解决输入数据库密码的问题,实现数据库备份流程的自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先新建一个bat文件,用来执行数据库备份命令。

内容如下:(路径、IP、文件名等按需指定)

@ECHO OFF 
@set DirName=%date:~0,7% 
@set FileName=%date:~0,10%_DB_NAME.backup 

@if %date:~8,2% == 01 (md E:\DBbackup\"%DirName%") 
@if not exist E:\DBbackup\"%DirName%" (md E:\DBbackup\"%DirName%") 

@if not exist %DirName% (md %DirName%) 
"D:\PostgreSQL\9.1\bin\pg_dump.exe" -i -h xxx.xxx.xxx.xxx -p 5432 -U postgres -Ft -f E:\DBbackup\%FileName% DB_NAME

@ECHO ON 

2、执行上边的bat时会要求输入数据库密码,为解决该问题,

需创建postgres密码文件“pgpass.conf”,

内容为“xxx.xxx.xxx.xxx:5432:DB_NAME:postgres:PASSWORD

放在“D:\PostgreSQL\9.1\data”路径下,

并新建环境变量【PGPASSFILE】值为“D:\PostgreSQL\9.1\data\pgpass.conf”,这样运行时就不需要输入密码了。


3、最后把bat放到任务计划中,每天执行即可。

### PostgreSQL 数据库备份脚本 对于 PostgreSQL 数据库备份操作,可以编写一个 shell 或者批处理脚本来简化这一过程。下面提供了一个基于 Linux/Unix 的 Shell 脚本例子以及 Windows 批处理文件的例子。 #### Linux/Unix 下的 Shell 脚本 此脚本会创建一个新的备份文件并将旧有的备份移动至历史记录位置[^3]: ```bash #!/bin/bash # 设置变量 DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/path/to/backup" DB_USER="username" DB_NAME="database_name" # 创建今天的日期目录用于存储当前备份 TODAY=$BACKUP_DIR"/"$DATE mkdir $TODAY # 使用pg_dump执行数据库转储并保存到指定路径下的SQL文件中 pg_dump -U $DB_USER -d $DB_NAME > "$TODAY/db_$DATE.sql" echo "Backup completed successfully." ``` #### Windows 下的 Batch 文件 同样可以在 Windows 上通过批处理文件来实现自动备份功能[^4]: ```batch @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION REM 定义时间戳和目标文件夹名 FOR /F "tokens=2 delims==" %%i IN ('"wmic os get localdatetime /value"') DO set datetime=%%i set BACKUP_PATH=D:\backups\%datetime% mkdir %BACKUP_PATH% REM 进入PostgreSQL bin目录 cd C:\Program Files\PostgreSQL\13\bin REM 开始备份整个数据库 pg_dump.exe -h localhost -p 5432 -U postgres -d data> "%BACKUP_PATH%\data.bak" ECHO Backup has been created at %BACKUP_PATH% PAUSE ``` 以上两个脚本都实现了对特定 PostgreSQL 数据库 `database_name` (Linux 版) 和 `data`(Windows版) 的完全备份,并将其导出为 SQL 格式的文件存放在设定好的备份目录内。请注意修改其中涉及的具体参数以适应实际环境需求,比如用户名、密码、主机地址等信息[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值