百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

PostgreSQL从小白到高手教程 - 第41讲postgres表空间备份与恢复

toyiye 2024-06-21 12:23 12 浏览 0 评论


PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。


第41讲:表空间备份与恢复


PostgreSQL第41讲:1月13日(周六)19:30,钉钉群(35822460)& 视频号(数据库老陈)直播

内容1:表空间备份与恢复的意义

内容2:PostgreSQL表空间概念

内容3:基于表空间备份

内容4:基于表空间的完全恢复


表空间备份与恢复的意义

PostgreSQL数据库备份所存在的问题:

1、PG备份工具备份的总是整个数据目录,数据量大,备份时间长。

2、PG备份工具恢复时总是恢复整个数据目录,数据量大,恢复时间长。

3、使用表空间的备份与恢复,可以减少备份数据,缩短备份与恢复的时间。


Tablespaces

· PostgreSQL中的表空间是基本目录之外的附加数据区域,此功能已在版本8.0中实现。

· 初始化数据库后默认的表空间有pg_default、pg_global。

· pg_global表空间的物理文件位置在数据目录的global目录中,它用来保存系统表。

· pg_default表空间的物理文件位置在数据目录的base子目录中,是template0和template1数据库的默认表空间。

· 创建数据库时,默认从template1数据库进行克隆,因此除非特别指定了新建数据库的表空间,否则默认使用template1使用的表空间,即pg_default表空间。


PostgreSQL表空间物理文件位置


创建表空间时产生的目录命名规则:

PG _ 'Major version' _ 'Catalogue version number'

例如:

sampledb=# create tablespace new_tblspc location '/home/postgres/tblspc';

$ ls -l /home/postgres/tblspc/

total 4

drwx------ 4 postgres postgres PG_12_201909212


新建表空间的目录由pg_tblspc子目录中的软链接寻址,链接名与表空间的OID值相同。

postgres=# select oid,spcname from pg_tablespace;

oid | spcname

-------+------------

1663 | pg_default

1664 | pg_global

90208 | new_tblspc

(3 rows)

$ ls -l $PGDATA/pg_tblspc/

total 0

lrwxrwxrwx. 1 postgres postgres 90208 -> /home/postgres/tblspc


· 如果在表空间下创建一个新的数据库(OID是90209),那么它的目录将在版本特定的子目录下创建:

ls -l /home/postgres/tblspc/PG_12_201909212

total 4

drwxr-x---. 2 postgres postgres 4096 Mar 30 09:27 90209

· 在base目录下创建的数据库上创建新表指定到新建的表空间:

testdb=# create table test1 (id int) tablespace new_tblspc;

testdb=# SELECT pg_relation_filepath('test1');

pg_relation_filepath

---------------------------------------------

pg_tblspc/90208/PG_12_201909212/16385/90210 #在新表空间目录下创建数据库目录


执行pg_basebackup备份

示例

产生压缩的tar包,-Ft参数指定:

pg_basebackup -D bk1 -Ft -z -P

此备份花的时间比较长,但是节省空间。支持表空间文件存放在其它目录下。

产生跟源文件一样的格式,即原样格式,-Fp参数指定:

pg_basebackup -D bk2 -Fp -P

此备份方式很快,但是不节省空间。如果有表空间路径放在其它目录下,则备份失败。


执行表空间备份

示例

数据库中执行开始备份函数

select pg_start_backup('tbs');

使用tar命令进行备份(备份tblspc表空间所在的目录)

cp -rf /home/postgres/tblspc /home/postgres/bk1

cp $PGDATA/backup_lable /home/postgres/bk1

数据库中执行结束备份函数

select pg_stop_backup();


执行一个基于表空间备份的完全恢复

PG支持基于表空间(除了pg_global之外)级别的完全恢复,因为pg_global表空间比较特殊,其中包括控制文件,而控制文件不能使用备份的进行恢复。

1、转储备份的表空间目录到目标位置

cp -rf /backup/PG_12_201909212 /home/postgres/tblspc

2、转储backup_lable文件到$PGDATA目录下

cp /backup/backup_lable $PGDATA

