openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebackup

news2024/11/25 6:38:11

文章目录

    • openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebackup
      • 151.1 背景信息
      • 151.2 前提条件
      • 151.3 语法
      • 151.4 示例
      • 151.5 从备份文件恢复数据

openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebackup

151.1 背景信息

openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs_basebackup工具做基础的物理备份。gs_basebackup的实现目标是对服务器数据库文件的二进制进行拷贝,其实现原理使用了复制协议。远程执行gs_basebackup时,需要使用系统管理员账户。gs_basebackup当前支持热备份模式和压缩格式备份。

img 说明:

  • gs_basebackup仅支持主机和备机的全量备份,不支持增量。
  • gs_basebackup当前支持热备份模式和压缩格式备份。
  • gs_basebackup在备份包含绝对路径的表空间时,如果在同一台机器上进行备份,可以通过tablespace-mapping重定向表空间路径,或使用归档模式进行备份。
  • 若打开增量检测点功能且打开双写,gs_basebackup也会备份双写文件。
  • 若pg_xlog目录为软链接,备份时将不会建立软链接,会直接将数据备份到目的路径的pg_xlog目录下。
  • 备份过程中收回用户备份权限,可能导致备份失败或者备份数据不可用。
  • 如果因为网络临时故障等原因导致Server端无应答,gs_basebackup将在最长等待120秒后退出。

151.2 前提条件

  • 可以正常连接openGauss数据库。
  • 备份过程中用户权限没有被回收。
  • pg_hba.conf中需要配置允许复制链接,且该连接必须由一个系统管理员建立。
  • 如果xlog传输模式为stream模式,需要配置max_wal_senders的数量, 至少有一个可用。
  • 如果xlog传输模式为fetch模式,有必要把wal_keep_segments参数设置得足够高,这样在备份末尾之前日志不会被移除。
  • 在进行还原时,需要保证各节点备份目录中存在备份文件,若备份文件丢失,则需要从其他节点进行拷贝。

151.3 语法

  • 显示帮助信息

    gs_basebackup -? | --help
    
  • 显示版本号信息

    gs_basebackup -V | --version
    

参数说明

gs_basebackup参数可以分为如下几类:

  • -D directory

    备份文件输出的目录,必选项。

  • 常用参数:

    • -c,–checkpoint=fast|spread

      设置检查点模式为fast或者spread(默认)。

    • -l,–label=LABEL

      为备份设置标签。

    • -P,–progress

      启用进展报告。

    • -v, –verbose

      启用冗长模式。

    • -V, –version

      打印版本后退出。

    • -?,–help

      显示gs_basebackup命令行参数。

    • -T,–tablespace-mapping=olddir=newdir

      在备份期间将目录olddir中的表空间重定位到newdir中。为使之有效,olddir必须正好匹配表空间所在的路径(但如果备份中没有包含olddir中的表空间也不是错误)。olddir和newdir必须是绝对路径。如果一个路径凑巧包含了一个=符号,可用反斜线对它转义。对于多个表空间可以多次使用这个选项。

    • -F,–format=plain|tar

      设置输出格式为plain(默认)或者tar。没有设置该参数的情况下,默认–format=plain。plain格式把输出写成平面文件,使用和当前数据目录和表空间相同的布局。当集簇没有额外表空间时,整个数据库将被放在目标目录中。如果集簇包含额外的表空间,主数据目录将被放置在目标目录中,但是所有其他表空间将被放在它们位于服务器上的相同的绝对路径中。tar模式将输出写成目标目录中的 tar 文件。主数据目录将被写入到一个名为base.tar的文件中,并且其他表空间将被以其 OID 命名。生成的tar包,需要用gs_tar命令解压。

    • -X, –xlog-method=fetch|stream

      设置xlog传输方式。没有设置该参数的情况下,默认–xlog-method=stream。在备份中包括所需的预写式日志文件(WAL文件)。这包括所有在备份期间产生的预写式日志。fetch方式在备份末尾收集预写式日志文件。因此,有必要把wal_keep_segments参数设置得足够高,这样在备份末尾之前日志不会被移除。如果在要传输日志时它已经被轮转,备份将失败并且是不可用的。stream方式在备份被创建时流传送预写式日志。这将开启一个到服务器的第二连接并且在运行备份时并行开始流传输预写式日志。因此,它将使用最多两个由max_wal_senders参数配置的连接。只要客户端能保持接收预写式日志,使用这种模式不需要在主控机上保存额外的预写式日志。

    • -x,

      –xlog 使用这个选项等效于和方法fetch一起使用-X。

    • -Z –compress=level

      启用对 tar 文件输出的 gzip 压缩,并且制定压缩级别(0 到 9,0 是不压缩,9 是最佳压缩)。只有使用 tar 格式时压缩才可用,并且会在所有tar文件名后面自动加上后缀.gz。

    • -z

      启用对 tar 文件输出的 gzip 压缩,使用默认的压缩级别。只有使用 tar 格式时压缩才可用,并且会在所有tar文件名后面自动加上后缀.gz。

    • -t,–rw-timeout

      设置备份期间checkpoint的时间限制,默认限制时间为120s。当数据库全量checkpoint耗时较长时,可以适当增大rw-timeout限制时间。

  • 连接参数

    • -h, –host=HOSTNAME

      指定正在运行服务器的主机名或者Unix域套接字的路径。

    • -p,–port=PORT

      指定数据库服务器的端口号。

      可以通过port参数修改默认端口号。

    • -U,–username=USERNAME

      指定连接数据库的用户。

    • -s, –status-interval=INTERVAL

      发送到服务器的状态包的时间(以秒为单位)。

    • -w,–no-password

      不出现输入密码提示。

    • -W, –password

      当使用-U参数连接本地数据库或者连接远端数据库时,可通过指定该选项出现输入密码提示。

