关于备份:故障分析-血的教训由慢查询引发的备份等待导致数据库连接打满

作者:马文斌 MySQL爱好者,任职于蓝月亮(中国)有限公司。 本文起源:原创投稿 *爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。 背景早上一大早被拉去开早会,感觉事件不妙,得悉是某中台(发券)数据库 不能失常提供拜访。呈现大量的上面状况 : | 55279262 | xxx_app | 192.168.50.143:44623 | xxx_mam | Query | 206 | Waiting for table flush | SELECT count(*) FROM mam_user_coupon_package AS a LEFT JOIN mam_coupon_apply_scope as d on a.coupon_info_id = d.coupon_info_id WHERE 1=1 AND a.usable_flag = 1 AND a.user_id = 102101100050614656 and a.coupon_status in (1) and d.business_code = 30006 AND a.end_time >= '2022-04-25 08:56:49.683' || 55278572 | xxx_app | 192.168.50.144:40013 | xxx_mam | Query | 315 | Waiting for table flush | SELECT coupon_user_code,last_update_time,operator_name,operator_id,create_time,creator_name,creator_id,del_flag,user_id,coupon_status,coupon_info_id,start_time,end_time,use_time,activate_time,activate_end_time,coupon_type,coupon_info_type,act_id,usable_flag FROM mam_user_coupon_package WHERE ( ( end_time <= '2022-04-25 08:55:00.638' and usable_flag = 1 and del_flag = 0 and coupon_status = 1 ) ) limit 0,1000| 55165820 | root | localhost | NULL | Query | 28956 | Waiting for table flush | FLUSH NO_WRITE_TO_BINLOG TABLES |字面意思是期待表刷新,然而这只是个查问,为啥要刷新表呢,而且是几百上千个全局连贯进来,一时半会找不到解决方案,只有先救火后剖析,那就先把查问干掉再说 ...

May 6, 2022 · 7 min · jiezi

关于备份:云小课|VMware备份上云学习专列来了快加入吧

阅识风波是华为云信息大咖,善于将简单信息多元化出现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您疾速上手华为云。更多精彩内容请单击此处。 摘要:华为云云备份CBR(Cloud Backup and Recovery)反对VMware备份上云,可为用户数据中心的VMware虚拟化环境,提供简略易用、整机粒度的备份性能,并将备份同步至云上。当产生故障、误操作等导致数据失落时,能够利用云备份疾速复原数据,缩小业务中断工夫。本文分享自华为云社区《【云小课】根底服务第48课 VMware备份上云学习专列来了,快退出吧~》,作者: 阅识风波 。 还在让本地的VMware虚拟机数据“裸奔”?小心有形的邪恶之手曾经悄悄伸向你的数据。 依照国内《信息安全等级爱护要求》,国内《塞班斯法案》等行业法规要求,上市公司/政府部门/金融机构都必须构建异地灾备零碎。而企业自建灾备核心的计划,须要自建或者租赁机房/机柜,波及软硬件洽购、装置、调测,初始投资大,建设周期长。相比传统计划,能够抉择云作为异地灾备站点之一,利用云上的弹性资源,按需付费,初始投资缩小70%以上,建设周期缩短50%。 华为云云备份CBR(Cloud Backup and Recovery)反对VMware备份上云,可为用户数据中心的VMware虚拟化环境,提供简略易用、整机粒度的备份性能,并将备份同步至云上。当产生故障、误操作等导致数据失落时,能够利用云备份疾速复原数据,缩小业务中断工夫。 很多人认为备份上云很难,其实不然。明天小编就带大家来大抵理解下如何应用云备份服务实现VMware备份上云。 步骤一:装置eBackup镜像模板云备份通过eBackup,就能够实现VMware备份上云。所以须要先在控制台获取eBackup镜像模板,并下载至本地实现装置。 1、登录治理控制台。抉择“存储 > 云备份 > 混合云备份 > VMware备份”。 2、抉择“镜像下载和装置”页签。在“eBackup镜像模板”一栏下,单击“点击下载”,实现eBackup镜像模板下载。 下载镜像模板 3、在装置和配置eBackup备份软件前,还须要理解软件对网络连接的要求及倡议,以便可能顺利的实现网络布局。 在华为云官网搜寻“VMware布局网络”,可能迅速查看到如何布局软件和业务所需的网络立体。 布局网络 4、实现网络立体布局后,能够开始进行装置和配置eBackup。配置实现后,就能够开始VMware备份上云之旅啦~ ----完结 步骤二:建设云与本地的通信VMware备份上云时,备份须要寄存在哪儿呢?首先须要做的,就是在云上为VMware备份创立一个寄存空间啦! 1、登录治理控制台。抉择“存储 > 云备份 > 混合云备份 > VMware备份”。实现购买云备份存储库。 实现购买后,须要同时记下华为云账号的AK和SK、云备份存储库所在的区域ID(如:北京四为cn-north-4)、所在区域的我的项目ID,以及云备份存储库的ID。 购买云备份存储库 增加受保护环境 创立存储单元 实现eBackup与华为云之间的通信。 ----完结 步骤三:创立VMware备份并上云创立VMware备份前,也须要先在eBackup中创立用于寄存备份的空间,再设置爱护集和策略等用于创立VMware备份。大抵流程如下: 创立备份打算 3、备份实现后,备份会主动同步至云上的混合云备份存储库中。能够返回“存储 > 云备份 > 混合云备份 > VMware备份”查看备份上云的状况。 查看备份上云状况 此时就能够应用备份复原至云上的服务器中,在云上疾速部署业务啦~欲知如何应用备份复原数据,且听下回分解~ 获取对于云备份的常识,欢送戳戳这里~ 点击关注,第一工夫理解华为云陈腐技术~

