首页 > 其他分享 >一文详解数据仓库的物理细粒度备份恢复

一文详解数据仓库的物理细粒度备份恢复

时间:2023-09-18 14:23:26浏览次数:51  
标签:文件 细粒度 恢复 备份 数据仓库 详解 集群 物理

本文分享自华为云社区《DTSE Tech Talk | 第43期:数仓数据可靠保证——物理细粒度备份恢复》,作者:华为云社区精选。

大数据时代,数据对企业的重要性不言而喻,如果发生数据丢失或因为误操作而造成数据丢失,将对企业的经营决策带来不可估量的损失。本期《备份恢复全掌握,数仓数据更安全》的主题直播中,我们邀请到华为云EI DTSE技术布道师李文鑫,针对GaussDB(DWS) 物理细粒度备份恢复与开发者和伙伴朋友们展开交流互动。

GaussDB(DWS)的备份恢复工具

为了应对故障场景,防止数据丢失,GaussDB(DWS)提供了两道防线,以保障数仓安全,分别是:高可靠技术和备份恢复技术。高可靠技术是第一道防线,备份恢复技术是最后一道防线。

GaussDB(DWS)的备份恢复工具—Roach,提供了备份、恢复、容灾功能。备份恢复部分包括集群级备份、集群级恢复、物理细粒度备份、物理细粒度恢复、逻辑备份和恢复;容灾部分包括双集群容灾、双集群迁移、细粒度容灾。

cke_114.png

为什么需要使用物理细粒度备份恢复?

假设我们误删了一张表,想通过备份将这张表恢复出来,如果我们采用集群级恢复的方式,那么就需要对整个集群的数据进行恢复,这显然不是我们想要的。而如果采用细粒度恢复的方式,我们就可以精确的只将这张表恢复出来。

类似这样的场景有很多,实际使用中集群级的故障并非是一个高概率的事情,我们细粒度恢复一张表或一个schema才是更加实际的需求。

物理细粒度备份恢复优势

节省空间

相比于集群级备份海量的数据备份恢复,物理细粒度备份针对重点文件进行备份,省去了无关数据的备份,节约大量的空间

节约时间

走物理文件拷贝的流程,相对于逻辑备份更加简单高效

精准恢复

恢复想要恢复的数据,无需对整个集群数据进行恢复

cke_115.png

▲ 物理细粒度备份恢复支持的功能(正式商用版本8.2.1)

物理细粒度备份恢复的基本流程

由于物理细粒度备份采用了在线恢复的方式,创建了一张新表,那么就需要知道原表的一个表定义,那么在备份的时候就需要将表的定义备份上,这个任务是通过调用GaussDB(DWS) gs_dump工具完成。

确定了表定义就要拷贝表对应的相关文件,比如列存表的cudesc表、存在可变长字段的toast表等,只有把辅助表的信息也记录下来,才能保证恢复之后这张表是可用的,物理细粒度备份采用Map文件对表关系进行组织,对表所有的关联表及文件进行统一收集记录,备份和恢复时根据map文件去做表文件的备份和恢复。

最后就是物理文件的拷贝,Roach对物理文件的拷贝是通过压缩的方式,然后保存在一个rch文件中,并生成fine_file_list文件,记录每个rch文件压缩了哪些物理文件。备份时备份了表定义、表相关文件、表物理文件三个信息之后,我们便可以进行细粒度单表的恢复。

cke_116.png

▲ 物理细粒度备份流程

物理细粒度恢复主要是把一张表或多张表恢复到目标集群中,并保证恢复后的表能够正常提供服务。物理细粒度恢复同样采用的是在线恢复的方式,恢复方法的核心思想是在当前的集群中创建出与原表定义完全相同的一张目标表,再把原表和目标表相关的物理文件进行替换。由于替换之后的物理文件保存了旧的事务信息,因此完成数据恢复后需要对目标表进行数据清洗,至此,所有的恢复工作完成。

cke_117.png

▲ 物理细粒度恢复流程

物理细粒度备份恢复的使用实践

物理细粒度备份恢复是通过python脚本拉起gs_roach工具,并指定特定的参数是实现的。特有的命令函参数包括:

--physical-fine-grained 【物理细粒度标志参数】

--dbname <数据库名称> 【例如:postgres】

--schema-list <文件名称> 【要备份的schema列表,在指定的文件中每个schema一行】

--clean 【恢复到同名原表时使用该参数清理原表】

--table-list <文件名称> 【要恢复的原表名称,保存在文件中】

--restore-target-list <文件名称> 【要恢复的目标表名称】

物理细粒度备份恢复可基于命令行参数实现,或者从管控面下发备份恢复任务。以命令行下发备份恢复任务如下:

  • 物理细粒度备份

cke_118.png

  • 物理细粒度多表恢复

cke_119.png

从管控面下发备份恢复任务需要打开细粒度开关,在指定集群的集群管理界面进行备份恢复任务:

cke_120.png

点击链接观看直播完整版回放,了解详细信息。

 

点击关注,第一时间了解华为云新鲜技术~

 

标签:文件,细粒度,恢复,备份,数据仓库,详解,集群,物理
From: https://www.cnblogs.com/huaweiyun/p/17711755.html

相关文章

  • 2023 CSP-J详解
    csp崩了,滚来写题解,悄悄话,我服了今年这么简单我竟然崩了(蒟蒻石锤)话不多,来吧上题目原谅我上来就用四级标题一.T1.1.在C++中,下面那个关键字用于声明一个变量,其值不能被修改?()A.unsignedB.constC.staticD.mutable这个题不用我多说吧,有点常识就知道A.无符号性B.定义......
  • 【愚公系列】2023年09月 WPF控件专题 ListView控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 数据仓库开发规范:确保数据安全、高效查询与规范管理
    数据仓库——开发规范在大数据时代,数据仓库成为企业管理和分析海量数据的重要工具。数据仓库不仅能存储大量的数据,还能对这些数据进行有效的组织和分类,从而使得数据利用率和使用效率得到极大的提高。然而,要建立一个高效、稳定、安全的数据仓库,离不开一套严格的开发规范。首先,我们来......
  • linux kill命令详解
    1.命令格式:kill[参数][进程号] 2.命令功能:发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用......
  • Linux top命令的用法详细详解
    首先介绍top中一些字段的含义: VIRT:virtualmemoryusage虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:residentmemoryusage常驻内存1、进程当前使用的内存大小,......
  • 69-返回值详解
         ......
  • Linux ssh命令详解
      SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP22端口),包括公共秘钥等交换等信息。ssh服务端由2部分组成:openssh(提供ssh服务)   openssl(提供加密的程序)ssh的客户端可以用XS......
  • linux screen 命令详解
    一、背景系统管理员经常需要SSH或者telent远程登录到Linux服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开......
  • Linux top命令详解
    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器top参数详解第一行,任务队列信息,同uptime命令的执行结果系统时间:07:27:05运行时间:up1:57min,当前登录用户: 3user负载均衡(uptime) loadaverage:0.00,0.0......
  • linux lsof命令详解
    简介lsof(listopenfiles)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论......