数据库备份

本文介绍如何创建Windows任务计划来自动化执行PostgreSQL和MySQL的数据库备份,并使用批处理脚本来实现。脚本详细说明了设置备份路径、指定数据库信息、设定定时任务以及删除旧备份的步骤。此外,还提供了恢复数据库的脚本,确保数据安全。
摘要由CSDN通过智能技术生成

1.Win + R :打开运行界面,输入:taskschd.msc 打开任务计划。

img

2.点击创建基本任务。

img

3.填写信息。

img

4.选择每天执行

img

5.指定每天执行的时间

img

6.选择启动程序

img

7.选择数据库备份脚本

img

8.完成

img

备份数据库.bat–PostgreSQL

:: ------------------- 备份脚本 --------------------

:: 如需隐藏执行窗口,放开以下注释
::@echo off   
::if "%1" == "h" goto begin
::    mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:::begin 

@echo off
@setlocal enableextensions
@cd /d "%~dp0"

:: Program Files目录带有空格,所以要用双引号包起来
SET PGPATH="C:\Program Files\PostgreSQL\10\bin\"
:: 指定备份目录
SET SVPATH=E:\database-bak\
:: 指定需要备份的数据库
SET PRJDB=reclaim-dev
:: 指定用户和密码
SET DBUSR=postgres
SET PGPASSWORD=123456

FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
SET DBDUMP=%PRJDB%_%d%.bak

@echo off
%PGPATH%pg_dump -h localhost -U postgres -w %PRJDB% > %SVPATH%%DBDUMP%
rem Backup Taken Complete %SVPATH%%DBDUMP%
:: 删除30天以前的备份文件
forfiles /p %SVPATH% /d -30 /c "cmd /c echo deleting @file ... && del /f @path"

备份数据库.bat–MySQL

:: ------------------- 备份脚本 --------------------
 
:: 如需隐藏执行窗口,放开以下注释
::@echo off   
::if "%1" == "h" goto begin
::    mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:::begin 
 
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
 
:: Program Files目录带有空格,所以要用双引号包起来
SET PGPATH="E:\JAVA\Database\Database\MySQL Server 5.5\bin\"
:: 指定备份目录
SET SVPATH=E:\database-bak\
:: 指定需要备份的数据库
SET DB_HOST=127.0.0.1
SET DB_PORT=3306
SET DB_NAME=house
:: 指定用户和密码
SET DB_USER=root
SET DB_PWD=root

FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
SET DBDUMP=%DB_NAME%_%d%.sql
@echo off
mysqldump -h%DB_HOST% -u%DB_USER% -p%DB_PWD% -P%DB_PORT%  %DB_NAME% --add-drop-database > %SVPATH%%DBDUMP%

rem Backup Taken Complete %SVPATH%%DBDUMP%
:: 删除30天以前的备份文件
 forfiles /p %SVPATH% /d -30 /c "cmd /c echo deleting @file ... && del /f @path"

::FORFILES /P %SVPATH%  /D -30 /c "cmd /c del @path"

恢复数据库.bat

:: ------------------- 恢复脚本 --------------------

:: 如需隐藏执行窗口,放开以下注释
::@echo off   
::if "%1" == "h" goto begin
::    mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:::begin 

@echo off
:: 指定要恢复的文件名
SET FILENAME="reclaim-dev_2019.11.15-周五-.bak"
:: 指定数据库bin目录
SET PGPATH="C:\Program Files\PostgreSQL\10\bin\"
:: 指定数据库密码
SET PGPASSWORD=123456

%PGPATH%psql -h localhost -U postgres -d reclaim-dev < E:\database-bak\%FILENAME%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值