September 6, 2021 · 1 min · jiezi

关于备份:云小课|细数那些VMware虚拟机的恢复招式

阅识风波是华为云信息大咖,善于将简单信息多元化出现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您疾速上手华为云。更多精彩内容请单击此处。 摘要:当遭逢误操作、病毒入侵和数据失落等事件时,咱们如何应用已有的备份疾速重启业务呢?这节课咱们就来学习如何应用这些备份疾速复原数据。本文分享自华为云社区《【云小课】根底服务第60课 细数那些VMware虚拟机的复原招式》,作者:阅识风波。 在上一节课《VMware备份上云学习专列来了,快退出吧~》咱们曾经介绍了如何将VMware虚拟机的备份迁徙上云。当遭逢误操作、病毒入侵和数据失落等事件时,咱们如何应用已有的备份疾速重启业务呢?这节课咱们就来学习如何应用这些备份疾速复原数据。 复原第一式:复原至云上服务器如果本地数据中心遭逢硬件故障等事件时,私有云可作为一个容灾站点,云备份能够间接应用备份在云上迅速发放云服务器,云服务器中的数据与本地保持一致,可帮忙疾速拉起业务。 图1-1 VMware备份复原至其余服务器 复原第二式:复原至原VMware虚拟机除了复原至云上云服务器外,云备份亦反对将备份数据恢复至原机中,复原后数据将与备份工夫点统一。在重大操作变更前能够先进行一次备份哦~ 复原第三式:复原至其余虚拟机如果不心愿复原至原机,也是能够复原至其余同款虚拟机中哦~能够将其余虚拟机的数据恢复成与原机备份工夫点统一的数据。 获取对于云备份的常识,欢送戳戳这里~ 点击关注,第一工夫理解华为云陈腐技术~

September 3, 2021 · 1 min · jiezi

关于备份:云小课|原来云备份不仅仅是能备份

