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

这篇具有很好参考价值的文章主要介绍了PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复,postgresql,oracle,数据库

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

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

PostgreSQL第41讲:1月13日(周六)19:30直播

内容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表空间物理文件位置

PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复,postgresql,oracle,数据库

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

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。文章来源地址https://www.toymoban.com/news/detail-813812.html

到了这里,关于PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三、python Django ORM postgresql[数据定时备份、数据恢复]

    解释:备份指定数据库,能有效在发生错误时,预防错误,进行恢复 免密 cron 日志查看: tail -f -n 200 /var/log/syslog systemd timer 解释:因为博主在自己电脑上怎么用cron都不行,故使用了这个,其效果同cron类型,但效率甚至比cron高出一点点 vim /etc/systemd/system/mytask.service vim /etc/

    2024年02月13日
    浏览(25)
  • PG-DBA培训12:PostgreSQL物理备份与恢复实战

    一、风哥PG-DBA培训12:PostgreSQL物理备份与恢复实战 课程目标: 本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL备份恢复与迁移升级阶段之PostgreSQL物理备份与恢复实战,学完本课程可以掌握: 1)风哥PostgreSQL物理备份工具与归档模式,PostgreSQL物理备份

    2024年02月12日
    浏览(33)
  • 【PostgreSql】本地备份为dump文件与恢复数据库(单表和整个数据库)

    环境: windows 数据库: postgresql 1.准备脚本 backUpDb.bat 脚本为备份脚本,双击运行,右键可以选择编辑; restoreDb.bat 脚本为恢复脚本,双击运行,右键选择编辑; 1.1 脚本介绍 如上图所示编辑脚本文件,选择你的备份路径和相应的程序执行路径,以及要备份的数据库名称,登录

    2024年01月23日
    浏览(32)
  • 宝塔 安装/使用/备份数据 Jenkins-图文小白教程

    大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。 但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站(https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/),大家可以根

    2024年02月10日
    浏览(29)
  • JFrog Artifactory的数据备份与恢复教程

    目录 一、数据备份        1、使用管理员账号登录JFrog的后台,点击“Backups”选项        2、查看备份规则        3、修改备份规则          4、测试备份规则是否生效        5、查看备份进度 二、数据恢复         1、使用管理员账号登录JFrog的后台,点击“

    2023年04月24日
    浏览(24)
  • Ubuntu20.04安装Postgres主从备份

    检查是否安装成功 配置远程连接 修改主服务器的配置文件(postgresql.conf、pg_hba.conf) 添加如下配置 重启服务 首先进行第一步的安装操作。 然后配置从服务器 使用下面命令备份主数据库中的数据 -h –指定作为主服务器的主机。 -D –指定数据目录。 -U –指定连接用户。 -P

    2024年02月08日
    浏览(27)
  • 【教程】Linux使用git自动备份和使用支持文件恢复的rm命令

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]         首先非常不幸地告诉你:Linux 系统的 标准 rm 命令不支持文件恢复功能 。一旦使用 rm 删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试恢复这些文件。         不过,

    2024年02月21日
    浏览(31)
  • 运行在容器中Postgres数据库数据损坏后如何恢复?

    在使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss, 我介绍了将 RssHub + Tiny Tiny RSS 部署到 K8s 集群中的方案. 其中 TTRSS 会用到 Postgres 存储数据, 也一并部署到 K8s 容器中. 但是最近, 由于一次错误操作, 导致 Postgres 数据库的 WAL 损坏, Postgres 的 Pod 频繁 CrashBackoffLoop. 具体报

    2024年02月08日
    浏览(31)
  • PostgreSQL数据库——Docker版本的postgres安装 & Navicat连接方式+导入向导使用 & SpringBoot结合Jpa使用PostgreSQL初步

    1.PostgreSQL数据库初始,开源; 2.Docker版本的postgres安装,以及挂载启动; 3.Navicat连接方式+导入向导使用,导入csv文件; 4.SpringBoot结合Jpa使用PostgreSQL初步; PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),它是一种高度可扩展的、可靠的、功能丰富的数据库系统。以下是

    2024年02月04日
    浏览(58)
  • 41. linux通过yum安装postgresql

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包