SAP HANA 故障恢复处理.docx

上传人:小飞机 文档编号:4889099 上传时间:2023-05-21 格式:DOCX 页数:14 大小:231KB
返回 下载 相关 举报
SAP HANA 故障恢复处理.docx_第1页
第1页 / 共14页
SAP HANA 故障恢复处理.docx_第2页
第2页 / 共14页
SAP HANA 故障恢复处理.docx_第3页
第3页 / 共14页
SAP HANA 故障恢复处理.docx_第4页
第4页 / 共14页
SAP HANA 故障恢复处理.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SAP HANA 故障恢复处理.docx》由会员分享,可在线阅读,更多相关《SAP HANA 故障恢复处理.docx(14页珍藏版)》请在三一办公上搜索。

1、(一)、SAP HANA数据库的恢复技术:系统故障恢 复众所周知,SAP HANA是内存数据库,很多人会有疑问,内存是断电就会丢失数据的设备,SAP HANA 是怎样保证数据在内存中并且断电不会丢失的呢?此问题涉及到概念叫数据库保护:排除和防止各种对数据库的干扰破坏,确保数据安全可靠,以及在数据 库遭到破坏后尽快地恢复。而数据库的恢复技术是数据库保护的重要手段。还要介绍一个概念:事务:一 个不可分割的操作序列,其中的操作要么都做,要么都不做。举个例子:银行转帐:A帐户转帐到B帐户 100元。该处理包括了两个更新步骤 A=A-100 B=B+100这两个操作是不可分的:要么都做,要么都不做。事务

2、的状态在日志中包含三种: 表示事务T巳经开始; 表示事务T巳经成功完成并且所有的修改都巳经写入数据库; 表示事务T巳经被终止,并且所有的修改巳被取消。数据库的故障分为三类: 事务故障:单个事务的内部故障,不会影响其他事务; 介质故障:硬故障:如磁盘损坏,磁盘巳满等; 系统故障:软故障,如停电、死机等,这些故障会导致内存数据丢失,影响当前的全部事务。数据库对系统故障的恢复主要目的是恢复到故障发生之前的状态,即尚未完成的事务进行回滚,巳完成的 事务要确保其完成。1、系统故障恢复验证在SAP HANA中,这些概念同样适用,下面对SAP HANA的系统故障的恢复进行验证。本文的测试案例所使用的 SAP

3、 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 - I

4、mux-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 知识。);在

5、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- T5STMUM TEXT12 酬均黑却心豺.此旧皇津学习叫口 HAW同虫,分不如也也卸匝我们可以认为窗口 1和窗口 2是两个事务T1和T2,事务T1执行一条修改后,没有commit,因此故障之 后回滚到事务T1执行前。事务T2巳经commit,虽然SAP HAN

6、A尚未把数据持久化到硬盘上(未做 savepoint),但是由于事务日志的存在,数据库被成功恢复到了故障点。2、系统故障的恢复策略CrashI 转皓 | 运行事务Jt1登记日志文件t2|_直专四|利用臼志文件进行恢复继续运行事务、 / ,介质故障族复 者蔬故障和事务故障恢复|登记日志文件如上图所示,当发生故障时,若是介质故障,则首先重装副本(系统故障省略此步骤),然后利用日志进行事务故障恢复和系统故障恢复,一直恢复到故障发生点。3、事务日志事务日志是用来管理数据库系统中记录的变化,记录了所有更新操作的具体细节。为了让一个事务持久化 不丢失,我们不必在事务提交时就把完整的数据内容持久化在硬盘中,

7、只需要持久化事务日志就足够了。当系统崩溃后,数据库中的最近的一致性状态可以通过回放事务日志来恢复。因此日志文件的记录严格按 照事务的执行时间次序。事务日志主要包含三种:Undo日志、Redo日志、Undo/Redo日志。而在SAP HANA中,只有两种日志:Undo日志、Redo日志。日志文件的内容主要包含以下三方面: 事务的开始标记(Start T) 事务的结束标记(Commit, 丁或Abort T) 事务的更新操作记录,一般包括以下内容其中,一条更新操作记录包括:执行操作的事务标识,操作对象,更新前值(Undo)或者更新后值(Redo)或者更新前值和更新后值(Undo/Redo)。4、R

8、edo日志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-Initi

9、al: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 to log这种恢复方式的理论基础是没有 Commit,T 记录的操作必定没有改写磁盘中数据,因此在恢复时可以不 理会。而有Commit,T记录的结果可能还未写回磁盘,因此在恢复时要Redo。SAP HANA的Redo日志是与事务处理的过程同步的写到磁盘中的。当数据库遇到崩

