目录
文档用途
在Windows平台下,若HGDB数据库故障,需要恢复。那么本手册可以帮您完成数据恢复的目的。
详细信息
备份概述
备份简介
防止数据丢失的第一道防线就是备份。一个严谨的数据库备份策略,可以在数据库发生故障或误操作的情况下,将损失降到最低,甚至于将数据恢复到与发生故障前一模一样。
数据库备份有多种方式,如逻辑备份和物理备份。HighgoDB提供了pg_dump及pg_dumpall命令进行数据库的逻辑备份,但由于在恢复时,介于逻辑备份与故障时间点之间的数据难以恢复,故一般不采取逻辑备份方式进行数据库备份;物理备份包含冷备份和热备份,冷备份需要停数据库,这在正常的业务应用中是不现实的,故一般采用的是物理备份的热备份。
物理备份一般又包含两种,一类是使用文件系统或块设备级别的快照功能完成备份,但此类备份方法,当出现故障时,难以将数据恢复到需求的时刻;另一类是使用数据库的PITR方法进行热备份,这是较常使用的数据库数据备份方式,接下来即介绍此方法。
PITR物理备份相关概念
WAL日志:用于记录数据库数据文件的每次改变,在数据目录的pg_xlog子目录中,当数据库崩溃后,可以通过重放最后一次checkpoint点之后的日志文件,将数据库推到一致状态。
PITR:基于时间点的备份(Point-In-Time Recovery),通过不停地重放WAL日志就可以将数据推到备份结束后的任意一个时间点。
WAL归档:即将在线的WAL日志备份出来。
备份脚本示例
以下在HighgoDB3.0.2测试通过。
部署方法
脚本需要使用python环境,需要安装:
python-2.7.13.amd64.msi
脚本中需要使用psycopg2 来连接数据库,需要安装:psycopg2-2.6.2.win-amd64-py2.7-pg9.5.3-release.exe
因为使用psycopg连接数据库,因此需要设置pg_hba.conf中
# IPv4 local connections:下面添加
host all all 127.0.0.1/32 md5
将HGDB安装bin目录添加至PATH环境变量。
部署脚本
运行脚本为hgbackup.bat。
修改py脚本内的变量部分:
其中num=6 表示保留最近的6份全备。
另外注意文件夹路径的 / 不是 \ 。
添加操作系统计划任务调用hgbackup.bat。
建议数据库安装时的归档日志和备份放在同一目录下,当出现数据磁盘损坏时可以最大限度的恢复数据,实现数据零丢失。
如:postgresql.conf参数中archive_command = 'copy "%p" C:\\hgbackup\\archivelog\\%f'
其中C:\\hgbackup 是脚本中备份存放的路径。
恢复过程示例
详细的恢复过程示例请登录【瀚高技术支持平台】查看
https://support.highgo.com/#/index/docContent/e514d8ca047bf60e