diff --git a/docs/user_manual/operation_and_maintenance/emergency_handbook/01_emergency_overview.md b/docs/user_manual/operation_and_maintenance/emergency_handbook/01_emergency_overview.md
new file mode 100644
index 000000000..1ad520f71
--- /dev/null
+++ b/docs/user_manual/operation_and_maintenance/emergency_handbook/01_emergency_overview.md
@@ -0,0 +1,68 @@
+---
+title: 故障应急手册概述
+weight: 1
+---
+
+咱们《OceanBase DBA 进阶教程》的内容已经持续更新了一段时间,终于来到了 “问题排查” 阶段。
+
+前一段儿时间看到了 OceanBase 内部同学整理的一篇社区博客[《OceanBase 应急三板斧》](https://open.oceanbase.com/blog/13250502949),以及文档团队的小伙伴们在官方文档中为大家提供的一些[和应急处理相关的内容](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573632),内容都非常不错。
+
+不过对于 OceanBase 社区版的用户来说,这些应急场景和应对手段,可能还不是十分完善,同时也不够体系化和图谱化。
+
+同时考虑到用户意见收集中的 @oceanvoice 、@张雨齐 等老师的建议,准备《进阶教程》的这个章节中,为大家提供一份儿相对比较成体系,也更加全面的《故障应急手册》。
+
+在《故障应急手册》中,会把用户在使用 OceanBase 的过程中可能遇到的问题,以及对应的解决方案进行汇总,目录大致会是:
+
+* 1 系统响应时间不符合预期
+
+* 2 SQL 执行报错
+
+* 3 CPU 负载异常
+
+* 4 节点宕机
+
+* 5 生产库故障切容灾库
+
+* 6 硬件 & 基础环境故障应急处理
+
+* 7 负载变化导致的问题
+
+* 8 集群内部其他问题
+
+ * 8.1 租户转储阻塞
+
+ * 8.2 集群合并阻塞
+
+ * 8.3 SYS 租户/ RS 服务问题
+
+ * 8.4 磁盘泄漏
+
+ * 8.5 内存泄漏
+
+ * 8.6 长事务
+
+ * 8.7 悬挂事务
+
+ * 8.8 coredump
+
+ * 8.9 无主
+
+* 未完待续……
+
+
+手册的更新频率大概是一周一次,因为这个章节的内容较多,所以预计会分成三到四次完成手册内容的更新。希望大家能够持续关注。
+
+
+## What's more ?
+
+这一小节只有手册的内容介绍,没啥干货,有点儿过意不去。那就在最后附送一个 **针对 OceanBase 严重故障(尤其是业务停服场景),进行快速止血恢复的通用方法** ,简单来说就是:切主 -> 隔离 -> 重启 -> 切备集群。
+
+- 如果集群中只有一个租户有问题,那就切这个租户的主(通过 set tenant primary_zone 修改租户的 primary_zone)。
+
+- 如果集群中只有一个节点有问题,那就 stop or isolate 这个节点。
+
+- 如果整个集群都有问题,那就轮流重启集群中的各个节点。
+
+- 如果轮流重启之后还有问题,那就进行 failover 操作,切换备集群。
+
+- 分析问题永远放在止血和恢复之后。
\ No newline at end of file
diff --git a/docs/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response.md b/docs/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response.md
new file mode 100644
index 000000000..0fb02a16b
--- /dev/null
+++ b/docs/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response.md
@@ -0,0 +1,206 @@
+---
+title: 系统响应时间不符合预期
+weight: 2
+---
+
+## 业务及数据库表现
+
+业务表现:业务响应由快变慢,或者直接超时报错。
+
+数据库表现:SQL 执行时间变长,响应曲线陡升,SQL 响应延迟 (RT) 明显变高。
+
+## 排查方向和流程
+
+
+
+
+### 排查硬件问题
+
+首先需要排除一下是否由网络、磁盘 IO 等硬件问题导致的 SQL 响应延迟,这里不多啰嗦。
+
+
+
+### 排查大查询(slow query)问题
+
+直接通过 OCP 排查是否存在 “可疑 SQL”。
+
+
+如果存在某个大查询(或者叫大请求)占用了过多资源,导致大量短请求无法及时得到响应,可以考虑以下方法:
+
+- 通过 OCP 对占用过多资源的大请求进行限流。
+
+
+- 通过 [large_query_worker_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576444)(默认 30%) 来设置大查询可以使用的系统资源占比。
+
+- 通过 [large_query_threshold](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576249) (默认 5s)来设置大查询的判定阈值。这个时间阈值修改之后对系统影响可能会比较大,在不了解参数含义时,不建议用户随意修改。
+
+- 通过 OCP 添加主机,并对租户[进行扩容](https://www.oceanbase.com/docs/common-ocp-1000000001405989)(Zone 内增加节点)。
+
+
+
+### 排查租户队列积压问题
+
+#### 排查方法
+
+资源问题这里除了某几个大查询占用了过多资源,还有一种租户队列积压的情况。排查方式有以下几种:
+
+- 可以通过 OCP 观察单条 slow query 的平均 queue_time(排队时间)在 elapsed_time(响应时间) 中的占比是否符合预期,如果 queue_time 超长,则可能是租户队列积压。
+
+
+
+- 或者可以通过 GV$OB_SQL_AUDIT 视图查询 slow query 各种维度的信息,详见:《DBA 入门教程》中的 [“分析 SQL 监控视图”](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390074) 小节。一些重要的事件间隔如下:
+
+ ```
+ -- 这个例子中查询的是:tenant id 为 1002 的租户,在 2024-11-20 12:00:00 之后
+ -- query 执行时间超过 100 ms 的其中一条 SQL
+
+ select
+ tenant_id,
+ request_id,
+ usec_to_time(request_time),
+ elapsed_time,
+ queue_time,
+ execute_time,
+ query_sql
+ from
+ oceanbase.GV$OB_SQL_AUDIT
+ where
+ tenant_id = 1002
+ and elapsed_time > 100000
+ and request_time > time_to_usec('2024-11-20 12:00:00')
+ order by
+ elapsed_time desc
+ limit 1 \G
+
+ *************************** 1. row ***************************
+ tenant_id: 1002
+ request_id: 13329994
+ usec_to_time(request_time): 2024-11-20 15:14:58.765564
+ elapsed_time: 153118
+ queue_time: 34
+ execute_time: 139873
+ query_sql: select * from xxxx where xxxx;
+ 1 row in set (0.11 sec)
+ ```
+
+- **如果需要观察特定租户的队列积压情况,可以通过日志中的 'dump tenant info' 来实现,这个是最通用的方法**:
+ ```
+ grep 'dump tenant info' observer.log*
+ ```
+
+
+日志中,有几个关键字可参考:
+
+ 1. **req_queue**,表示普通请求队列
+
+ - total_size=n,n 表示优先级队列中总共的排队请求数。
+
+ - queue[x]=y,y 表示每个优先级子队列中的排队请求数(x 越小队列优先级越高)。
+
+ 2. **multi_level_queue**,表示嵌套请求队列
+
+ - total_size=n,n 表示优先级队列中总共的排队请求数。
+
+ - queue[x]=y,y 表示每个层级子队列中的排队请求数。
+
+ - queue0: 存放无嵌套的请求,由于无嵌套请求有优先级队列来存放,因此常为空。
+
+ - queue1: 存放1层嵌套的请求(如 sql 触发的 rpc)
+
+ - queue2: 存放2层嵌套的请求(如 sql 触发的 rpc 再次触发的 rpc)
+
+ - ……
+
+ 3. **group_id = x, queue_size = y** 中的 y 表示分组队列排队请求数。
+ - group 是用来处理特定种类 rpc 请求的,关于每个 group id 对应哪种 rpc 请求。可以参考开源代码 [ob_group_list.h](https://github.com/oceanbase/oceanbase/blob/develop/src/share/resource_manager/ob_group_list.h)。
+
+在日志中搜索 dump tenant info,好处是可以看到历史,可以同时看到队列和线程的大致情况,缺点是日志会周期性打印,实时性不强。
+
+- 或者通过登录 sys 租户,执行以下 SQL 观察租户队列积压情况:
+```
+obclient [oceanbase]> select * from oceanbase.__all_virtual_dump_tenant_info where tenant_id = 1002\G
+*************************** 1. row ***************************
+ svr_ip: 11.158.31.20
+ svr_port: 22602
+ tenant_id: 1002
+ compat_mode: 0
+ unit_min_cpu: 2
+ unit_max_cpu: 2
+ slice: 0
+ remain_slice: 0
+ token_cnt: 10
+ ass_token_cnt: 10
+ lq_tokens: 0
+ used_lq_tokens: 0
+ stopped: 0
+ idle_us: 0
+ recv_hp_rpc_cnt: 99
+ recv_np_rpc_cnt: 2226
+ recv_lp_rpc_cnt: 0
+ recv_mysql_cnt: 5459
+ recv_task_cnt: 5
+ recv_large_req_cnt: 0
+ recv_large_queries: 3661
+ actives: 10
+ workers: 10
+ lq_waiting_workers: 0
+req_queue_total_size: 0
+ queue_0: 0
+ queue_1: 0
+ queue_2: 0
+ queue_3: 0
+ queue_4: 0
+ queue_5: 0
+ large_queued: 0
+1 row in set (0.001 sec)
+```
+这张虚拟表,可以实时地查看队列信息,好处是实时性强,缺点是不记录历史信息。
+
+#### 解决方法
+
+这里先多说几句,OceanBase 的线程模型,是一个典型的生产者消费者模型,当请求的生产速度长期大于消费速度时,租户的工作队列就会被打爆,并返回错误码 -4019。
+
+即使没有打满,也会表现出请求排队耗时长的情况,如租户中存在大量自增列的场景(详见:《DBA 入门教程》中的 “扩展功能” 的 [“序列” 部分](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390115))。
+
+解决方法如下:
+
+- **如果租户队列已经爆了,只能通过重启恢复(停压力也不行)。** 建议去[社区论坛](https://ask.oceanbase.com/)发帖,联系在论坛中值班的技术支持同学,让他们协助你留下 obstack 或者 pstack 的堆栈信息,否则很难诊断具体原因。
+
+- **一般租户队列爆的问题较少,更常见的是租户队列积压。**
+ - 如果出现租户队列积压,请优先检查是否有 order 属性的自增列。
+
+ - 如果不是有大量自增列集中写入数据,需要联系社区论坛的值班同学通过 obstack 或者 pstack 分析堆栈信息。
+
+ - 分析的结论如果不是死锁引起的队列积压,可以通过调大特定租户的规格来缓解特殊场景下的队列积压。这里的 “特殊场景” 指有大量写入导致线程等锁开销,或者操作极耗 cpu(可以通过 top 或者tsar 来验证)。
+
+
+
+### 排查计划问题
+
+如果资源问题这个分支的嫌疑被排除了,大概率就是计划问题了。
+
+
+
+如果 SQL 执行效率是 “由快变慢”,那么可以重点怀疑以下几个常见问题:
+
+- 第一个是计划缓存(plan cahce)的 bad case,也被人称为 “大小账号问题”。问题描述、排查思路、解决方法都详见:《DBA 入门教程》中的 “常见的 SQL 调优方式” 的 [“计划缓存的 bad case” 部分](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390071),这里不再赘述。简而言之,“大小账号问题” 分两种:
+ - 一种就是《入门教程》中说的,SQL 中只有常量不同时,会共享 plan cache 中的同一个计划,这种场景可能会有问题;
+ > 再多说一句,算是偷偷做个预告:OceanBase 后续的版本会在某些合适的场景中支持为 SQL 中的不同常量,缓存不同的计划,以消除现在这个烦人的问题。
+ - 另一种是 SQL 涉及的表对象的统计信息发生了较大变化,但依然使用的是统计信息发生变化前 plan cache 中缓存的计划。
+ > 这个问题也会在后续版本的 plan cache 中得到缓解。
+
+
+- 第二个是 [Buffer 表问题](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390072)。也详见蓝色链接,不再赘述。
+ > 这里也只多说一句,《DBA 入门教程》中只给了大家一个解决问题的思路,就是想办法提高特定表的合并频率。除了手动合并,OceanBase 数据库从 V4.2.0 版本开始支持[自适应合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574524),通过修改 table_mode 为 queue 模式,来缓解该问题。
+
+- 第三个是在版本升级后,在低版本中好的计划,在高版本中回退成了差的计划。
+ - 一般来说,升级之后,绝大多数的计划都会变成更优的计划,这种回退只是极其个别的情况。这种情况在《入门教程》中没有为大家介绍,可以直接通过 OCP 观察对应 SQL 的历史趋势及计划变化来判断。
+ 
+ - 解决方法详见[《入门教程》中的 “通过 Hint 生成指定计划” 以及 “通过 Outline 进行计划绑定”](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390068)。
+
+
+- 第四个是硬解析问题,也可以直接通过 OCP 观察对应 SQL 计划生产时间的历史趋势来判断。解决方法详见[《入门教程》中的 “硬解析问题”](https://www.oceanbase.com/docs/community-tutorials-cn-1000000001390072)。
+
+
+
+如果 SQL 执行效率不是由快变慢,而是 “一如既往的慢”,那就去看这本《DBA 进阶教程》中的 [“SQL 性能诊断和调优” 小节](https://oceanbase.github.io/docs/user_manual/operation_and_maintenance/scenario_best_practices/chapter_03_htap/performance_tuning)吧,哈哈~
\ No newline at end of file
diff --git a/docs/user_manual/operation_and_maintenance/emergency_handbook/_category_.yml b/docs/user_manual/operation_and_maintenance/emergency_handbook/_category_.yml
new file mode 100644
index 000000000..6bdcff32d
--- /dev/null
+++ b/docs/user_manual/operation_and_maintenance/emergency_handbook/_category_.yml
@@ -0,0 +1 @@
+label: 故障应急手册
\ No newline at end of file
diff --git a/docs/user_manual/operation_and_maintenance/emergency_handbook/image.png b/docs/user_manual/operation_and_maintenance/emergency_handbook/image.png
new file mode 100644
index 000000000..b5e570efb
Binary files /dev/null and b/docs/user_manual/operation_and_maintenance/emergency_handbook/image.png differ
diff --git a/sidebars.ts b/sidebars.ts
index d1e1a6c63..ecf892d62 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -167,6 +167,14 @@ const sidebars: SidebarsConfig = {
dirName: 'user_manual/operation_and_maintenance/development_specification'
}]
},
+ {
+ type: 'category',
+ label: '故障应急手册',
+ items: [{
+ type: 'autogenerated',
+ dirName: 'user_manual/operation_and_maintenance/emergency_handbook'
+ }]
+ },
],
tutorialSidebar: [{ type: 'autogenerated', dirName: 'user_manual/user_best_practices/tutorial' }],
blogsSidebar: [{ type: 'autogenerated', dirName: 'blogs' }],
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/001.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/001.png
new file mode 100644
index 000000000..d724db8c7
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/001.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/002.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/002.png
new file mode 100644
index 000000000..6a4dfefcb
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/002.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/003.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/003.png
new file mode 100644
index 000000000..ebc50ec1b
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/003.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/004.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/004.png
new file mode 100644
index 000000000..dc17013c9
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/004.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/005.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/005.png
new file mode 100644
index 000000000..eaacdae4b
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/005.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/006.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/006.png
new file mode 100644
index 000000000..a19e2bbb0
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/006.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/007.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/007.png
new file mode 100644
index 000000000..de3873159
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/007.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/008.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/008.png
new file mode 100644
index 000000000..b5e570efb
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/008.png differ
diff --git a/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/009.png b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/009.png
new file mode 100644
index 000000000..04d636d71
Binary files /dev/null and b/static/img/user_manual/operation_and_maintenance/emergency_handbook/02_slow_response/009.png differ