欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    SAP HANA 故障恢复处理.docx

    • 资源ID:4889099       资源大小:231KB        全文页数:14页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SAP HANA 故障恢复处理.docx

    (一)、SAP HANA数据库的恢复技术:系统故障恢 复众所周知,SAP HANA是内存数据库,很多人会有疑问,内存是断电就会丢失数据的设备,SAP HANA 是怎样保证数据在内存中并且断电不会丢失的呢?此问题涉及到概念叫数据库保护:排除和防止各种对数据库的干扰破坏,确保数据安全可靠,以及在数据 库遭到破坏后尽快地恢复。而数据库的恢复技术是数据库保护的重要手段。还要介绍一个概念:事务:一 个不可分割的操作序列,其中的操作要么都做,要么都不做。举个例子:银行转帐:A帐户转帐到B帐户 100元。该处理包括了两个更新步骤 A=A-100 B=B+100这两个操作是不可分的:要么都做,要么都不做。事务的状态在日志中包含三种: <Start T>表示事务T巳经开始; <Commit T>表示事务T巳经成功完成并且所有的修改都巳经写入数据库; <Abort T>表示事务T巳经被终止,并且所有的修改巳被取消。数据库的故障分为三类: 事务故障:单个事务的内部故障,不会影响其他事务; 介质故障:硬故障:如磁盘损坏,磁盘巳满等; 系统故障:软故障,如停电、死机等,这些故障会导致内存数据丢失,影响当前的全部事务。数据库对系统故障的恢复主要目的是恢复到故障发生之前的状态,即尚未完成的事务进行回滚,巳完成的 事务要确保其完成。1、系统故障恢复验证在SAP HANA中,这些概念同样适用,下面对SAP HANA的系统故障的恢复进行验证。本文的测试案例所使用的 SAP HANA 版本为 SAP HANA SPS7 Revision 70.00。首先修改savepoint时间,在savepoint过程中,SAP HANA会把内存页持久化在硬盘上,而SAP HANA 的默认savepoint间隔为300s,将其改为3000s。Overview Landscape Al erts Perfarrnance '/clurffies Confi uratian Sy item Info rm at ion Diagnosis File& T ra ce Co nfig u raii onFilter: MuepaintXNameDefau信SyrtemHost - Imux-Dgls倒 lobalJniJ 卜卓叫侦# Jwvepoint_intr/al_53(XM)1开启两个SQL窗口,将SQL 窗口的auto commit属性设置为off。:_ Properties 展ValueProperty SessionAuto CommitCl ient D is-tributionRead CcuTimittedIsolation LevelSingle Fetch for R( Off在sql窗口 1中执行1. insert into "LOGTEST"."TEST" values(1,'欢迎大家一起来学习 SAP HANA 知识,分享 SAP HANA 知识。');在sql窗口 2中执行1. insert into "LOGTEST"."TEST" values(2,'欢迎大家一起来学习 SAP HANA 知识,分享 SAP HANA 知识。');2.3.2. commit;将SAP HANA进行断电处理。开机重启SAP HANA,查看此表内容。SFlrfCT TQP iseae w FROM "LPGTf7-" T5ST'MUM TEXT12 酬均黑却心豺.此旧皇津学习叫口 HAW同虫,分不如也也卸匝我们可以认为窗口 1和窗口 2是两个事务T1和T2,事务T1执行一条修改后,没有commit,因此故障之 后回滚到事务T1执行前。事务T2巳经commit,虽然SAP HANA尚未把数据持久化到硬盘上(未做 savepoint),但是由于事务日志的存在,数据库被成功恢复到了故障点。2、系统故障的恢复策略CrashI 转皓 | 运行事务J°t1登记日志文件t2|_直专四|利用臼志文件进行恢复继续运行事务、 / ,介质故障族复 者蔬故障和事务故障恢复|登记日志文件如上图所示,当发生故障时,若是介质故障,则首先重装副本(系统故障省略此步骤),然后利用日志进行事务故障恢复和系统故障恢复,一直恢复到故障发生点。3、事务日志事务日志是用来管理数据库系统中记录的变化,记录了所有更新操作的具体细节。为了让一个事务持久化 不丢失,我们不必在事务提交时就把完整的数据内容持久化在硬盘中,只需要持久化事务日志就足够了。当系统崩溃后,数据库中的最近的一致性状态可以通过回放事务日志来恢复。因此日志文件的记录严格按 照事务的执行时间次序。事务日志主要包含三种:Undo日志、Redo日志、Undo/Redo日志。而在SAP HANA中,只有两种日志:Undo日志、Redo日志。日志文件的内容主要包含以下三方面: 事务的开始标记(Start T) 事务的结束标记(Commit, 丁或Abort T) 事务的更新操作记录,一般包括以下内容其中,一条更新操作记录包括:执行操作的事务标识,操作对象,更新前值(Undo)或者更新后值(Redo)或者更新前值和更新后值(Undo/Redo)。4、Redo日志Redo日志的特点是,在修改数据写入数据库之前,对应该修改的Redo日志记录必须巳被写到磁盘上。日志中数据修改记录的格式为T,x,v其中,T为事务标示,x为被修改数据标识,v为修改后的值。如下图所示,事务T1的操作是A=A-100, B=B+100,图左方为数据库中的T1具体步骤,图中间为T1对应的Redo日志内容,图右方标识A和B的初始值分别为1000,2000。T1:Read (A,t); t j t - wo; Write _ Read t . t + 100; Write (B.t);Flush LogOutput (A);Output (B);” Start,T>-<TfBp2100>Initial:A=1000B三2000Redo日志的恢复过程如下:1. 从头扫描日志,找出所有有Commit,T的事务,放入一个事务列表L中2. 从首部开始扫描日志记录T,x,v,如果T属于L,则 write (X, v)(将新值赋给X) output (X)(将X写入数据库)1. For each T 不属于 L dowrite <Abort,T > to log这种恢复方式的理论基础是没有 Commit,T 记录的操作必定没有改写磁盘中数据,因此在恢复时可以不 理会。而有Commit,T记录的结果可能还未写回磁盘,因此在恢复时要Redo。SAP HANA的Redo日志是与事务处理的过程同步的写到磁盘中的。当数据库遇到崩溃后重启,需要对持 久化的日志进行处理,为了提高日志处理的速度,系统会定期的进行savepoints (保存点,类似于传统数 据库中的checkpoint)。在一个savepoint的过程中,系统确保在上一个savepoint后所有在内存中的数据 改变都被持久化在硬盘中。因此,当启动系统后,只有最后一次savepoint之后的redo日志才需要被处 理。当日志备份后,savepoint之前的过时的redo日志可以被删除。5、Undo日志SAP HANA不仅仅持久化committed的改变记录,它还可能持久化未committed的改变记录(注:此改变 记录并非log,而是data),例如:在savepoint过程中,最近版本的的改变过的页都会被写到磁盘中,无 论这个改变是否巳commit。因此Undo日志需要被持久化在硬盘中。Undo日志的记录格式为T, x, v, 其中v是修改之前x的值。如下图所示事务T1的操作是A=A-100, B=B+100,图左方为数据库中的T1具体步骤,图中间为T1对应 的Undo日志内容,图右方标识A和B的初始值分别为1000,2000。T1:Read (At); t jt -100;Write -卜 <TA1000>Initial:A=1000B=2000Reads t + 100;* <T,B,2o00aWriteFlush LogOutput (A);Output (B);Flush LogUndo日志的恢复过程如下:1. 从头扫描日志,找出所有没有Commit,T或Abort,T的所有事务,放入一个事务列表L中2, 从尾部开始扫描日志记录T,x,v,如果T属于L,则 write (X, v)(将旧值赋给X) output (X)(将X写入数据库)1. For each T 属于 L do write Abort,T to log在SAP HANA中,与Redo日志不同,Undo日志持久化时不放在日志区,而是放在数据区,在savepoint 时才会被持久化。这样做的原因是系统重启后可以自动恢复到最近一次savepoint的状态,在这此 savepoint后的事务如果巳经commit,则可以通过redo日志进行回放,如果未commit,也不需要undo log 进行回滚,因此,此savepoint的之后的undo log是没有用的。这样做带来的好处:更少的log记录在事务提交时被持久化。减缓Log区硬盘使用量的增长。数据库可以只从数据区就可以恢复到一致性状态。(不需要日志区)6、Savepoint当系统发生故障时,必须扫描整个日志来确定undo列表和redo列表,这样会带来问题是:这个搜索过程 太耗时,因为日志文件增长很快;会导致最后产生的Redo列表很大,使恢复过程变得很长。因此SAP HANA会定期的做savepoint,在savepoint过程中主要做以下工作:1. 不再接受新的事务2, 把undo信息写到磁盘(data区)3, 把内存中修改过的数据页写到磁盘4. 在log文件中写入savepoint标记(log区)如下图所示,savepoint技术保证了 savepoint之前所有的commit操作巳被写到磁盘,在恢复时不需要进行 redo操作。savepoint故障发生点| 运行事务 tOtlt2无检查点时|扫描to开始的日志文件进行恢复|扫描检查点开始的日志文件进行恢复基于检查点的恢复 |1(二)、SAP HANA数据恢复技术:数据库备份Tweet1、SAP HANA数据库的备份为了保证最佳的性能,SAP HANA把数据存储在内存中,然而,SAP HANA也使用持久化的存储系统来 进行故障的恢复。上一篇文章讲过,数据库进行正常操作时,数据和undo日志在保存点(Savepoint)过 程中会自动地持久化到硬盘中,数据的变化被记录在redo日志中。Savepoint和写日志操作可以防止突然 的断电对数据库的影响,但是当持久性存储设备(如硬盘)发生故障后,它们就无能为力了。为了防止硬 件故障导致的数据丢失,数据库备份是必须的。备份操作过程对SAP HANA的性能影响是可以忽略不计 的,用户可以继续正常工作。数据库从备份中恢复和重启系统是相似的,都是从硬盘中读取数据和日志。但是它们的差别是,数据库从 备份中恢复需要的是外部备份文件。由于SAP HANA中数据和日志(redo)存储在不同的分区中,因此 数据库的备份也分为日志备份和数据备份两个部分,这两个部分的过程是相互独立的。SAP HANA的备 份需要注意一下几点:1. SAP HANA的备份所需要的授权见下表。授权名称注释BACKUP ADMIN执行备份的授权CATALOG READ备份时搜集信息的授权|1. 在SAP HANA进行第一次数据备份以前,日志备份是不会进行的(log mode处于overwrite模式)。2, 备份和恢复都是应用于整个数据库的,不可以备份和恢复数据库中的某一个对象。3. SAP HANA可以通过第三方备份工具进行备份。4, 最好使用共享存储设备进行备份,因为它不仅可以让所有节点访问到备份数据,而且系统更容易管理共享 设备。2、日志的备份在SAP HANA中,默认情况下,系统自动备份日志,前提必须是做过一次数据备份。在自动备份的模式 下,三种情况会触发一个log segment备份:1. Log segment 满了。2. 超过log备份timeout设置时间,log segment关闭。3. 数据库启动。系统用户可设置备份模式,设置 HANA studio 中 Configuration->golobal.ini->persistence->log_mode 和enable_auto_log_backup,如下图所示:tawULiWl-口 |«手ElUlw3 ElEi心 “四k Cl ertSXJMinJiti Hilebnf-intf hrariM-iii 个nUlm-El J IWWkKUtil Lfe+lU岫I llQtaKhafFPF.iwrt«r, ;Mim Hi->9 唧 HIMkowjLsmy®.LDJRJLWtiHiL-iJi.iium;nmp#. pn 曲1 3F.U0BJIL,IHRO1Ug d«i XEKSdiujwrmw加E7ETTO?-di!EFBak<rH,_srl!|iin|_J nctiE 5n lr_c虬临口1 i叫 f,ghiijirtrffliLis pn N jwt11iDUE侦一版mM&i1点!i7da rwfewl_liriisd_tanj7 %hmpwvLog mode有两种模式可选:1. Normal(默认),在该模式下,如果enable_auto_log_backup=yes,log segment会被自动的备份,这种方式的 好处是:备份后的log segment文件可以被重新利用,从而避免了 log volume慢导致数据库崩溃。下一篇 将讲述硬盘满后的恢复工作。2. Overwrite,在该模式下,log segment不会被进行备份,进行了 savepoint之后,free状态的log segment会 被直接覆盖。由于没有日志的备份,这种模式不推荐在生产系统中使用。如果使用Overwrite模式,数据 将只能通过数据备份进行恢复了,不能达到恢复到point-in-time的效果,只能恢复到某个savepoint。我们也可以设定 log 备份的时间间隔,Configuration->golobal.ini->persistence->log_backup_timeout_s。系统 默认时间间隔为900s,如果发生介质故障需要从备份恢复且日志日志区不能被用来进行恢复,这段时间内 的系统数据改变将会丢失。如果此处设为0,那么系统只有在log segment满或者系统重启时才会备份 log。3、数据的备份SAP HANA数据区的备份包含了数据库的所有内容:事务数据巳经管理数据(例如:用户,角色,模型 和视图)。只有真正的数据会被备份,数据库中未使用的空间不会被备份。数据区进行备份时,会备份每 一个SAP HANA服务的数据。如果SAP HANA运行在多个主机上,那么数据备份会包含所有主机上的以 服务为单位的备份。默认情况下,SAP HANA的数据备份目录为$DIR_INSTANCE/backup/data。注意这个目录以及日志备份目 录$DIR_INSTANCE/backup/log与SAP HANA的日志区和数据区要放在不同的硬盘上,这样即使SAP HANA系统发生介质故障,也不会影响日志硬盘。数据备份可通过三种工具进行备份:SAP HANA studio, SQL命令,批处理模式。使用SAP HANA Studio进行备份1. 右击系统,选择Back Up,弹出窗口如下图所示,选择Backup类型,如果安装了第三方备份工具,则可选择其他类型,本文不介绍。2. 设定备份的目标目录以及该备份的前缀名。此时应确保指定的备份目标目录有足够的空间进行备份。3. 点击Next,显示备份设置的总结。4. 点击Finish,备份开始。视图会显示所有服务的备份进程。使用SQL命令进行备份管理用户可以在SAP HANA Studio中的SQL控制台或者hdbsql中使用SQL命令进行备份。推荐在批处 理情况下,才使用SQL命令进行备份。SQL命令为:BACKUP DATA USING FILE ('<path><prefix>')其中<path><prefix>为绝对路径。例如:BACKUP DATA USING FILE ('/backup/data/MONDAY/COMPLETE_DATA_BACKUP')该语句会在/backup/data/MONDAY中创建COMPLETE_DATA_BACKUP_databackup_0_1 (name server topology)COMPLETE_DATA_BACKUP_databackup_1_1 (name server)COMPLETE_DATA_BACKUP_databackup_2_1 (for example, index server).批处理模式进行备份用户可以在操作系统级别使用SAP HANA的命令行工具HDBSQL进行备份。HDBSQL可以让用户通过 crontab来让数据库在固定时间固定间隔进行备份。1.安装SAP HANA Client,该客户端软件可以让用户使用hdbuserstore,从而避免直接在命令行中输入密码:hdbinst -a client (default location: /usr/sap/hdbclient)1.创建一个用户钥匙:/usr/sap/hdbclient/hdbuserstore set <KEY> <host>:3<instance id>15 <user> <password> 例如:/usr/sap/hdbclient/hdbuserstore set BACKUP vebwtests1:30015 user password1, 在crontab中,执行:/usr/sap/hdbclient/hdbsql -U<KEY> "BACKUP DATA USING FILE ('<path><prefix>')”例如:/usr/sap/hdbclient/hdbsql -U BACKUP "BACKUP DATA USING FILE ('MONDAY')"(三) 、SAP HANA数据恢复技术:数据库恢复SAP HANA数据库的恢复主要应用在以下场景中: 数据区硬盘无法使用 日志区硬盘无法使用 逻辑错误导致数据库需要被重置到一个特定的时间点 数据库拷贝1、数据区不可用若数据区不可用,并且在上一次数据备份之后所有数据改变的log备份和log区文件都可用,那我们可以 恢复到数据库失效的时间点,巳提交的数据不会丢失。对于此情况的数据库恢复,数据备份或者存储快 照,日志备份以及日志区都是需要的,当数据库成功的从数据备份或者数据快照恢复后,会使用log备份 和log区的日志进行回放。2、Log区不可用若log区不可用,只需要回放log备份。这样的结果是任何log备份之后的改变都会丢失。除此之外,所 有在log备份时未commit的事务都会被回滚。对于此情况的数据库恢复,数据备份或者存储快照,日志 备份会被使用。当数据库成功的从数据备份或者数据快照恢复后,会使用log备份日志进行回放。再恢复 时需要指定Initialize log area选项以避免从不可用的log区恢复。3、逻辑错误一时间点恢复若需要恢复到某个时间点,管理员需要这个时间点前的一个数据备份或者一个存储快照,以及日志备份和 日志区的一部分。由于此种方式会将时间点后的改变全部丢失,从安全考虑来讲,推荐用户在另一个系统 进行恢复。恢复流程在SAP HANA System视图,右键点击要恢复的系统,选择“Recovery”祗 Sysle-m Shutdown 点击OK以关闭系统。 根据下表选择一种恢复方式。选项描述1.2.恢复数据库到最近的状态3.此选项将恢复数据库到离当前最近的状态,需要以下数据:最近的数据备份(File, Backint,或存储快照)数据备份后的日志备份日志区数据1.2.恢复数据库到指定时间点3.需要以下数据:最近的数据备份(File, Backint,或存储快照)数据备份后的日志备份(包括此时间点之后的日志备份)日志区数据恢复数据库到指定数据备份或者存储快照.需要以下数据:指定数据备份(File, Backint,或存储快照)1.2.恢复数据库到某个log位置3.此选项是用来处理之前的恢复失败的情况,需要以下数据:Log位置之前的数据备份(File, Backint,或存储快照)数据备份后的日志备份日志区数据 选择一项后点击“ Next”。 若需要日志备份,则指定日志备份的位置。由于系统会根据备份目录以失败备份的位置,因此不需要指定恢复哪个备份,点击Next。 根据需要选择额外的选项,点击“ next”。R ec m-ey of y3?em H70Other SettingsChE cL Am<ii bilitcrf Log 卸匚 kupo¥(mj cdn hsvetht *5y stern clietlrw+iirthff all neqiMrd log barkvips 祐阳 rvailble Ttthebeyiinriingi of the mcrvrry proc®?, If leg backup 酊i miKing, they will 丽 listed and (he r«av(fy precis vjill 顼(? u甘。陡 any da ichanged If you <h 0皿皂 not tc- 口营for hi khis- check now,. A 舛>11 ti II 院 口 mfbut l-aier in dhe proce&t. Th* m-a y 二岩ulk in ,sugnihcdnt lu trf timeiF theriec.crbr-mLLst Le *epcdLcd duv Ls-mis-s-ing lug adckvjpiClieck the ilHy mF I 口可 backups 而 降日 in the ndiNrrt lorarhanC-s:ZFiIe Eyitem flrhird-Psrty BdukupTcl iBd ckintiMisalize Log AnIf you de i>okYManttc irrover Ing entries residing in the Idj 占req sdledt-his ciptiari. Jiherthe recavay, the l四 entris will ts dd eted frarm the log 日rea.Clnnialrze Log Arfea 由虫旦心|Hnijh | Cancel恢复总结显示出来,如果设置正确,选择“Finish”,恢复开始。,上i的珂ftfflaw 史bco/町 WrtU n(psRjcvict-别噌 r&cgery chnnsing 氏de,陌 F 酣.he 伺川.| m j 回Kz-c g ery grzkm RbCF-iry Type Deckup 心 Btchjp Slei-t'Tine" Dd Iri ELiS iEI ip I »: riKI L鲤耳试kup L硕tim tliie -口g Arta:ChfttfcAHistirn1 cf Lag 0k:电片-n-n H|iird4AHin FizIf Ha wSirhq i aTTENTKNloigrt iirni,J/bu irk iikrTorm iiig a iifOwiiTj' Iw LfalTETLiit ifBisni: Nate Uia: tht targ !i seri and the souc« syrttm mu 也£止!aneseti-imslherown DErarbencnmurtbethe MrrF ln4nrrns!l, rc W口 kXH A Annriflii MrHa 扫 Reto vc ry (PIwm- J.耕弟 Rvcc<,n-j|i ! r.nrirg >44 uniEH f n iihid ui3uull$HinL: Ei ruse =虹;ldnL5;MftMH Ct NJD MKXS& yi 、二E4J5NBc6<K HEin-Sw 5«ver 一卜虻JJMUMF蛆少啊r-'Erf.-r-a| un-:n Htcwy| im4、使用备份和恢复拷贝数据库用户可以使用恢复的方式来从源数据库拷贝到目标数据库。这种方式可以很大程度减少实施消耗(TCD)。用户可以选择两种方式拷贝数据库: 使用源数据库的数据备份和日志备份文件来拷贝。 只使用数据备份文件进行拷贝。使用备份来拷贝数据库的具体流程与上文恢复数据库的流程相同,但需注意:1.如果目标系统主机数少于源系统主机数量时,必须配置目标系统,使错个indexserver服务运行在一个主 机上。如果其他多个服务存在,则需要每个服务运行在单独的主机上。可通过ALTER SYSTEM ALTER CONFIGURATION('daemon.ini','system') set ('indexserver.c','instanceids')='<n>,<n>+2' with reconfigure来添加额外的indexserver到一个主机的系统。1. 如果目标系统的主机数多于源系统主机数,则必须移除多余的主机。2. 在源数据库建立snapshot5、使用存储快照拷贝数据库BACKUP DATA CREATE SNAPSHOT (或使用 HANA Studio)1. 关闭目标数据库,拷贝源数据库的data区到目标数据库的data区2. 在源数据库确认或放弃snapshotSNAPSHOT BACKUP_ID <backup_id> SUCCESSFUL <external_id> | UNSUCCESSFUL<string>SUCCESSFUL <external_id>其中<backup_id>可使下面语句用查询SELECT * FROM "SYS”."M_BACKUP_CATALOG" WHERE ENTRY_TYPE_NAME = 'data snapshot'1. 在目标数据库中,删除备份文件,如果$DIR_INSTANCE/./SYS/global/hdb/metadata中存在 BackupCatalog.xml 文件,删除掉。2. 在目标数据库用户环境下执行以下命令:(或使用HANA Studio)hdbnsutil -useSnapshothdbnsutil -onvertTopology1.启动目标数据库

    注意事项

    本文(SAP HANA 故障恢复处理.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开