1.日志备份 接着课程以前的环境继续配置,因为本人的data的目录在/usr/local/pgsql/data。 cd /usr/local/pgsql/data 直接进入到data目录下的postgresql.conf进行配置, %p表示xlog文件名$PGDATA的相对路径, 如pg_xlog/00000001000000190000007D %f 表示xlog文件名, 如00000001000000190000007Dsql
archive_command = 'DATE=date +%Y%m%d
; DIR="home/arch/$DATE"; (test -d $DIR || mkdir -p $DIR) && cp /usr/local/pgsql/data/%p $DIR/%f'数据库
wal_level = logicalvim
以后就可登陆在命令行下执行 插入测试数据 create table t10(id int); insert into t10 select generate_series(1,10);post
执行 checkpoint; select pg_switch_xlog();测试
在data目录下面的pg_xlog能够看到相关产地日志文件
命令行
在data下面的home/arch有产出当天的复制文件rest
#执行热备 /usr/local/pgsql/bin/psql -c"select pg_start_backup('hot_backup');"日志
#对日志名称进行修改 DATE=date +%Y%m%d
postgresql
#压缩日志 tar -cf /usr/local/pgsql/data/home/arch/$DATE.backup.tar /usr/local/pgsql/data/code
#中止热备 /usr/local/pgsql/bin/psql -c "select pg_stop_backup();"
#追加中止以后日志到压缩包 tar -rf /usr/local/pgsql/data/home/arch/$DATE.backup.tar /usr/local/pgsql/data/home/arch/$DATE/
2.备份还原 用postgres用户登陆,而后进行如下操做,果真所有删除data,直接用直接备份的压缩包还原便可。我是直接删除日志,根据日志备份进行还原
关闭数据库 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop
清空/data/pg_xlog/目录下全部文件 rm –r /usr/local/pgsql/data/pg_xlog/
建立/pg_xlog/及其下面的archive_status目录 mkdir /usr/local/pgsql/data/pg_xlog/ mkdir /usr/local/pgsql/data/pg_xlog/archive_status
在/data/目录下建立recovery.conf vim /usr/local/pgsql/data/recovery.conf,编辑内容,进行保存 restore_command = 'cp /usr/local/pgsql/data/home/arch/20161211/%f %p'
启动数据库 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
查询数据 select * from t10;
能够看到数据还在