PostgreSQL数据库备份方法:
创建一个*.bat文件,将
@echo on
for /f "tokens=1-4 delims=- " %%i in ("%date%") do (
set year=%%i
set month=%%j
set day=%%k
set dow=%%l
)
set datestr=%year%_%month%_%day%
echo datestr is %datestr%
set BACKUP_FILE=C:\MyResBackUp\DataBaseBackUp/myresdb_%datestr%.backup
echo backup file name is %BACKUP_FILE%
SET PGPASSWORD=******
echo on
bin\pg_dump -i -h 192.168.1.132 -p 5432 -U postgres -F c -b -v -f %BACKUP_FILE% myresdb
写入文件中,-U为数据库用户名称,-h为数据库地址,-p为端口号,mydb为数据库名称,PGPASSWORD为数据库密码,BACKUP_FILE为数据库备份的存放路径。
1.备份文件大小为0KB问题。当点击执行bat文件时确实能在备份路径下找到备份的文件不过大小为0KB,这是因为PostgreSQL所指定的备份执行文件pg_dump在C:\Program Files\PostgreSQL\9.2\bin 下,简单的解决方法是将C:\Program Files\PostgreSQL\9.2\bin文件复制一份到*.bat所在系统盘下。
2.进行异地备份数据库,一直提示要输入密码问题,当输入数据库密码后备份成功,产生这个问题的主要原因是没有该数据库执行权限,那如何做到不需要输入密码,就能进行异地备份?这里提供一种解决方法
首先建个pgpass.conf文件(文件名可以自己定),文件中写入192.168.1.100:5432:mydb:postgres:123456(这是数据库密码)将文件到该路径C:\Program Files\PostgreSQL\9.2\pgpass.conf