151.4 示例

gs_basebackup -D /home/test/trunk/install/data/backup -h 127.0.0.1 -p 21233
INFO:  The starting position of the xlog copy of the full build is: 0/1B800000. The slot minimum LSN is: 0/1B800000.

151.5 从备份文件恢复数据

当数据库发生故障时需要从备份文件进行恢复。因为gs_basebackup是对数据库按二进制进行备份,因此恢复时可以直接拷贝替换原有的文件,或者直接在备份的库上启动数据库。

img 说明:

  • 若当前数据库实例正在运行,直接从备份文件启动数据库可能会存在端口冲突,这时需要修改配置文件的port参数,或者在启动数据库时指定一下端口。
  • 若当前备份文件为主备数据库,可能需要修改一下主备之间的复制连接。即配置文件中的postgre.conf中的replconninfo1、 replconninfo2等。
  • 若配置文件postgresql.conf的参数data_directory打开且有配置,当使用备份目录启动数据库时候,data_directory和备份目录不同会导致启动失败。可以修改data_directory的值为新的数据目录,或者注释掉该参数。

若要在原库的地方恢复数据库,参考步骤如下:

  1. 停止数据库服务器, 具体操作请参见《数据库运维指南》。
  2. 将原数据库和所有表空间复制到另外一个位置,以备后面需要。
  3. 清理原库中的所有或部分文件。
  4. 使用数据库系统用户权限从备份中还原需要的数据库文件。
  5. 若数据库中存在链接文件,需要修改使其链接到正确的文件。
  6. 重启数据库服务器,并检查数据库内容,确保数据库已经恢复到所需的状态。

img 说明:

  • 暂不支持备份文件增量恢复。
  • 恢复后需要检查数据库中的链接文件是否链接到正确的文件。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1301554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用xshell连接虚拟机(服务器)

作者:余小小 Xshell Xshell [1] 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以…

【XR806开发板试用】编译FreeRTOS系统

编译FreeRTOS系统,测试串口输出。 一、下载源码 1.1、获取源码 下载源码: rootubuntu:/home# wget https://bbs.aw-ol.com/assets/uploads/files/1693988430633-xr806_sdk.tar.gz 解压文件 rootubuntu:/home# tar xvf 1693988430633-xr806_sdk.tar.gz 1.2、获取…

亚马逊鲲鹏系统自动化操作更节约时间

亚马逊鲲鹏系统的自动化操作为卖家们带来了极大的时间节约和高效运营的利好。这一先进系统在账号注册、养号和下单等方面拥有强大的自动化功能,为卖家提供了简单便捷的操作体验。 首先,亚马逊鲲鹏系统在账号注册方面展现了其强大的自动化能力。用户只需事…

记录一次postgresql临时表丢失问题

项目相关技术栈 springboot hikari连接池pgbouncerpostgresql数据库 背景 为了优化一个任务执行的速度,我将任务的sql中部分语句抽出生成临时表(create temp table tempqw as xxxxxxxxx),再和其他表关联,提高查询速…

