午夜自动备份 Postgres 数据库

问题描述 投票:0回答:1

我拥有云 VM,可以在 Windows 操作系统上运行基于数据库的 Web 应用程序。我正在寻找一种在每个午夜自动备份数据库的方法。 Postgres 似乎没有这个任务的自动调度程序。有什么方法可以让我们每天午夜自动备份数据库吗?

postgresql backup
1个回答
1
投票

是的,用很少的搜索和来自 stackoverflow 的混合灵魂就得到了它。这对我来说很快所以为其他人制作了一个教程。

PostgreSQL 9.6 没有提供任何自动数据库备份的内置功能。以下是自动化数据库备份的分步教程。

第 1 步。登录 到您的数据库节点 VM。

步骤 2. 创建 pgpass.conf Pgpass.conf 是包含数据库连接详细信息的文本文件。这必须手动创建。打开命令提示符并按给定顺序键入以下命令,或将它们放在 .BAT 或 .CMD 文件中并执行它

CD %appdata%
MD postgresql
CD postgresql
Echo <host>:<port_number>:<db_name>:<password> >> pgpass.conf

%appdata% - 是`C:\Users\AppData\Roaming

下的目录

PS:不要把上面的路径误认为是Postgresql的安装路径。

< host> - 主机名将是 localhost

– 默认为 5432,否则使用为您的 Postgresql 配置的端口号

是计划备份的数据库的名称

< password> - 数据库访问密码。

重点: 以上数值需要用冒号(:)分隔或分隔,如上所示。

执行上述命令后,

pgpass.conf
文件将创建在
C:\Users\<Windows_loggedin_user_ID>\AppData\Roaming

步骤 3. 创建备份文件夹 将保存所有备份文件的文件夹。

MD C:\<backup_folder_name>  - Will Create a New Folder For ex MD C:\RakyBackup
CD C:\<backup_folder_name>  - Will Take control that New Folder (C:\RakyBackup)

第 4 步。创建备份脚本。 文件并将其命名为

BackupScript.Bat

使用任何文本编辑器创建一个

.BAT
文件,并将以下脚本放入其中。

@echo off
Set backupPath= C:\RakyBackup
REM Gets the Current System Date into Variable datetime
For /f %%a in (‘powershell –Command “Get-Date –format dd_MMM_yyyy_HHMM”’) do set datetime=%%a
REM Backsup the DB
<path>\Postgresql\<ver_num>\bin\pg_dump -h localhost -p <5432> -U postgres -F c -b -v <db_name> > %backupPath%/DB-Backup_%datetime%h.sql

第 5 步。创建时间表 打开 Windows 任务计划程序。将有三个垂直面板。左侧面板将显示 Task Schedule Library。在最右边的面板上选择创建基本任务。在输入文本框中输入名称和Describe,然后单击下一步。在 Trigger 中,选择 Daily 并单击 Next。设置开始日期和Time。点击下一步。在 Action 中,再次单击 Next。面板将提示输入Program/Script。单击 Browse 并选择

C:\RakyBackup\BackupScript.Bat
。单击下一步,然后单击完成

就是这样。

每天在设定的时间,

BackupScript.Bat
会被触发,DB会自动备份。

© www.soinside.com 2019 - 2024. All rights reserved.