PostgreSQL物理备份与恢复
CentOS6.6+PostgreSQL9.4 服务器: 192.168.3.201 数据库服务器 192.168.3.202 备份服务器 注:需要开启归档,物理备份$PGDATA全目录以及表空间目录,利用物理备份与归档日志进行数据库还原。可以跨越小版本,但不能跨平台。
192.168.3.201 首先开启归档: 创建归档目录: #mkdir -p/pg_archive/pg5431/ #chown -R postgres.postgres/pg_archive/pg5431/ #su postgres $ vi $PGDATA/postgresql.conf wal_level=archive #日志级别必须大于minimal,也就是说必须为archive或者hot_standby模式。 archive_mode = on archive_command = 'DATE=`date +%Y%m%d`;DIR="/pg_archive/pg5431/$DATE";(test -d $DIR || mkdir -p $DIR) && cp %p $DIR/%f' #在归档命令中,%p指xlog相对路径,%f 仅代表文件名。 保存配置文件,并重启数据库,若已开启归档模式,不需要重启数据库。 创建数据库用户rep,专门用于流复制备份。需修改pg_hba.conf认证配置:
192.168.3.202 使用pg _basebackup进行数据库物理备份,因为使用的是流复制协议备份,所以可以进行异地备份: 创建备份目录: #mkdir -p /pgback #chown -R postgres.postgres pgback #su postgres $cd /pgback $mkdir`date +%Y%m%d` 测试rep用户是否可以连接到201数据库: $psql -h 192.168.3.201 -p 5431 -U rep -d postgres
开始备份: $ pg_basebackup -D /pgback/`date +%Y%m%d` -F t -x -h 192.168.3.201 -U rep -p 5431 查看备份文件:
其中base.tar是$PGDATA的全目录备份。24579是表空间的oid,所以24579.tar与24583.tar是表空间的目录备份。
数据库还原: 192.168.3.201 表空间目录$PGDATA/pg_tblspc中存放的实际上是表空间的软连接:
创建一张表,插入一些数据:
强制日志归档,以便测试还原。checkpoint将buffer中的dirty数据写入磁盘,完成数据完整性检查。pg_switch_xlog()将pg_xlog目录下产生的wal日志,复制到预设的归档目录下,保证产生的wal日志都已完成归档。
停止数据库,清空 $PGDATA目录,以及表空间目录: 注意:如果pg非正常停掉,那么最近产生的xlog有可能还没有完成归档,所以需要将这部分没有归档的日志手工拷贝到归档目录,否则可能会丢失数据。 $pg_ctl stop $cd $PGDATA $rm -rf * $cd/pg_tablespace/pg_5431/ts_bigtable $rm -rf * $cd/pg_tablespace/pg_5431/ts_udbac $rm -rf *
拷贝备份文件: $scp postgres@192.168.3.202:/pgback/20150820/base.tar $PGDATA $ scp postgres@192.168.3.202:/pgback/20150820/24579.tar /pg_tablespace/pg_5431/ts_bigtable/ $ scp postgres@192.168.3.202:/pgback/20150820/24583.tar /pg_tablespace/pg_5431/ts_udbac/ 解压后拷贝过来的备份文件就可以删除了。
拷贝recovery配置文件 $ cp $PGHOME/share/recovery.conf.sample /$PGDATA/recovery.conf 修改还原配置文件: $vi $PGDATA/recovery.conf restore_command = 'cp /pg_archive/pg5431/20150820/%f %p' 启动数据库: $pg_ctl start
$PGDATA目录下的recovery.conf变成了recovery.done说明恢复完成。 验证数据库恢复情况:
第一次上传的图挂了,重新上传下。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |