设为首页 收藏本站
查看: 768|回复: 0

[经验分享] 关于设置Postgresql Increment的备份方式

[复制链接]

尚未签到

发表于 2016-11-20 08:09:33 | 显示全部楼层 |阅读模式
参考链接:
http://hi.baidu.com/top2top/blog/item/42f0a98b3635867b9f2fb4be.html
http://www.javaworld.com.tw/roller/ingramchen/entry/2007_5_25_SimplePostgreSQLBackup
http://www.liqiuyun.com/logs/31044543.html
特此声明,对以上三位作者表示感谢.

1. vi /var/lib/pgsql/data/postgresql to add as following lines:
archive_mode=on
archive_command='/var/lib/pgsql/backups/pgsql_backup.sh archive %p %f'
archive_timeout = 600

2. vi /var/lib/pgsql/backups/pgsql_backup.sh  to add lines like:
#!/bin/bash
# 备份PostgreSQL数据库
# 支持以下命令:
# base: 进行一个基础备份
# archive: 归档数据库日志(用于设置postgresql.conf中的archive_command参数)
# xlog: 复制当前部分填充的日志段
# clean: 删除指定日期之前的备份数据
#
#database=/raid/postgresql/8.1/main
#backup=/data/backup/database
#
database=/var/lib/pgsql/data
backup=/opt/pgsql_bak
#. /etc/admin/pgsql_backup.conf
#. /var/lib/pgsql/backups/pgsql_backup.conf
base()
{
local v=$(date "+%Y%m%d")
local d="$backup/base/$v"
mkdir -p "$d"
# vacuumdb -afz
psql template1 -c "select pg_start_backup('$v');"
(cd "$database"; cp -a $(ls | sed 's/pg_xlog//') "$d")
psql template1 -c "select pg_stop_backup();"
}
# archive_command = '/var/lib/pgsql/backups/pgsql_backup.sh archive %p %f'
archive()
{
local p="$1"
local f="$2"
if [ "$p" = "" ] || [ "$f" = "" ] || [ -f "$backup/archive/$f" ]; then
return 1
fi
mkdir -p "$backup/archive"
cp -a "$p" "$backup/archive/$f"
}
xlog()
{
mkdir -p "$database/pg_xlog"
rsync -a --delete "$database/pg_xlog" "$backup"
}
clean()
{
local t=$(echo "$1" | grep -E '^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$')
if [ "$t" = "" ]; then
echo "Timestamp '$1' error"
return 1
fi
touch -d "$t" "$backup/base/timestamp"
echo -n "Clean archived logs before $(date -r "$backup/base/timestamp" +"%Y-%m-%d")? [y/N] "
read a
if [ "$a" != "y" ]; then
return 1
fi
echo "cleaning..."
find $backup/archive -mindepth 1 -maxdepth 1 -not -newer $backup/base/timestamp -print -exec rm -rf {} \;
find $backup/base -mindepth 1 -maxdepth 1 -not -newer $backup/base/timestamp -print -exec rm -rf {} \;
echo "done."
}

case $1 in
base)
base
;;
archive)
archive "$2" "$3"
;;
clean)
clean "$2"
;;
xlog)
xlog
;;
*)
echo "usage: $0 {base|archive|xlog|clean}"
exit 1
;;
esac

3. chmod a+x /var/lib/pgsql/backups/pgsql_backup.sh
4. chown postgres /var/lib/pgsql/backups/pgsql_backup.sh
5. sudo mkdir /opt/pgsql_bak
6. sudo chown -R postgres /opt/pgsql_bak
7. sudo chmod -R 775 /opt/pgsql_bak
8. sudo /etc/init.d/postgresql restart
9.  Base Backup
vacuumdb -afz
pgsql_backup.sh base
--- Cron 每分钟执行,这样可以恢复到1分钟内的数据
10. pgsql_backup.sh xlog
--- 清除以前的备份
11.pgsql_backup.sh clean
--- 添加cron job
12.
--- Rebuild Database for recovering
1. sudo /etc/init.d/postgresql stop
2, sudo mv /var/lib/pgsql/data/* /tmp/postgresqlBak
3. sudo cp -R /opt/pgsql_bak/base/* /var/lib/pgsql/data/
4.sudo mkdir /var/lib/pgsql/data/pg_xlog
5. sudo mkdir /var/lib/pgsql/data/pg_xlog/archive_status
6. sudo vi  /var/lib/pgsql/data/recovery.conf
# set the archive log backup folder
restore_command = 'cp  /opt/pgsql_bak/archive/%f %p'
7. sudo /etc/init.d/postgresql start

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302664-1-1.html 上篇帖子: PostgreSQL-学习-03--服务器配置 下篇帖子: postgresql数据的安装简记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表