10、溃后重启,需要对持 久化的日志进行处理,为了提高日志处理的速度,系统会定期的进行savepoints (保存点,类似于传统数 据库中的checkpoint)。在一个savepoint的过程中,系统确保在上一个savepoint后所有在内存中的数据 改变都被持久化在硬盘中。因此,当启动系统后,只有最后一次savepoint之后的redo日志才需要被处 理。当日志备份后,savepoint之前的过时的redo日志可以被删除。5、Undo日志SAP HANA不仅仅持久化committed的改变记录,它还可能持久化未committed的改变记录(注:此改变 记录并非log,而是data),例如:在sa

11、vepoint过程中,最近版本的的改变过的页都会被写到磁盘中,无 论这个改变是否巳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 -卜 Initial:A=1000B=2000Reads t + 100;* golobal.ini-persistence-log_mode 和enable_

12、auto_log_backup,如下图所示:tawULiWl-口 |手ElUlw3 ElEi心 “四k Cl ertSXJMinJiti Hilebnf-intf hrariM-iii 个nUlm-El J IWWkKUtil Lfe+lU岫I llQtaKhafFPF.iwrtr, ;Mim Hi-9 唧 HIMkowjLsmy.LDJRJLWtiHiL-iJi.iium;nmp#. pn 曲1 3F.U0BJIL,IHRO1Ug di XEKSdiujwrmw加E7ETTO?-di!EFBakgolobal.ini-persistence-log_backup_timeout_s。系统 默

13、认时间间隔为900s,如果发生介质故障需要从备份恢复且日志日志区不能被用来进行恢复,这段时间内 的系统数据改变将会丢失。如果此处设为0,那么系统只有在log segment满或者系统重启时才会备份 log。3、数据的备份SAP HANA数据区的备份包含了数据库的所有内容:事务数据巳经管理数据(例如:用户,角色,模型 和视图)。只有真正的数据会被备份,数据库中未使用的空间不会被备份。数据区进行备份时,会备份每 一个SAP HANA服务的数据。如果SAP HANA运行在多个主机上,那么数据备份会包含所有主机上的以 服务为单位的备份。默认情况下,SAP HANA的数据备份目录为$DIR_INSTAN

14、CE/backup/data。注意这个目录以及日志备份目 录$DIR_INSTANCE/backup/log与SAP HANA的日志区和数据区要放在不同的硬盘上,这样即使SAP HANA系统发生介质故障,也不会影响日志硬盘。数据备份可通过三种工具进行备份:SAP HANA studio, SQL命令,批处理模式。使用SAP HANA Studio进行备份1. 右击系统,选择Back Up,弹出窗口如下图所示,选择Backup类型,如果安装了第三方备份工具,则可选择其他类型,本文不介绍。2. 设定备份的目标目录以及该备份的前缀名。此时应确保指定的备份目标目录有足够的空间进行备份。3. 点击Nex

15、t,显示备份设置的总结。4. 点击Finish,备份开始。视图会显示所有服务的备份进程。使用SQL命令进行备份管理用户可以在SAP HANA Studio中的SQL控制台或者hdbsql中使用SQL命令进行备份。推荐在批处 理情况下,才使用SQL命令进行备份。SQL命令为:BACKUP DATA USING FILE ()其中为绝对路径。例如:BACKUP DATA USING FILE (/backup/data/MONDAY/COMPLETE_DATA_BACKUP)该语句会在/backup/data/MONDAY中创建COMPLETE_DATA_BACKUP_databackup_0_1

