`

一个简单的shell脚本。实现PostgresQL的自动备份和还原

 
阅读更多
    这个脚本是运用postgresQL提供的命令,从远端服务器备份数据库的完整资料,然后在本地恢复。
在运行脚本之前,如果远端数据库系统需要密码才能登陆,为了命令能完整执行,需要做在本地新建密码文件。
新建密码文件
/home/postgres/.pgpass
内容格式如下:
hostname:port:dbname:username:password
例如:
10.6.159.154:5445:edb:admin:admin
修改密码文件权限
chmod 600 .pgpass
这样在本地运行脚本备份154的数据库时,就不用手动输入密码。
新建数据库用户admin,并输入密码admin
用edb的默认超级管理员用户(enterprisedb)登陆(可以使用命令:su enterprisedb),进入edb安装目录的bin目录下,输入如下命令:
./createuser -P -s -e tamadmin
输入密码:tamadmin
这里默认数据库服务器是本地,端口为默认的5444。
运行shell脚本,进入脚本所在目录,输入如下命令:
sh edb-dump.sh

#!/bin/sh
#脚本用途
#从远端数据库服务器(10.6.159.154)上备份数据库,然后在本地还原
export POSTGRESPATH=/opt/app/PostgresPlus/9.0AS/bin
export PGPASSFILE=/home/postgres/.pgpass
echo "backup database start...."
$POSTGRESPATH/pg_dump -h 10.6.159.154 -p 5445 -U admin edb | gzip > '/opt/app/edb.dmp'
echo "backup database finished!"
echo "drop database edb start...."
export PGPASSWORD=tamadmin
$POSTGRESPATH/dropdb -U admin edb
echo "drop database edb end!"
echo "create database edb start...."
$POSTGRESPATH/createdb -U admin edb
echo "create database edb end!"
gunzip -c '/opt/app/edb.dmp' | $POSTGRESPATH/psql edb -p 5444 -U admin
rm -f /opt/app/edb.dmp
echo "restore database finished!"


运行脚本前关闭所有对需要还原的数据库的连接。
这里默认edb的安装路径是/opt/app/下,若edb安装路径不是此目录,脚本不能正确执行,需要修改脚本中POSTGRESPATH的值
运行脚本是要以root用户登陆系统。
在运行脚本时,会删除edb数据库,然后恢复到154上edb数据库的状态,所以在运行脚本时,请确保运行脚本的服务器上edb数据库下没有再用的schema。
分享到:
评论

相关推荐

    backup:用于在Web服务器上备份和还原数据库和文件的Shell脚本

    备份脚本使用一个配置文件,其中每个网站都被设置为一个项目,并且可以具有多个数据库和文件夹路径进行备份。 每个备份文件也被复制到远程位置(通过SCP / SSH)。 目前可用于MySQL和PostgreSQL数据库。 依存关系 ...

    代理:备份和还原数据库的最佳方法

    它使用pg_dump , mysqldump或mongodump并添加: 安装过程简单互动配置无Cron标签编辑使用公钥/私钥对进行加密流上传到AWS S3 备份还原过程Docker兼容性上次备份时间超过30天时通过电子邮件提醒适用于没有临时文件...

    远程导入备份orcal数据库命令

    用于帮助初学者了解远程导入备份orcal数据库操作

    PostgreSql安装手册.docx

    PostgreSQL 是一个功能强大且开源的关系型数据库管理系统,本文将指导用户完成 PostgreSQL 的安装过程,并介绍基本的数据库管理操作。 PostgreSQL 安装步骤 1. 下载 win64 安装包:用户可以从官网下载对应的安装包...

    Navicat Premium12

    交互式设计界面和高效的工作流程让你在几分钟内完成编制专业的高质量报表,并为可重复的部署进序(如报表生成、数据库备份和脚本运行)设置于特定时间或日期自动运行。无论你身处何地,都可随时把事情办好。 协同...

    【最新版】navicat150_premium_en.dmg navicat-premium: 15.0.14【亲测可用】最好的MySQL数据库开发工具

    Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure...

    Navicat Premium操作手册.7z

    3Oracle 外部表访问参数59Oracle 索引组织表59Oracle 索引组织表选项59Oracle ...PostgreSQL 对象80PostgreSQL 模式81PostgreSQL 表81PostgreSQL 表栏位81PostgreSQL 表索引82PostgreSQL 表外键83PostgreSQL 表唯一键84...

    数据库脚本

    用于还原备份 ./mariadb-restore.sh 安装PostgresSQL服务器 ./postgresql-install.sh 对于基本配置 COMING SOON!!! 备份 ./postgresql-backup.sh postgres mydatabase mydbschiema.sql mydbdata.sql --execlude-...

    优秀数据库工具 Database .NET Free 32.1.7761.1 + x64.zip

    Database .NET 中文版是一个免费多重数据库管理工具,提供更简单方便的可视化界面浏览数据库内容,无须另外安装整个数据库系统,即可直接本地或远程进行数据库的在线存取,方便数据库调试,修改,查询,打印,输出,...

    dbeaver1.4(通用数据库客户端)

    DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...

    entfrm-boot可视化开发平台-其他

    entfrm-boot是一个以模块化为核心的无代码开发平台,是一个集PC和APP快速开发、系统管理、运维监控、开发工具、OAuth2授权、可视化数据源管理与数据构建、API动态生成与统计、工作流、智能表单设计、微服务骨架等全...

Global site tag (gtag.js) - Google Analytics