阅识风波是华为云信息大咖,善于将简单信息多元化出现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您疾速上手华为云。更多精彩内容请单击此处。 摘要:通过云备份,你能够实现同可用区迁徙、跨可用区迁徙、跨区域迁徙、跨账号迁徙甚至跨云迁徙。不敢相信?这就跟小编一起来看看吧~本文分享自华为云社区《【云小课】根底服务第64课 原来云备份服务不仅仅能备份数据?》,作者:阅识风波。 很多人在平时进行服务器、磁盘或者文件系统的数据迁徙中,会喜爱应用命令行拷贝的形式进行迁徙。这种形式看似不便,实则暗藏着数据失落的危险。 想不出有什么快捷简便且平安的方法?有没有想过云备份或者能够助你一臂之力。 云备份——听起来不就是给数据做备份吗?在数据失落的时候能够复原数据。可是我并不需要备份性能呀~ No no no!云备份的性能很弱小,主职业尽管是备份复原,然而在数据迁徙中其实也有不错的体现。通过云备份,你能够实现同可用区迁徙、跨可用区迁徙、跨区域迁徙、跨账号迁徙甚至跨云迁徙。 不敢相信?这就跟小编一起来看看吧~ 同可用区迁徙如果你想在某一可用区疾速领有两个截然不同的磁盘、服务器或文件系统,或者就只是想换个盘、换个服务器,只须要两步,你就能够疾速领有高兴~ 对指标资源进行备份。先买个存储库绑上资源,而后进行备份就OK啦~应用备份创立新的磁盘、创立镜像再创立服务器、创立新的文件系统即可,可用区抉择和以后可用区统一。新的资源中的数据就和备份工夫点的保持一致。这样就能够在同一可用区领有两个一样的资源啦~ 跨可用区迁徙忽然发现买的磁盘和文件系统跟服务器不在一个可用区,导致时延大大提高,影响应用感触,怎么办? 当然是能够用云备份疾速跨可用区创立一个同款资源,间接晦涩切换啦~ 步骤和同可用区迁徙的统一,在创立资源时只须要抉择其余可用区即可~ 跨区域迁徙想把资源在不同区域之间迁徙?区域A的服务器区域B也想领有? 这当然难不倒云备份~喏,案例就在这里啦:华为云官网搜寻“如何通过云服务器备份实现云服务器数据跨区域迁徙?” 不过只能进行服务器和文件系统的数据迁徙~ 跨账号迁徙小明的高兴小美也想领有?无妨试试云备份的共享备份性能。 云备份反对备份在同一区域不同账号间共享,这就为资源在同一区域不同账号间的迁徙造就了可能。 以后只反对服务器备份和磁盘备份的共享。 对指标资源进行备份。先买个存储库绑上资源,而后进行备份就OK啦~将备份共享给其余账号。对方只有承受备份,就能够应用备份创立服务器或者磁盘啦~跨云迁徙云备份反对同步线下备份存储OceanStor Dorado阵列中以及VMware虚拟机的备份数据。 当产生数据中心级别的劫难或者光纤网络故障等事件时,就能够在私有云上通过备份数据疾速创立云服务器,缩短业务中断工夫。同时能够依据须要,将备份数据复制至其余区域,实现云上业务疾速部署。 这个操作就比拟高难度啦,此处不再赘述,感兴趣的同学能够在华为云官网搜寻“混合云备份”。 结语数据迁徙其实能够通过很多种办法实现,此篇仅站在云备份的角度进行介绍。对其余办法感兴趣的同学能够翻翻其余期的云小课哦~ 看完这篇是不是感觉领有了云备份就领有了多种高兴~还不赶快购入试试? 点击关注,第一工夫理解华为云陈腐技术~

August 31, 2021 · 1 min · jiezi

关于备份:DBA这有一份对接NBU备份故障排除指南请查收

