PostgreSQL数据库备份还原脚本

news/2024/12/23 1:44:32/

本文对数据库进行的操作主要用到的PG自带pg_dumpall、pg_dumppsql这几个命令

备份还原过程:

1:备份全局对象

2: 备份某一个数据库

3:还原全局对象

4:还原备份的数据库

备份详细过程:    

第一步,备份所有公共对象,包括编码用户,权限等

pg_dumpall –h 192.168.xx.xx –U adminuser –p 5432 –g –f xxx/global.sql

   第二步,备份某一个数据库

   pg_dump –h 192.168.xx.xx –U adminuser –p 5432 –d xxxdb  –C  –f xxx/xxxdb.sql

  “-C”选项,可以将建库的语句也输出到文件中;如果手动建库,则需要去除该选项

还原详细过程:

还原数据的时候,根据备份的过程,先还原全局对象,再还原数据库

  首先恢复全局的信息,包括用户,编码等:

    psql –h 192.168.xx.xx –U adminuser –p 5432 –f xxx/global.sql

  其次恢复某数据库

    psql –h 192.168.xx.xx –U adminuser –p 5432 –f xxx/xxxdb.sql

    我在上面备份pg_dump中写了”-C”,它会自动建库,如果没有写这个选项,要在psql中写-d xxxdb


执行脚本的必要条件

    

1. 将备份、还原脚本backup.shrestore.sh放进linux的某一目录当中

2. 脚本linux系统下运行前增加脚本backup.shrestore.sh的运行权限

3. 根据实际环境修改脚本中的数据库连接参数

export PGPASSWORD="postgres"      --数据库用户密码

export POSTGRESPATH=/usr/lib/postgresql/9.5/bin   --pg_dump等命令在的bin目录

HOST_NAME="192.168.xxx.xxx"     --要备份的数据源IP

ADMIN_USER="xxx"       --登录用户名

BACKUP_DB="xxx"          --要备份的数据库

脚本运行

1. 在linux下进入到脚本所在的目录

2. 先运行备份脚本backup.sh,然后到备份所指定目录下查看备份文件,如果问题执行还原脚本restore.sh

还原脚本restore.sh执行完成后对照生成的库/用户/角色/schema//数据完成验证

backup.sh  备份脚本

#!/bin/sh
###
###
###


export PGPASSWORD="备份登录用户密码"
export POSTGRESPATH=/usr/lib/postgresql/9.5/bin
HOST_NAME="所处备份数据库IP"
ADMIN_USER="备份登录用户名"
BACKUP_DB="要备份数据库"


echo "backup database start......"




#备份全局对象
$POSTGRESPATH/pg_dumpall -h $HOST_NAME -U $ADMIN_USER -p 5432 -g -f /home/global.sql


#备份某一个数据库
$POSTGRESPATH/pg_dump -h $HOST_NAME -U $ADMIN_USER -p 5432 -d $BACKUP_DB -C -f /home/$BACKUP_DB.sql


echo "backup database end....."


restore.sh  还原脚本

#!/bin/sh
###
###
###


export PGPASSWORD="还原机登录密码"
export POSTGRESPATH=/usr/lib/postgresql/9.5/bin


HOST_NAME="还原机IP"
ADMIN_USER="还原机登录用户"
RESTORE_DB="所还原库"


echo "restore database start......"


#还原全局对象
$POSTGRESPATH/psql -h $HOST_NAME -U $ADMIN_USER -p 5432 -d postgres -f /home/jack/global.sql


#还原数据库
$POSTGRESPATH/psql -h $HOST_NAME -U $ADMIN_USER -p 5432 -d postgres -f /home/jack/$RESTORE_DB.sql


echo "restore database end......"


http://www.ppmy.cn/news/598434.html

相关文章

七.deepin备份还原

鉴于deepin的不稳定性,备份还原功能需要多关注一下。 deepin官方提供了深度live系统,集成有系统修复和备份还原的功能,这个系统有点类似windows下的PE工具。 下载深度live系统:https://www.deepin.org/zh/download/ 制作深度liv…

【日常笔记】20230619——修改Linux镜像源

1.打开source.list vim /etc/apt/source.list2.拷贝一份source.list为souce.list.bak cp sources.list sources.list.bak2.修改source.list,将内容覆盖如下 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb-src…

DB2数据库的备份还原详解

备份: 一、连接数据库服务器(在服务器端建立备份文件夹) windows下(winr mstsc)输入db2cmd,linux下(我使用的是xshell) 若当前用户为root则需要切换用户至数据库管理员 db2inst1 …

使用 Navicat 备份还原数据库

基本步骤: 1.将服务器的备份文件夹复制到本; 2.打开软件; 3.选择要备份的数据库; 4.点击备份,然后点击确认。

SQL Server 备份还原教程

看了众多教程,自己也写个增强记忆,错误地方麻烦指出。 ----------------------------------------------------------------------备份-------------------------------------------------------------------- 1.打开数据库,成功连接 2.找到…

dism 如备份服务器系统,还在用 Ghost?系统备份还原 DISM 超详细使用方法

对于Vista及以前的操作系统来说,使用Ghost备份、还原系统无疑是最好的方法,但如果我们使用的是Win7或Win8系统,那么,使用系统自身提供的DISM命令备份、还原系统就是个不错的选择。和Ghost相比,使用DISM命令进行备份、还原系统具有三大优点:一是备份文件的体积极小,可极大…

达梦数据库联机与脱机备份还原

一、备份还原简介 数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。 下面主要讲一下以联机执行SQL 语句进行备份还原和脱机工具 D…

sql.gz还原mysql_mysql 数据备份还原

悲剧的一天,不小心将数据库删了。。。 命令行备份数据库 1、mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所必需的所有SQL语句。该命令的基本语法如下: $ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.…