16、 (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 clie

17、nt (default location: /usr/sap/hdbclient)1.创建一个用户钥匙:/usr/sap/hdbclient/hdbuserstore set :315 例如:/usr/sap/hdbclient/hdbuserstore set BACKUP vebwtests1:30015 user password1, 在crontab中,执行:/usr/sap/hdbclient/hdbsql -U BACKUP DATA USING FILE ()”例如:/usr/sap/hdbclient/hdbsql -U BACKUP BACKUP DATA USING FIL

18、E (MONDAY)(三) 、SAP HANA数据恢复技术:数据库恢复SAP HANA数据库的恢复主要应用在以下场景中: 数据区硬盘无法使用 日志区硬盘无法使用 逻辑错误导致数据库需要被重置到一个特定的时间点 数据库拷贝1、数据区不可用若数据区不可用,并且在上一次数据备份之后所有数据改变的log备份和log区文件都可用,那我们可以 恢复到数据库失效的时间点,巳提交的数据不会丢失。对于此情况的数据库恢复,数据备份或者存储快 照,日志备份以及日志区都是需要的,当数据库成功的从数据备份或者数据快照恢复后,会使用log备份 和log区的日志进行回放。2、Log区不可用若log区不可用,只需要回放log

19、备份。这样的结果是任何log备份之后的改变都会丢失。除此之外,所 有在log备份时未commit的事务都会被回滚。对于此情况的数据库恢复,数据备份或者存储快照,日志 备份会被使用。当数据库成功的从数据备份或者数据快照恢复后,会使用log备份日志进行回放。再恢复 时需要指定Initialize log area选项以避免从不可用的log区恢复。3、逻辑错误一时间点恢复若需要恢复到某个时间点,管理员需要这个时间点前的一个数据备份或者一个存储快照,以及日志备份和 日志区的一部分。由于此种方式会将时间点后的改变全部丢失,从安全考虑来讲,推荐用户在另一个系统 进行恢复。恢复流程在SAP HANA Sys

20、tem视图,右键点击要恢复的系统,选择“Recovery”祗 Sysle-m Shutdown 点击OK以关闭系统。 根据下表选择一种恢复方式。选项描述1.2.恢复数据库到最近的状态3.此选项将恢复数据库到离当前最近的状态,需要以下数据:最近的数据备份(File, Backint,或存储快照)数据备份后的日志备份日志区数据1.2.恢复数据库到指定时间点3.需要以下数据:最近的数据备份(File, Backint,或存储快照)数据备份后的日志备份(包括此时间点之后的日志备份)日志区数据恢复数据库到指定数据备份或者存储快照.需要以下数据:指定数据备份(File, Backint,或存储快照)1.2

21、.恢复数据库到某个log位置3.此选项是用来处理之前的恢复失败的情况,需要以下数据:Log位置之前的数据备份(File, Backint,或存储快照)数据备份后的日志备份日志区数据 选择一项后点击“ Next”。 若需要日志备份,则指定日志备份的位置。由于系统会根据备份目录以失败备份的位置,因此不需要指定恢复哪个备份,点击Next。 根据需要选择额外的选项,点击“ next”。R ec m-ey of y3?em H70Other SettingsChE cL Amii bilitcrf Log 卸匚 kupo(mj cdn hsvetht *5y stern clietlrw+iirthff

22、 all neqiMrd log barkvips 祐阳 rvailble Ttthebeyiinriingi of the mcrvrry proc?, If leg backup 酊i miKing, they will 丽 listed and (he rav(fy precis vjill 顼(? u甘。陡 any da ichanged If you 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

23、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 iokYManttc irrover Ing entries residing in the Idj 占req sdledt-his ciptiari. Jiherthe recavay, the l四 entris will ts dd eted frarm the

24、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-tTine Dd Iri ELiS iEI ip I : riKI L鲤耳试kup L硕tim tliie -口g Arta:ChfttfcAHistirn1 cf Lag

25、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.耕弟 Rvcc44 uniEH f n ii

26、hid ui3uull$HinL: Ei ruse =虹;ldnL5;MftMH Ct NJD MKXS& yi 、二E4J5NBc6K HEin-Sw 5ver 一卜虻JJMUMF蛆少啊r-Erf.-r-a| un-:n Htcwy| im4、使用备份和恢复拷贝数据库用户可以使用恢复的方式来从源数据库拷贝到目标数据库。这种方式可以很大程度减少实施消耗(TCD)。用户可以选择两种方式拷贝数据库: 使用源数据库的数据备份和日志备份文件来拷贝。 只使用数据备份文件进行拷贝。使用备份来拷贝数据库的具体流程与上文恢复数据库的流程相同,但需注意:1.如果目标系统主机数少于源系统主机数量时,必须配置目标系

27、统,使错个indexserver服务运行在一个主 机上。如果其他多个服务存在,则需要每个服务运行在单独的主机上。可通过ALTER SYSTEM ALTER CONFIGURATION(daemon.ini,system) set (indexserver.c,instanceids)=,+2 with reconfigure来添加额外的indexserver到一个主机的系统。1. 如果目标系统的主机数多于源系统主机数,则必须移除多余的主机。2. 在源数据库建立snapshot5、使用存储快照拷贝数据库BACKUP DATA CREATE SNAPSHOT (或使用 HANA Studio)1.

28、 关闭目标数据库,拷贝源数据库的data区到目标数据库的data区2. 在源数据库确认或放弃snapshotSNAPSHOT BACKUP_ID SUCCESSFUL | UNSUCCESSFULSUCCESSFUL 其中可使下面语句用查询SELECT * FROM SYS”.M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = data snapshot1. 在目标数据库中,删除备份文件,如果$DIR_INSTANCE/./SYS/global/hdb/metadata中存在 BackupCatalog.xml 文件,删除掉。2. 在目标数据库用户环境下执行以下命令:(或使用HANA Studio)hdbnsutil -useSnapshothdbnsutil -onvertTopology1.启动目标数据库

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号