摘要:以后DWS反对NBU介质备份复原,本文介绍DWS对接NBU备份故障排除办法。本文分享自华为云社区《DWS对接NBU备份故障排除指南》,作者: 唐伯虎点蚊香。 NetBackup是Veritas公司软件产品,为各种平台提供残缺而灵便的数据保护解决方案。这些平台包含Microsoft Windows、UNIX、Linux 等零碎。利用NetBackup能够备份、归档和还原计算机上的文件、文件夹或目录以及卷或分区。以后DWS反对NBU介质备份复原,本文介绍DWS对接NBU备份故障排除办法。 部署形式如果已有3节点DWS集群,Roach(DWS备份工具)将本节点的集群数据通过TCP发送到远端NBU Media Server机器。每台NBU Media Server下面同时装置NBU Client,并部署Roach client组件,后者接管集群内Roach过程发来的备份数据,不落盘形式通过XBSA接口转发给本机的NBU Client,实现NBU备份。复原流程也相似,只是数据流相同。 在DWS备份过程中,个别故障次要出自以下三处: Roach agent: 即集群节点内,间接查看集群备份日志($GAUSSLOG/roach/)即可Roach client: 此插件次要负责数据收发,日志门路启动时通过-l参数指定,进入该门路查问即可NBU软件端: 可通过下文定位形式排查故障环境校验当进行NBU非侵入式备份时,思考到集群备份过于分量,能够先通过指定小文件测试环境连通性,保障NBU配置 gs_roach uploadmeta --media-destination 'nbu_policy' --metadata-destination '/home/Ruby/meta' --media-type NBU --backup-key '20200903_164332' --nbu-on-remote --media-server 192.168.243.65 --client-port 9000 注: --media-destination为NBU策略名称 --backup-key为任一指定工夫戳即可 --media-server为任意一台部署了roach client插件的ip地址 --client-port为roach client凋谢的端口 --metadata-destination为上传指定文件门路,其中将测试上传文件重名名为metadata.tar.gz,并搁置在/home/Ruby目录下,并非/home/Ruby/meta目录下 如果能备份胜利,则阐明所连贯的media server配置无问题,如果存在失败,则NBU端配置有问题,须要依照后续阐明寻求起因。 故障定义故障排除的第一步是定义问题。在NBU零碎的装置、配置、运行过程中,呈现了与正确预期不同的后果,即可认为是呈现了故障;有时候,这要求咱们晓得正确的状况应该是什么样的。 在NBU的交付和应用中常见的故障次要分为种: 一是软件装置和配置阶段,比方软件装置不胜利、对接不胜利、某模块性能不可用等等,这一阶段的谬误个别没有具体的错误码,须要联合交付人员的教训和系统日志进行排错,这种故障属于一次性的故障,在排除之后再次出现的可能性很小; 二是在零碎部署实现后,数据备份业务上线、备份和复原工作执行时报错,比方接入client失败、存储单元写入数据失败、找不到client服务器等等;这种故障console会提供错误码(error code),保护人员能够依据谬误进行初步的定位,这种故障属于日常性的故障,和环境中多种因素无关,备份零碎本身之外的业务环境产生轻微的变动都有可能导致故障的呈现。 故障排除过程要排除问题,必须晓得产生了什么谬误。 谬误音讯通常是指出哪里呈现故障的伎俩。所以,咱们要做的第一件事就是查找谬误音讯。如果在界面上没有看到谬误音讯,但仍狐疑有问题,请检查报告和日志。NetBackup 提供了宽泛的报告和日志记录工具,这些工具可提供谬误音讯,间接指出解决方案。日志还可显示什么运行良好以及当产生问题时 NetBackup 正在执行什么操作。 综上,NBU备份与复原故障排除过程如下: 1、确认服务器和client运行的是受反对的操作系统或利用版本;具体信息参看NBU兼容性列表; 2、复现故障,获取故障信息;获取信息的渠道有错误码、Job Details、日志等; 3、依据获取的信息进行故障定位和排除; 故障排除办法应用状态码每一个备份和复原工作都是一个activity,在activity monitor一栏中能够监控到它们。由工作监督看出该工作的ID、执行何种操作、状态、返回值、Server和Client是谁、通过哪一个Policy和Schedule去执行的。 具体可显示多长时间的工作,要看NetBackup全局属性中的设置。每个工作有以下几个状态: Queued 工作正在排队Active 工作正在执行Done 工作执行结束在activity的执行过程中,每一个工作后果都对应着一个状态代码,0代表胜利,非0代表故障。返回值是一个十分有用的参数,通过返回值,能够通过错误代码查找手册中倡议的相干调整倡议,这对于问题检查和性能调整是十分有用的。页面中获取地位如下: 以下链接提供了NBU备份工作status code list: ...

