zoukankan      html  css  js  c++  java
  • SAP License:HANA在线日志被误删了怎么办?(转)

    原理

     

     

     

    (如上图)HANA的在线日志是由一个一个的日志段(log segment)组成的,他们存放的地点默认在/hana/log目录下,在这个目录中的日志会自动增长,在遇到savepoint的时候,日志段会被备份到备份目录中,然后空间会被释放出来。这样周而复始的循环使用。(如下图)

     

     

    那么什么是日志段呢?简单的来说,它具有已在内存中提交并已作为到达日志卷文件系统的事务的记录,并且还来不及保存到仅在保存点(savepoint)之后发生的数据卷。

    如果日志卷内的日志段遇到保存点

    • 在log_mode=normal 和 enable_auto_log_backup=yes 的情况下,在日志段备份后,来自日志段的数据将传输到数据卷。
    • 当log_mode=overwrite时,来自日志段的数据被传输到数据卷,并且将在没有日志备份的情况下以循环方式覆盖

    执行上述任一操作后,日志段将变为 Free 状态,可以重新使用。

    注意:日志段不同于日志备份。换句话说,当日志段遇到保存点时,它的数据会被转移到数据卷中。日志段是应该在覆盖前备份还是直接覆盖取决于参数log_mode =(normal / Overwrite)

    2.HANA中日志段的状态是什么?它们有 5 种不同的日志段状态:Writing、Closed、Truncated、BackedUp、Free

     

    有以下三种方式可以查看:

    1. 通过SQL语句

    select b.host, b.service_name, a.state, count(*) from “PUBLIC”.”M_LOG_SEGMENTS” a join “PUBLIC”.”M_SERVICES” b on (a.host = b.host AND a.port = b.port) group by b.host, b.service_name, a.state

     

    2. 通过hana studio

     

     

    3. 在OS层面查看

     

     

    1、花式作死

    某年某月某一天,群里热闹非常,大家在讨论万一误删了HANA数据库的在线日志该怎么办

     

     

    不知道为什么,作者就很想知道删库跑路是个什么感觉,于是就自告奋勇的说:都闪开,我来试试!

    刚说完就后悔了,但又不好意思反悔,俗话说自己约的那啥,含着泪也要那啥啊!

    于是接上系统,开始在群里直播删库,rm –rf命令走起!

     

     

    删掉的是位于/hana/log//mnt00001/hdb00001下的log文件,删除后,HANA数据库还处于运行状态,没有马上挂掉。

    接下来试试能不能正常重启,首先把HANA库停下来

     

     

    果然,再次启动HANA库,真的起不来了。

    这下作了大死了!

     

     

     

     

    大家纷纷在群里开始吐槽自己的苦逼遭遇

     

     

    想想以后还要在圈子里混饭吃,提起裤子不认人这种事也不是咱好意思干的,善良的人总是会有善报,还是修复一下算了。

    2、重建日志

    首先在目录/usr/sap//HDB00/hana/trace下,查看最近的

    nameserver_alert_hana.trc这个日志文件,里面记载了因为丢失日志无法启动的记录。

     

     

    我们有两个选择:

    一是用备份恢复数据库

    二是重建日志

    但是,作者并没有事先做备份,所以只能选择重建日志。假如日志重建失败,那可就真要跑路了。

    没有撤退可言了,只能死马当作活马医了。

    切换到用户sidadm下,执行下面的命令

    hdblogdiagdirectory –recreate /hana/log/SID/mnt0000X/hdb0000X/

    “X”是目录编号,如果是“1”就写“1”,是“2”就写“2”

     

     

    可以看到执行命令后,该目录下删除的log重建了

     

     

    再试试能不能启动HANA库,运气不错,成功启动了

     

     

    这下终于可以不用跑路了。

    后记:这次删库操作使用作者自己的服务器,请勿模仿。删日志和删库在性质上是一致的,是一项极其危险的操作,系统随时面临宕机的风险,并且会高概率伴随数据丢失。

    wechat: ywkonline Mobile: 13661767749 专注于SAP运维、升级、迁移
  • 相关阅读:
    Vue浏览器调试工具VueTools安装以及使用
    克莱姆法则 学习
    IfcFacetedBrep —Example Basin faceted brep
    行列式学习
    matlab矩阵旋转任意角度的函数 imrotate
    matlab双杆系统的支撑反力 学习
    matlab矩阵运算——乘法、除法学习
    matlab求航线图问题 学习
    matlab范德蒙矩阵生成学习
    matlab特殊矩阵生成学习
  • 原文地址:https://www.cnblogs.com/weikui/p/15731458.html
Copyright © 2011-2022 走看看