`

PostgreSQL数据库备份脚本

 
阅读更多
数据库备份shell脚本(.sh):
#!/bin/bash
now=`date +%Y%m%d%H%M%S`
mkdir -p /srv/pg_backup/${now}


for db_name in "库名1" "库名2" "库名3"
do
/srv/pgsql92/bin/pg_dump -Upgsql --blobs  --format=c --compress=9 --file=/srv/pg_backup/${now}/${db_name}.dump ${db_name}"
done




数据库备份ruby脚本(.rb):
#!/srv/ruby19/bin/ruby
# encoding: UTF-8
require 'rubygems'
require 'active_record'
require 'pg'
require 'fileutils'

=begin
2012-09-19
PostgreSQL 数据库备份脚本
每次执行都备份到指定的目录下
每个数据库一个文件,扩展名是 dump
恢复需要先建立数据库,然后 pg_restore 进行恢复
=end



ActiveRecord::Base.establish_connection(
  :adapter=>"postgresql",
  :database => 'template1',
  :host => 'localhost',
  :port => 5432,
  :username => 'pgsql',
  :password => 'none'
)
#不做备份处理的数据库

#FIXME
SKIP_DATABASES = %w(template0 template1 sandbox fgpay2_test)
#FIXME
BACKUP_BASE_DIR = "/srv/pg_backup/#{Time.now.to_s(:number)}"

puts "备份目的路径: #{BACKUP_BASE_DIR}"

FileUtils.mkdir_p(BACKUP_BASE_DIR) unless File.exists?(BACKUP_BASE_DIR)

#获取所有的数据库列表
class PgDatabase < ActiveRecord::Base
  self.table_name = "pg_database"
  def self.all_databases
    select('datname').where(["datistemplate = false"]).map{|record|
    record.try(:datname) unless SKIP_DATABASES.include?(record.try(:datname)) }.delete_if{|r| r.blank?}
  end
end

pg_dump_bin = lambda{|db_name|
  #c模式 --clean --create 无效
  #FIXME
  system("/srv/pgsql92/bin/pg_dump -Upgsql --blobs  --format=c --compress=9 --file=#{BACKUP_BASE_DIR}/#{db_name}.dump #{db_name}")
}

puts PgDatabase.all_databases.each{|db_name|
  puts "BEGIN BackUp #{db_name} "
  pg_dump_bin.call(db_name)
  puts "BackUp #{db_name} done.\n\n"
}

#复制到其他机器做二次备份
#FIXME
#system("/usr/bin/scp -r #{BACKUP_BASE_DIR} app1:/srv/pg_backup_238/")


分享到:
评论

相关推荐

    postgresQL数据库备份脚本

    postgresQL数据库备份脚本,添加到任务计划中就可以备份数据库文件了。

    postgresql数据库定时备份脚本(linux)

    以下是对“postgresql数据库定时备份脚本(linux)”这一主题的详细讲解。 一、PostgreSQL备份类型 1. **完整备份**:包含所有数据库对象,如表、索引、视图等。 2. **增量备份**:基于上一次完整备份,仅备份自...

    postgresql_backups.sh

    shell+crontab制作postgresql数据库定期备份脚本;利用pg_dump这个postgresql自带的备份工具

    postgresql数据库备份和恢复

    在PostgreSQL数据库备份方面,通常的工具包括内置的客户端工具pgAdmin,它提供了用户图形界面来进行数据库的备份和恢复操作。然而,随着数据库规模的增长,直接使用pgAdmin进行操作可能变得不那么稳定和可靠,这就...

    Postgresql 自动备份脚本

    使用postgresql客户端备份数据比较慢,并且使用客户端备份时不能进行其他操作,使用脚本备份比较方便。 注意事项: 1.使用本脚本 要修改成你自己要备份的数据库、连接IP、用户名、密码 2.备份前要用postgresql客户端...

    备份PostgreSQL和MySQL数据库

    数据库备份是保障业务连续性和数据安全的关键步骤,尤其对于依赖MySQL和PostgreSQL等关系型数据库存储关键信息的企业而言。这两种数据库管理系统(DBMS)都提供了内置的工具来方便地进行数据备份,使得用户可以在...

    【PostgreSql本地备份为dump文件与恢复】备份脚本.bat文件

    【PostgreSql本地备份为dump文件与恢复】备份脚本.bat文件

    数据库自动备份脚本

    一个简单的数据库备份脚本通常包括以下部分: 1. 设置变量:定义备份的数据库名、备份路径、备份文件名等。 2. 连接数据库:使用SQL命令连接到数据库服务器。 3. 执行备份操作:执行SQL命令进行数据库备份。 4. 保存...

    ansible-aws-example:示例 Ansible 角色添加 AWS 工具和 PostgreSQL 数据库备份脚本+cron 任务

    安装 AWS 工具集和脚本来备份 PostgreSQL 数据库。 您应该只为您的 IAM 用户提供足够的访问权限以上传到您选择的存储桶。 一个示例策略: { " Version " : " 2012-10-17 " , " Statement " : [ { " Sid " : " ...

    Python-一个PostgreSQL数据库迁移工具

    Python中的PostgreSQL数据库迁移工具是开发者在管理数据库结构变更时的重要辅助工具。这些工具使得数据库的版本控制变得简单,允许开发者安全地更新数据库结构,同时保持数据的完整性。本篇文章将详细探讨“Python-...

    数据库自动备份脚本 数据库自动备份脚本

    首先,我们需要了解数据库备份的基本类型:全量备份、增量备份和差异备份。全量备份会复制数据库的所有内容,而增量备份只备份自上次全量或增量备份以来发生更改的数据,差异备份则记录自上次全量备份以来的变化。...

    VFrontMySQL与PostgreSQL数据库前端管理工具v0.95c

    VFrontMySQL与PostgreSQL数据库前端管理工具是一款基于Web的数据库管理解决方案,主要针对MySQL和PostgreSQL数据库系统。这款工具的设计理念是提供一个直观且高效的工作界面,使得数据库管理员和开发人员能够更便捷...

    在Windows下自动备份PostgreSQL的教程

    总结来说,本教程通过结合Windows批处理脚本和计划任务工具,指导用户如何实现PostgreSQL数据库在Windows环境下的自动化备份。内容涵盖了从任务的创建到执行,再到具体的备份命令和参数设置,为用户提供了完整的操作...

    pg_inc_bkp:PostgreSQL增量备份脚本

    而“pg_inc_bkp”是一个专门为PostgreSQL设计的增量备份脚本,它基于Shell编写,旨在简化和自动化数据库的备份过程。 首先,我们需要理解什么是增量备份。在数据库备份中,全量备份是指备份所有数据,而增量备份则...

    PostgreSQL 12.2 安装手册

    PostgreSQL 12.2 安装手册 PostgreSQL 是一种功能...本文档总结了 PostgreSQL 12.2 安装手册的主要内容,包括安装环境、数据库安装、登录数据库、数据库备份和恢复等知识点,为读者提供了详细的 PostgreSQL 安装指南。

    javacmd数据库备份

    2. **执行备份脚本**:编写SQL备份脚本,或者调用数据库管理系统提供的备份命令(如上述的`mysqldump`或`pg_dump`)。 3. **数据导出**:将数据库中的数据导出为文件格式,如CSV或XML,或者直接生成二进制的数据库...

    数据库备份机制策略

    同时,利用版本控制(如Git)管理备份脚本和配置,可以追踪备份策略的变更历史。 最后,考虑到备份的生命周期管理,需要设定合理的保留策略。这涉及决定何时删除旧备份以释放存储空间,同时确保仍能满足恢复点目标...

    postgresqlbackup.bat

    window下备份postgresql bat脚本window下备份postgresql bat脚本window下备份postgresql bat脚本

    数据库备份和文件夹备份

    这通常涉及到创建备份脚本、制定恢复计划,并进行演练以确保在关键时刻能够顺利恢复。 定时备份是保证数据持续安全的关键,可以使用任务计划程序或备份软件设置自动备份任务,根据需求设定每日、每周或每月的备份...

Global site tag (gtag.js) - Google Analytics