记录一下,防止遗忘。
由于直接cmd到ftp服务器一直无法连接,转用winscp软件来上传文件。
安装WinSCP软件
设置环境变量 Path —> C:\Program Files (x86)\WinSCP
C盘放入backup.bat文件
配置计划任务(直接百度windows计划任务)
bat文件说明:
一共分两个部分
第一,生成数据库备份文件 xxx.backup
第二,上传到ftp服务器。 通过动态生成一个winscp.txt文件,然后cmd执行winscp.txt文件
以下是backup.bat批处理文件内容。
@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"
SET PGPATH=C:\"Program Files"\PostgreSQL\13\bin\pg_dump.exe
SET SVPATH=C:\backup\
SET PRJDB=gqwdb
SET DBUSR=gqwaa
SET DBROLE=gqwaa
SET PGPASSWORD=gqwaa@2020
FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k
SET DBDUMP=%PRJDB%_%d%_%t%.backup
@ECHO OFF
%PGPATH% -h 110.24.112.215 -p 9999 -U %DBUSR% --role %DBROLE% -w -F c -b -v -f %SVPATH%%DBDUMP% %PRJDB%
echo Backup Taken Complete %SVPATH%%DBDUMP%
echo option confirm off > winscp.txt
echo open ftp://guqiwu:guqiwu@10.204.111.195 >> winscp.txt
echo lcd c:\backup >> winscp.txt
echo put %DBDUMP% >> winscp.txt
echo bye >> winscp.txt
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=C:\winscp.txt
pause
2021-02-02 发现备份了 无法还原,找到了一个新的备份方式
windows下postgresql数据库备份和还原
1、通过cmd进入数据库的bin目录
cd C:\Program Files\PostgreSQL\9.6\bin
2、执行pg_dump备份命令,localhost 或者IP
pg_dump -h host -p port -U username -d dbname> C:\dbname.bak
执行完后,会提醒输入口令,就是要输入密码
示例:pg_dump -h localhost -p 5432 -U postgres -d ship> C:\ship.bak
3、执行psql还原命令,在这之前,需要建一个空白的同名的数据库
psql -h localhost -p 5432 -U postgres -d ship< C:\ship.bak
psql -h localhost -p 5432 -U postgres -d ship -f "C:\ship.bak"
备份还是用之前的备份,
还原方式为
@echo off
D:
cd D:\Program Files\PostgreSQL\10\bin
set PGPASSWORD=123
pg_restore.exe -h localhost -U postgres -d test111 -v “D:\pgsql备份\111.backup”
pause