August 2, 2021 · 1 min · jiezi

关于备份:如何构建一个拖垮整个公司的备份系统

简介: 在现在“数据即资产”的时代,有备能力无患。备份就像备胎,尽管大多人都晓得备胎很重要,却很少有人查看。不产生点什么,你永远不晓得TA对你有多重要。 原文链接 本文为阿里云原创内容,未经容许不得转载。

June 22, 2021 · 1 min · jiezi

关于备份:数仓GaussDBDWS全量备份总结

摘要:本文将梳理Roach全量复原的整体流程,形容Roach集群全量备份场景的运行机制。数据备份复原是爱护数据安全的重要伎俩之一。Roach工具反对多种备份复原类型,例如集群级的物理备份,表级备份的逻辑备份;别离反对DISK/NBU/OBS/EISOO几种备份介质;反对双集群间的容灾计划等,从而提供数据的可靠性保障机制。 Roach反对如下性能: 一、简介本文将梳理Roach全量复原的整体流程,形容Roach集群全量备份场景的运行机制,PITR、增量备份、断点续做、双集群、表级备份等性能不做论述。 Roach的集群级备份采纳的是物理备份,即通过物理文件拷贝的形式对数据库进行备份,通过备份的数据文件及日志等文件,数据库能够进行完全恢复。全量备份则是将以后工夫点数据库中所有的数据进行备份。当然,全备份能够备份整块硬盘、整个分区或某个具体的目录。全备份的益处是数据恢复不便,因为所有的数据都在同一个备份中,所以只有复原全备份,所有的数据都会被复原。 其长处是:物理备份速度快,通过正当布局,能够低成本进行备份和复原; 其毛病是:相较于增量备份备份工夫较长。 二、备份架构2.1 roach备份全局流程图Roach备份采纳生产者-消费者模式,下图展示了备份流程各个线程及IO交互图。exec线程作为生产者,同时为加重exec线程的压力,减少并行的reader线程读取小文件;sender线程作为消费者;两头则是通过一个256MB(可设置)的大buffer连接。 GaussDB内核的备份组件为GaussRoach.py和gs_roach,需在集群内拉起备份工作。 2.2 调度流程GaussRoach.py:Roach单集群全量备份入口为GaussRoach.py。每次命令行输出“python GaussRoach.py –t backup…”后,roach的python语言模式就开始运行了。 任意节点均可作为主节点拉起GaussRoach.py,而后每个节点都启动gs_roach过程负责本节点备份,各节点并行备份,节点内各DN并行备份。 2.3 备份具体流程 2.4 接口调用实现数据备份压缩后,须要将压缩文件传送到远端存储介质,实现存储介质与Roach备份流程松耦合,第三方介质不必关注Roach的备份流程,只须要依照接口实现即可实现与Roach的对接。同时Roach流程实现也不用关注底层存储介质实现,缩小了不必要的分支判断。 2.5 全量备份的内容依据Gauss数据库的性能构造,全量备份依照以下程序备份所须要的文件: · 数据库相干的配置文件。 · 行存全副数据:GaussDB A数据库反对行存。 · xlog日志文件:Roach反对在线业务的备份,则通过备份xlog日志文件可在复原时将备份期间的业务Redo,保证数据一致性。 · 列存全副数据: GaussDB A数据库反对列存。 · 备份的数据依照每个节点为单位进行备份,所以每个节点都只存储以后节点的备份。 2.6 流程剖析联合Roach工具备份调度流图和日志信息剖析如下: 整个备份流程的下层代码为python代码,即GaussRoach.py,master过程的创立和agent过程的拉起都是由python侧实现的。备份的配置和参数局部查看过程同样是由python侧代码实现。各个节点agent过程被拉起之后,C侧代码进行具体的业务操作。C侧代码运行起来之后,能够通过ps ux到gs_roach过程查看过程状态。 · 只有没有走到③ ,备份是没有开始的;· ②:metadata清单即此次备份的文件清单; · 备份时的百分比,并不代表工夫维度的备份进度,只代表流程进度; · 只有没有打印出④ ,阐明备份还没有完结,即便进度显示是100%; · ⑤:在此参数开启后,所有的ddl语句会在逻辑上执行,对物理文件的操作不会立刻失效; · ⑥:create barrier之后的数据变动,将通过xlog记录来备份; · ⑨:敞开提早DDL参数后,所有被提早的对物理文件的操作,将会立刻执行; 2.7 备份集的存储模式· 备份的数据会进行压缩后写入到rch文件后存储到备份门路下的实例文件夹下,且每个rch文件大小是4GB; · 寄存门路:[存储门路]/roach/backupkey/hostname/,其中存储门路为备份命令中指定的--media-destination的值,backupkey为以后备份开始的工夫作为标识某个特定的备份集,hostname为以后节点的hostname。内容如下: · Roach压缩文件*.rch的内部结构: ...

