资讯专栏INFORMATION COLUMN

pgsql的备份恢复实验

IT那活儿 / 2114人阅读
pgsql的备份恢复实验

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!! 




PART1

准备环境


 


PART2

物理备份工具pg_basebackup

pg_basebackup是postgresql提供的一个基础备份的工具,这个工具会把整个数据库实例的数据都拷贝出来,而不只是把实例中的部分(如某个数据库或表)多带带备份出来,该工具使用replication协议连接到数据库实例上,所以主数据库中的pg_hba.conf必须允许replication连接。

--相关使用参数可通过help获得:

pg_basebackup --help

 


PART3

备份操作

---创建备份路径:

mkdir -p /pgdata/pg_backup

---执行备份:

pg_basebackup -D /pgdata/pg_backup -Ft -Pv -Upostgres -h 192.168.168.123 -p 1921

---备份命令参数:

-D 指定备份目录,目录需提前创建

-F   压缩方式

-Pv 显示备份过程

-U 指定用户

-h ip地址

-p 端口号

在执行备份命令的过程中产生了报错,图中的报错内容可知,该ip 192.168.168.123缺少部分连接权限,具体跟replication connection有关。正如前面的定义所说,要使用pg_basebackup必须有replication连接权限。

---查看配置文件:

cd $PGDATA

vim pg_hba.conf

通过检查pg_hba.conf文件发现确实没有配置相关的replication连接权限。因为是实验环境,所以直接放开ip地址限制。

在pg_hba.conf文件中,添加完replication连接权限后保存退出。又因为pg_hba.conf要想生效需要重启。所以这里重启pgsql。

---重启pgsql:

pg_ctl restart

---重新执行备份:

pg_basebackup -D /pgdata/pg_backup -Ft -Pv -Upostgres -h 192.168.168.123 -p 1921

此时,备份完成,目标备份目录下有备份文件产生。 



PART4

模拟损坏

---关闭pgsql:

pg_ctl stop -mi

---删除pgsql目录下的所有数据:

rm -rf /pgdata/12/data/*



PART5

备份恢复

---解压备份文件到目录数据目录:

tar -xf base.tar -C /pgdata/12/data/

tar -xf pg_wal.tar -C /pgdata/pg_arch/

解压完成后,已经恢复了所有已删除的数据文件,但是此时若直接执行pg_ctl start将会返回报错,pgsql无法启动。这是因为缺少了修改恢复配置文件。

---修改配置文件:

vim postgresql.auto.conf

restore_command = cp /pgdata/pg_arch/%f %p

recovery_target = immediate

---进入恢复模式:

touch /pgdata/12/data/recovery.signal

pg_ctl start


至此,pgsql的初步备份恢复以完成。


 


END


 



本文作者:胡晓明

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129506.html

相关文章

  • SimfaseDevEnv一个Vagrant构建开发环境

    摘要:整体与很像,但是做了一些更改,为了更适应中国国内的开发网络环境。表示宿主机器的目录,表示环境目录。将虚拟机置于休眠状态。在开发过程中可能会需要增加多个站点来运行不同的开发程序。与扩展名重名,建议将的改成为佳。 SimfaseDevEnv 介绍 SimfaseDevEnv是为php开发者提供的开发环境,构建在vagrant之上;Vagrant的Vagrangfile配置文件是在Homes...

    Noodles 评论0 收藏0
  • LINUX文件系统及日志分析

    摘要:恢复文件系统下的所有内容在当前目录下会出现一个目录,里面保存了已经恢复的文件该图我们依旧是对磁盘进行一个创建分区的操作。 inode和block概述文件数据包括元信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节block (块)连续的八个扇区组成一个block(4K)是文件存取的最...

    番茄西红柿 评论0 收藏2637
  • linux文件系统和日志分析

    摘要:通常情况下不需要关注单个的大小,而是需要重点关注的总数,的总字节在格式化的时候就给定了,执行命令即可查看每个硬盘分区对应的总数和已经使用的数量。 inode和block概述一:1、文件数据包括源信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区。每个扇区存储512字节block (块):连续的八个扇区组成一...

    waruqi 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<