热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Linux下的pg_dump周期性备份

OS:CentOSDB:PostgreSQL9.3,OSuser:postgres一、编写pg_dump备份脚本:#getthedayofweek1-7startingmon1DOW`

OS: CentOSDB: PostgreSQL9.3 , OS user: postgres 一、编写pg_dump备份脚本: # get the day of week 1-7 starting mon=1 DOW=`

OS: CentOS

DB: PostgreSQL9.3 , OS user: postgres

一、编写pg_dump备份脚本:

# get the day of week 1-7 starting mon=1 DOW=`date +"%u"` # define variables DB_INSTALL_DIR='/opt/PostgreSQL/9.3' # DB_TYPE='PostgreSQL' # DB_SERVER='127.0.0.1' # DB_PORT='5432' DB_INSTANCE='mydb' DB_USER='postgres' DB_PASSWORD='postgres' DB_STORAGE='/home/postgres/backup' # specify the postgres password in the PGPASSWORD var # for pg_dump not to prompt for a password export PGPASSWORD=$DB_PASSWORD # change to the bin dir cd $DB_INSTALL_DIR/bin # run pg_dump ./pg_dump -f $DB_STORAGE/${DOW}-mydb.sql -U $DB_USER -F p -a $DB_INSTANCE

将以上脚本保存到 /home/postgres/backup/backup.sh。

二、设置脚本执行计划(定时或周期性):

每个用户都有各自不同的计划任务列表,用各自的帐户su username登录后,

执行crontab -l命令可查看到各任务的计划任务情况,

执行crontab -e进入vi模式,可以修改自己的计划任务,

每次添加完任务后,一定要service crond restart重新启动crond服务,,否则任务不会生效;如果当前用户没有权限重启任务,可以切换到root用户再进行重启服务。

之后系统会按照设置定时或者周期地执行执行脚本。

su postgres crontab -l crontab -e

进入vi模式,添加相应的脚本执行计划,如:

*/2 * * * * root run-parts /home/postgres/backup/backup.sh 表示每隔2分钟执行一次backup.sh ,即每隔2分钟备份一次;
或者 0 2 * * * root run-parts /home/postgres/backup/backup.sh 表示每天的2点执行一次backup.sh ,即每天2点备份一次。

su root service crond restart

附注:

1.设置shell脚本定期执行

通过crontab -e 添加的内容,实际上是在/var/spool/cron目录下,生成了一个名为操作系统用户名(此处为postgres)的文件,其内容就是crontab -e添加的内容(此处为 */2 * * * * root run-parts /home/postgres/backup/backup.sh)。

参考资料:

2.crontab usage: crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user’s crontab)
-l (list user’s crontab)
-r (delete user’s crontab)
-i (prompt before deleting user’s crontab)
-s (selinux context)

3.pg_dump Usage:

pg_dump [OPTION]… [DBNAME]

General options:
-f, –file=FILENAME output file or directory name
-F, –format=c|d|t|p output file format (custom, directory, tar,
plain text (default))
-j, –jobs=NUM use this many parallel jobs to dump
-v, –verbose verbose mode
-V, –version output version information, then exit
-Z, –compress=0-9 compression level for compressed formats
–lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock
-?, –help show this help, then exit

Options controlling the output content:
-a, –data-only dump only the data, not the schema
-b, –blobs include large objects in dump
-c, –clean clean (drop) database objects before recreating
-C, –create include commands to create database in dump
-E, –encoding=ENCODING dump the data in encoding ENCODING
-n, –schema=SCHEMA dump the named schema(s) only
-N, –exclude-schema=SCHEMA do NOT dump the named schema(s)
-o, –oids include OIDs in dump
-O, –no-owner skip restoration of object ownership in
plain-text format
-s, –schema-only dump only the schema, no data
-S, –superuser=NAME superuser user name to use in plain-text format
-t, –table=TABLE dump the named table(s) only
-T, –exclude-table=TABLE do NOT dump the named table(s)
-x, –no-privileges do not dump privileges (grant/revoke)
–binary-upgrade for use by upgrade utilities only
–column-inserts dump data as INSERT commands with column names
–disable-dollar-quoting disable dollar quoting, use SQL standard quoting
–disable-triggers disable triggers during data-only restore
–exclude-table-data=TABLE do NOT dump data for the named table(s)
–inserts dump data as INSERT commands, rather than COPY
–no-security-labels do not dump security label assignments
–no-synchronized-snapshots do not use synchronized snapshots in parallel jobs
–no-tablespaces do not dump tablespace assignments
–no-unlogged-table-data do not dump unlogged table data
–quote-all-identifiers quote all identifiers, even if not key words
–section=SECTION dump named section (pre-data, data, or post-data)
–serializable-deferrable wait until the dump can run without anomalies
–use-set-session-authorization
use SET SESSION AUTHORIZATION commands instead of
ALTER OWNER commands to set ownership

Connection options:
-d, –dbname=DBNAME database to dump
-h, –host=HOSTNAME database server host or socket directory
-p, –port=PORT database server port number
-U, –username=NAME connect as specified database user
-w, –no-password never prompt for password
-W, –password force password prompt (should happen automatically)
–role=ROLENAME do SET ROLE before dump

If no database name is supplied, then the PGDATABASE environment
variable value is used.

推荐阅读:

PostgreSQL删除表中重复数据行

PostgreSQL数据库连接池PgBouncer的搭建

Windows平台编译 PostgreSQL

PostgreSQL备份心得笔记

PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里

推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
恨透这一切_249
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有