March 3, 2021 · 1 min · jiezi

关于备份:一文带你了解GaussDBDWS-的Roach逻辑备份实现原理

摘要:Roach工具是GaussDB(DWS)推出的一款主力的备份复原工具,蕴含物理与逻辑备份两种次要能力,本文着重于解说Roach逻辑备份的实现原理。一、简介在大数据时代,数据的残缺和可靠性成为一个数仓最外围的能力之一。GaussDB(DWS)以其出众的分布式计算和存储能力广受用户青眼的同时,也特地着眼于数据备份容灾畛域的翻新和打磨。数据的可靠性能够说是数仓的“命门”。对于企业、政府等用户,如果因为硬件故障导致的文件损坏,或是业务操作的误删,导致了数据损坏或失落,那么损失将是不可估量的。GaussDB(DWS)提供的Roach工具,将以其稳固、疾速、牢靠的备份能力,通过备份复原数据库或业务表,为客户筹备一个牢靠的“后悔药”,从而无效地挽回客户损失。 二、Roach备份复原根本框架GaussDB(DWS)的Roach工具,同时提供物理备份和逻辑备份两种次要状态的备份。物理备份间接通过拷贝文件块,存储于备份介质之上,复原时应用备份的文件块,重建集群中实例DN与CN的数据目录进行复原。 本文中咱们次要着眼于逻辑备份,在以后的GaussDB(DWS)中,相比于物理备份,逻辑备份领有更好的灵活性,其充分利用了GaussDB(DWS)弱小的数据导入导出能力,不同于物理备份的文件整体拷贝,逻辑备份针对数据库的逻辑对象进行抽取和备份,粒度能够做到表级、schema级、database级,依据客户须要进行定制抉择;在一个领有成千上万表的客户数仓中,如果仅想要备份一张表,那么以后逻辑备份是更好的抉择。 在逻辑备份解说之前,咱们首先讲一下Roach工具的设计架构,这个框架是所有逻辑或者物理备份的实现根底—— 图1 Roach备份复原工具框架示意图 GaussDB(DWS)提供的Roach是一个分布式的备份复原工具,以一个Node1、2、3组成的集群为例,备份的总入口是python过程GaussRoach.py,它将在以后节点拉起一个roach master过程,在集群其余所有节点各拉起一个roach agent过程,是典型的master-slave框架,master过程与所有的agent过程别离建设TCP长连贯,并封装报文与各个节点通信,下发备份等工作,在每个节点上,将分布式地为节点上的CN、DN等数据库对象进行备份。 三、逻辑备份的原理上面简述一下逻辑备份的执行过程: 1) 待备份表定义的导出和备份 如果是库级的备份,将一一schema地进行元数据导出;解决每一个schema时,又将一一导出所有的表定义,因而,咱们下图展现了Roach逻辑备份导出一个表DDL的过程。Roach Master节点接到备份指令后,向一个有CN的节点Roach Agent下发指令,该Agent过程再调用gs_dump,连CN进行表定义DDL的导出。 图2 逻辑备份表元数据DDL导出备份示意图 2) 创立表面 Roach逻辑备份过程,实质是建设表面进行数据导出的过程,相似上一步的表定义导出,Roach Agent承受Master指令后,基于导出的表定义,连CN创立写表面,创立的表面应用gsmpp_server, server的option中,location为roach://{Roach Agent监听端口},其中,Roach Agent监听端口为参数可配置,将承受该节点上所有DN实例的连贯,Roach逻辑备份表面定义相似如下模式,该待备份表仅有一个int类型字段id,图中举例的Roach Agent监听端口为8080,可配置,导出格局为csv。 图3 Roach逻辑备份创立的表面 3) Roach工具与DN的建连及数据导出备份以后GaussDB(DWS)的集中次要数据导入导出表面包含GDS、HDFS、OBS、Roach等四种,Roach表面同其余几种表面相似,都通过FDW(Foreign Data Wrapper)实现,但注册了一系列属于Roach的FDW API接口实现,此外,Roach还实现了Open/Read/Write/Close/ErrorReport等五个次要的底层读写API,实现DN与Roach Agent之间的数据交互。 图4 逻辑备份表数据备份流程示意图 如图4所示,逻辑备份数据的流程能够用以下phase1 ~ phase5简略形容 Phase1: 备份数据的命令被Master下发给所有Agent,连一个CN,连数据库创立表面导出server、创立导出表面,每个节点的Roach Agent同样会创立一个TblServer线程,监听Agent Port端口,期待DN连贯;Phase2: 连一个CN执行insert into roachft select * from A;sql查问会被下发到所有DN,通过注册的Roach FDW API,DN调用回调函数,封装一个PGXCNode的音讯,以自明instance身份,去尝试连贯server url中的本节点Agent Port;Phase3: Roach Agent的TblServer每接管一个DN的连贯,会调配一个数据通信的socket槽位,并fork一个子过程为该DN实例的备份服务;Agent会期待该节点上所有的DN都建设连贯,创立lengthof(节点所有DN)个子过程,并行进行数据备份。Phase4: 每个备份子过程通过建设的连贯,一直读取表数据,待该表所有切分的数据块读取实现,发送一个FINISH_BACKUP音讯给Roach Agent,则进行数据传输,从DN读取的数据首先存入Agent子过程的buffer中。Phase5:    每个Agent过程内会创立一个BackupSender线程,负责生产存入buffer的表数据,与备份介质建设连贯,流式进行数据的发送;Phase4、5在理论运行中是个异步并行的动作,并非等所有表数据都写入buffer后,才向备份介质发送。四、小结对于Roach逻辑备份的原理大抵就解说实现了,逻辑备份可能无效地应答单表、schema级等较细粒度的备份,较为灵便和便当。逻辑备份的复原的过程,与上述备份过程根本是个逆向过程,简而言之即表定义复原,节点及DN元数据恢复,数据导入的过程,复原的一大劣势是,不会停集群或挪动其余数据,对其余库或者表的业务简直不影响。在后续的博文中,咱们能够更具体地解读。 本文分享自华为云社区《侵略如火,GaussDB(DWS)高可用容灾利器之逻辑备份》,原文作者:世纪末的魔术师。 点击关注,第一工夫理解华为云陈腐技术~

