`
wuhuizhong
  • 浏览: 684498 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

PostgreSQL 通用备份脚本

 
阅读更多
#!/bin/bash
 
PG_USER="postgres"
SUDO_CMD=$(which sudo)
SUDO="$SUDO_CMD -u $PG_USER"
PSQL_CMD=$(which psql)
PSQL="$SUDO $PSQL_CMD"
GREP=$(which grep)
AWK=$(which awk)
PGDUMP_CMD=$(which pg_dump)
PGDUMP="$SUDO $PGDUMP_CMD"
VACUUM_CMD=$(which vacuumdb)
VACUUM="$SUDO $VACUUM_CMD"
FIND=$(which find)
 
# Bellow is how old, in days, a backup will need to be deleted.
# This helps cleaning up and don't keep piling backups
MAX_DAYS=10
 
# 备份文件存放路径,如果不存在需要创建
BACKUPS_DIR="/var/backups/pgdbs"
 
# To get a list of all databases uncomment the following 3 lines
#DBS=$($PSQL -q -c "\l" | sed -n 4,/\eof/p | grep -v rows\) | grep -v template0 | grep -v template1 | awk {'print $1'} | grep -v :)
#echo $DBS
#exit
 
# Uncomment bellow to backup all databases
#DBS=$($PSQL -q -c "\l" | sed -n 4,/\eof/p | grep -v rows\) | grep -v template0 | grep -v template1 | awk {'print $1'} | grep -v :)
 
#要备份的数据库名称,一次可备份多个数据库,使用空格将他们的名称分开
DBS="postgres" #替换成要备份的数据库名
    
for DB in $DBS
    do
        echo -n "Vacuum'ing database $DB ... "
        $($VACUUM -z $DB)
        echo "Done."
        BACKUP_NAME="$BACKUPS_DIR/$DB-backup-$(date +%Y%m%d%H%M).sql.tar.bz2"
        echo -n "Creating backup of database $DB ... "
        $($PGDUMP -Ft -b -o $DB | bzip2 --best > $BACKUP_NAME)
        echo "Done."
        echo -n "Removing backups of database $DB older than $MAX_DAYS days ... "
        $($FIND $BACKUPS_DIR -name "$DB*" -type f -mtime +$MAX_DAYS -delete)
        echo "Done."
  done
 

 

一个通用的 PostgreSQL 数据库定时备份脚本,加入 Unix/Linux 的 crontab 中即可:

 

分享到:
评论

相关推荐

    KingbaseESR3R6优化备份工具合集

    在压缩包“kb_scripts”中,可能包含了上述的各种脚本文件,如备份脚本(backup.sh)、恢复脚本(restore.sh)、验证脚本(verify.sh)等。用户在使用时,应按照提供的文档或指南进行操作,确保正确执行备份和恢复...

    表备份的通用解决方案

    2. **备份工具**:使用数据库管理系统(如MySQL、SQL Server、Oracle等)内置的备份功能,或第三方工具如RMAN(Recovery Manager)、pg_dump(PostgreSQL)、mysqldump(MySQL)。这些工具能方便地导出表数据为文本...

    cgi网站备份www--2010-04-16.rar

    2. **数据库备份**:如果网站依赖于MySQL、PostgreSQL等数据库,需确保数据库内容也被备份。这通常通过导出SQL文件或使用特定工具完成。 3. **配置文件**:备份`httpd.conf`、`.htaccess`和其他服务器配置文件,这些...

    sql 通用工具

    SQL通用工具是一款强大的数据库管理软件,它为用户提供了与多种数据库系统交互的能力,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL等。这类工具通常具备直观的用户界面,旨在简化SQL查询、数据管理、数据库...

    通用数据库查询分析器

    而“通用数据库查询分析器”便是这样一款专为数据库管理人员设计的强大工具,它能够支持现有的各种数据库系统,无论你是SQL Server、MySQL、Oracle还是PostgreSQL的用户,都能找到对应的支持,极大地提升了数据库...

    DBSync 1.0版本,通用型的同步软件,支持SQL、NoSQL各种数据库,用于系统对接、数据备份、异地传输等。

    非侵入式,无需改动数据库,无需注入脚本或触发器,不影响现有系统运行。只需连接上即可同步,独立运行,简单易用。 ● 支持各种数据库 支持Oracle、MySQL、SQL Server、Access、PostgreSQL、MongoDB、DB2、ES、...

    golang-backup:只是备份

    - **持续集成**:配合Jenkins、Travis CI等工具,可以实现备份脚本的自动化测试和部署。 7. **golang-backup-master项目结构**: - `main.go`:项目入口文件,通常包含主逻辑和初始化操作。 - `config.yaml`/`...

    通用数据库操作工具(Universal Data Access Tool)V4

    除了基本的数据库操作,UDAT V4还提供了脚本编辑和调试功能,用户可以直接在工具内部编写和测试SQL脚本,形成一个集成的开发环境。 总的来说,UDAT V4是一款全面覆盖数据库操作需求的工具,它的多样性和易用性使其...

    数据库转换器通用版8.8

    这意味着,无论你是从MySQL迁移到SQL Server,还是从Oracle转换到PostgreSQL,都可以轻松完成。这个过程不仅包含了结构的转换,还涉及数据的完整迁移,确保了业务的连续性和数据的一致性。对于企业或个人来说,这种...

    通用SQL数据库附加工具

    它能够处理多种类型的SQL数据库,如MySQL、SQL Server、Oracle、PostgreSQL等,这些数据库系统在企业级应用中广泛应用,有着各自独特的特性和优势。 工具的操作界面通常直观易用,允许用户通过简单的步骤来附加或...

    基于Web的通用BBS系统的建立与维护

    数据库通常是MySQL、PostgreSQL或MongoDB,用于存储用户信息、帖子内容和论坛配置等数据。前端框架如React、Vue或Angular,用于构建用户界面,提供良好的交互体验。 其次,BBS系统的后端开发涉及到服务器端脚本语言...

    数据库管理工具:dbeaver-ce-23.3.3-macos-aarch64.dmg

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上...

    PGSQL常见的问题

    "Postgres"通常指的是早期版本的PostgreSQL,但现在二者常通用。 #### 2. 谁控制PostgreSQL? PostgreSQL没有单一的控制者或掌门人,其发展和决策是由一个广泛的、分散的社区驱动的。这个社区包括开发者、用户和...

    RDB打包解包工具.rar

    例如,MySQL的`mysqldump`命令可以将数据库内容导出为SQL脚本,而`pg_dump`则是PostgreSQL数据库的类似工具。 在实际应用中,打包RDB的过程通常涉及以下步骤: 1. 数据库备份:在对数据库进行任何重大操作之前,都...

    Navicat_Premium_10.1.7(通用查询分析器,可将数据导出Insert语句)

    Navicat Premium 10.1.7 是一款强大的数据库管理工具,专为专业人士设计,提供了对多种数据库系统的全面支持,包括MySQL、SQL Server、Oracle、SQLite和PostgreSQL。这款软件以其直观的用户界面和丰富的功能集而备受...

    数据库导入导出dump.txt

    在本案例中,"数据库导入导出dump.txt" 可能是指一个教程或者笔记,记录了如何使用文本格式(如SQL脚本)对数据库进行备份和恢复的过程。该资源可能来自博客文章,链接为 ,但实际内容未提供,所以我们只能基于一般...

    a5m2_2.12.0_x86.rar

    通过A5M2插件,用户可以管理SQL Server实例,执行T-SQL脚本,监控数据库性能,以及进行备份和恢复等操作,大大简化了在Windows平台上的数据库管理工作。 此外,虽然描述中没有详细列出,但A5M2可能还支持其他类型的...

    zabbix4.4&httpd&php编译安装.zip

    在运行脚本前,最好备份重要数据,了解脚本内容以确保安全。运行脚本可能需要root权限,例如`sudo sh install_script.sh`。 在成功安装Zabbix、httpd和PHP后,你需要配置Zabbix服务器和代理,设置数据库连接(通常...

    PHP实例开发源码-cicms 爱搜客通用企业建站系统.zip

    文件“使用须知.txt”可能包含了关于如何安装、配置和使用CICMS的详细指南,而“132699084380396700”可能是一个随机命名的文件,可能是数据库备份、配置文件或临时文件,具体内容需解压后查看。 总的来说,CICMS是...

    navicat 支持各种sql

    用户可以方便地进行数据导入导出、备份和同步,以及执行复杂的SQL查询和脚本。 其次,Navicat也支持Oracle数据库。Oracle是全球最大的企业级数据库供应商,它的功能强大,适用于大型企业和组织。在Navicat中,用户...

Global site tag (gtag.js) - Google Analytics