小红书笔记投流全攻略,打造爆款内容

在小红书平台上,信息流投放和搜索广告是两种主要的广告形式。信息流投放主要通过用户刷作品时展示你的笔记,而搜索广告则是用户搜索相关关键词时展示出的内容。今天就和大家分享下小红书笔记投流全攻略,打造爆款内容! 一、什么样你…

Python使用其它文件夹中的.py文件

一、背景 在python构建的工程中,A.py 可能要使用 B.py 文件中的函数、或者类、或者变量,如果这两个文件在同一个目录下,只需要在 A.py 中使用 import B 即可,但如果不在同一目录下,则这种方法不可用,将工程…

租房小程序源码开发中的5大注意事项

在租房小程序源码开发过程中,有许多关键的注意事项需要开发者和团队特别留意。作为该领域的专家,我将分享5大重要事项,以确保你的租房小程序源码开发顺利进行。 1. 确保代码可靠性和安全性 租房小程序源码的可靠性和安全性是开发过程中最重…

【C++】C++异常语法、使用、规范、异常安全及异常的优缺点

1. C异常概念 异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理…

为什么说数字化转型能帮助企业降本增效?

引言 数字化转型是当今商业领域中的关键议题,它不仅是技术的应用,更是一种战略性的变革,对企业而言具有重要意义。在这个数字化时代,企业需要不断适应和采纳新技术,以获得竞争优势并提高效率。 数字化转型旨在将传统业…

成都工业学院Web技术基础(WEB)实验三:CSS字体等属性使用

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考,前端变化比较大,按照要求,只能做到像,不能做到一模一样 3、图片和文字仅为示例,需要自行替换 4、如果代码不满足你的要求,请寻求其他的…

001两数之和

题意 给出一个数组和一个目标值,让你在数组中找出和为目标值的两个数,并且这两个数在数组中的下标(索引)不同。 示例 输入:nums[2,7,11,15],target9 输出:[0,1] 解释:因为nums[0]nums[1]9&#…

Draw.io or diagrams.net 使用方法

0 Preface/Foreword 在工作中,经常需要用到框图,流程图,时序图,等等,draw.io可以完成以上工作。 official website:draw.io 1 Usage 1.1 VS code插件 draw.io可以扩展到VS code工具中。

PHP基础 - 数组遍历与排序

介绍 在PHP中,数组遍历和排序是常见的操作,用于对数组中的元素进行访问和排序 数组遍历 1)数值数组的遍历 使用 foreach 循环遍历数组:foreach 循环是最常用的遍历数组的方法,它可以遍历索引数组和关联数组。例如:$fruits = array("apple", "banana&q…

浪涌保护器综合选型应用方案

浪涌保护器SPD是一种用于防止电气设备和电子信息系统受到雷电或其他过电压的影响的装置。浪涌保护器的选型是一个重要的工程问题,因为不同的应用场景和设备要求需要不同的浪涌保护器。本文将介绍浪涌保护器的行业分类选型方案,浪涌保护器选型的作用和意义…

智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.缎蓝园丁鸟算法4.实验参数设定5.算法…

Python Django Suit:构建现代化的Django后台管理

概要 Django Suit是一款为Django后台管理提供现代、优雅界面的第三方应用,它致力于提升Django开发者的管理体验。本文将深入介绍Django Suit的安装、配置和高级功能,提供详实的示例代码,帮助大家更好地使用和定制Django后台管理界面。 安装与…

科学小论文

赵州桥,是一座右拱桥,它座落于河北省石家庄市赵县城南液河之上。 赵州桥因赵县古称赵州而得名,当地人称之为大石桥,以区别于城西门外的永通桥,也称小石桥。 赵州桥始建于隋代,由匠师李春设计建造&#xff…

Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!

🧸欢迎来到dream_ready的博客,📜相信您对博主首页也很感兴趣o (ˉ▽ˉ;) 📜Java关键字 —— super 详细解释!一看就懂 有代码实例运行! 目录 前言 static static修饰类中的成员变量 static修…

【SpringSecurity】-- 认证、授权

文章目录 SpringSecurity简介快速入门1.准备工作1.2引入SpringSecurity 认证1.登录校验流程2.原理2.1SpringSecurity完整流程2.2认证流程详解 3.解决问题3.1思路分析3.2准备工作3.3.实现3.3.1数据库校验用户3.3.2密码加密存储3.3.3登录接口3.3.4认证过滤器3.3.5退出登录 授权1.…

Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…