February 26, 2021 · 1 min · jiezi

rsync同步和备份文件到本地

转载请注明文章出处:https://tlanyan.me/use-rsync-…rsync是主机间同步和备份的神器。相对于ftp、scp等工具,rsync功能更强大,同步/传输效率更高,实属服务器的必备工具。最近使用rsync时发现一个问题:PC和移动硬盘之间用rsync同步,修改过的二进制大文件会整个文件重传,效率十分低下。说好的rsync只传输差异部分呢?还是二进制文件的问题?但rsync的man手册明明这样写的:Rsync is a fast and extraordinarily versatile file copying tool. It can copy locally, to/from another host over any remote shell, or to/from a remote rsync daemon. It offers a large number of options that control every aspect of its behavior and permit very flexible specification of the set of files to be copied. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.带着这个疑问上网查询,找到一个和我有同样困惑的人:Smarter filetransfers than rsync?。幸运的是有人完美的回答了这个问题:Rsync will not use deltas but will transmit the full file in its entirety if it - as a single process - is responsible for the source and destination files. It can transmit deltas when there is a separate client and server process running on the source and destination machines.The reason that rsync will not send deltas when it is the only process is that in order to determine whether it needs to send a delta it needs to read the source and destination files. By the time it’s done that it might as well have just copied the file directly.翻译过来是:主机间通过网络同步文件,每个主机各运行一个rsync进程分别本机内的文件hash,然后通过网络传输差异部分;主机内的同步只有一个进程,rsync认为与其先对比文件再复制差异部分,不如直接进行复制来得快,故而选择传送整个文件。仔细想一下,rsync的行为是合理的:主机间通讯的瓶颈在网络带宽,先计算差异部分再传效率高;同主机内是硬盘对拷,速度是网络速度的十来倍,直接拷贝比一般比先对比再传输更快,直接复制整个文件是很好的选择。写了个脚本测试rsync的行为:<pre>#!/bin/bashecho “make test file"dd if=/dev/zero of=testfile bs=1024k count=512echo “cp test file"cp testfile syncfileecho “make changes to test file"echo ‘1234567890’ >> testfileecho “rsync file in local…“rsync -avh -P testfile syncfileecho ““echo “restore sync file"dd if=/dev/zero of=syncfile bs=1024k count=512echo “rsync file via network"rsync -avh -P testfile localhost:~/syncfile</pre>测试脚本输出结果如下:<img src=“https://tlanyan.me/wp-content...; alt=”” width=“665” height=“444” class=“aligncenter size-large wp-image-3233” />结果和预期的一致:本机内同步时,直接全量复制;走SSH协议后,仅发送差异部分,显著提高效率。rsync的做法没毛病,但仅做过小部分修改的大文件,同主机内全量拷贝也很伤人。解决办法是用测试脚本内的模拟网络传输。Linux系统的主机基本都内置SSHD,写命令时加上localhost和代表网络的冒号即可;Windows 10的1809版本上,OpenSSH已经成为系统的内置组建,安装和使用也省心。此外有Cygwin、Bitvise SSH Server等可供选择,安装好后也同步大文件也不再是问题。另一个需要注意的问题是跨分区或设备进行同步时,文件系统应当互相兼容,否则可能会出现问题。例如从NTFS文件系统向(ex)FAT优盘同步文件,使用常用的-avhP选项,每次同步都会将所有文件复制一遍。问题在于两个文件系统支持的功能不同,FAT不支持-l、-p等功能,加上这些选项会让rsync判断为两个不同的文件,从而再次复制。针对这种情况,要使用-cvrhP选项。参考Smarter filetransfers than rsync?OpenSSH in WindowsInstalling CYGWIN + SSHD for remote access through SSH on windowsInstalling SFTP/SSH Server on Windows using OpenSSHBitvise SSH Serverrsync not working between NTFS/FAT and EXT ...

February 11, 2019 · 2 min · jiezi