3、创建recovery.signal

4、修改postgresql.conf文件

restore_command = 'cp /home/postgres/archives/%f %p'

recovery_target_timeline = 'latest'

5、启动数据库,表空间所包含的表能够实现完全恢复

pg_ctl start


总结

PostgreSQL数据库支持表空间的备份与完全恢复,不支持表空间下某个数据库的备份与恢复。

备份与恢复时针对的是整个表空间所在的目录。

执行表空间恢复后数据库正常使用,数据完整,证明表空间备份恢复是可行的。

CUUG PostgreSQL技术大讲堂系列公开课第41讲-表空间备份与恢复,往期视频及文档,请联系CUUG。

相关推荐

008 - 匿名函数lambda-python3-cookbook中文教程

有名函数通过def来定义有一个有名字的函数。defmyfun():return1,2,3...

花了3万多买的python教程全套,现在分享给大家(python全栈)

花了3万多买的Python教程全套,现在分享给大家(Python全栈)文末惊喜记得看完哦。...

花来3万多买的python教程全套,现在分享给大家(python全栈)

花了3万多买的Python教程全套,现在分享给大家(Python全栈)文末惊喜记得看完哦。...

Python3最新版安装教程(Windows)(python3.7.0安装教程win10)

接下来给大家讲解一下python最新安装包的安装教程。·首先大家可以去这里搜索一下我的笔记,大概讲了一下,然后找到它的官网,下载的是windows,可以看一下最新的版本。·选择64位,点击下载就即可了...

笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

《笨办法学python3》这本书的最终目标是让你起步python编程,虽然说是用“笨办法”学习写程序,但是其实并不是这样的。所谓的“笨办法”就是指这本书的教学方式,也就是“指令式”的教学,在这个过程中...

python3 (1)(python312)

Python3Introduction:LearnthebasicsofPython3programming,withitskeyfeatures,andprovideyo...

Python3 教程-- 3、解释器(python3菜鸟教程官网)

Python3解释器Python解释器Linux/Unix的系统上,Python解释器通常被安装在/usr/local/bin/python3.4这样的有效路径(目录)里。我们可以将路径/us...

《笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

《笨办法学python3》这本书的最终目标是让你起步python编程,虽然说是用“笨办法”学习写程序,但是其实并不是这样的。所谓的“笨办法”就是指这本书的教学方式,也就是“指令式”的教学,在这个过程中...

入门经典!《Python 3程序开发指南》python学习教程赠送!

《Python3程序开发指南》(????)??嗨!你们的小可爱又来辣,小编自学python时用到的视频学习教程分享给大家~都是非常系统性、非常详细的教程哦,希望能帮助到你!转发文章+私信小编“资料”...

Python3.7最新安装教程,一看就会

一、博主自言随着人工智能的快速发展,python语言越来越受大家的欢迎,博主前段时间先自学了一次,这次再次巩固,顺便分享给大家我遇到的坑。帮助大家学习的时候少走弯路。希望会对大家有所帮助,欢迎留言...

# Python 3 # Python 3 教程(#python3.10教程)

Python3教程Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3....

Python教父推荐:《Python基础教程》(第3版)

《Python基础教程第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地...

今日精选5篇教程:用Python3带你从小白入门机器学习实战教程手册

正文1:教程标题:英伟达SuperSloMoGithub项目开放作者:英伟达教程摘要:今年6月份,英伟达发布了一份生成高质量慢动作视频的论文——《SuperSloMo:HighQual...

电子书 | 笨办法学 Python 3(笨办法学python3pdf)

本周更新了5本IT电子书资源,同时站内已经有12本Python入门方面的相关电子书,可供新手选择。1、笨办法学Python3本书是一本Python入门书,适合对计算机了解不多,没有...

Python2 已终结,入手Python 3,你需要这30个技巧

选自medium作者:Erik-JanvanBaaren机器之心编译参与:王子嘉、一鸣Python2在今年和我们说拜拜了,Python3有哪些有趣而又实用的技巧呢?这篇教程有30个你会喜欢...

取消回复欢迎 发表评论:

请填写验证码