当前位置: 首页 > news >正文

ORACLE故障恢复:启用与禁用事务的并行恢复

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

ORACLE故障恢复:启用与禁用事务的并行恢复

   ORACLE 从8i开始,引进了fast start parallel rollback机制来进行事务恢复,SMON使用并行的方式来进行事务的恢复,可以通过参数FAST_START_PARALLEL_ROLLBACK来控制是否启用和并行的进程个数

可以取下面的三个值
FALSE – 禁用并行恢复事务,使用旧的串行的方式。
LOW – 限制最大的并行度是2 * CPU_COUNT
HIGH -限制最大的并行度是4 * CPU_COUNT
但是并行恢复常常出现问题,如SMON进程使用CPU占用100%,还有就是恢复相当的慢,pq进程之前互相干扰,所以有些时间我们不得不禁用并行恢复机制。
在串行恢复机制下,我们常常增加_CLEANUP_ROLLBACK_ENTRIES值如400,每一次回滚400个entries,加速恢复的速度。
可能通过v$fast_start_server视图来查看并行的进程的状态,如果出现了idle进程,那么我们需要禁用并行恢复机制。

www.htz.pw >@tran_parallel_rollback.sql
Session altered.USN STATE                   PID OS_PID        USED_TIME(S)      Total       Done       ToDo Estimated time to c
---------- ---------------- ---------- ------------ ------------- ---------- ---------- ---------- -------------------5 RECOVERING               15 20968                  121     486100      73564     412536 2013-05-04 19:29:16
STATE       UNDOBLOCKSDONE        PID OS_PID       XID
----------- -------------- ---------- ------------ ----------------
RECOVERING           73567         15 20968        050023005B010000
RECOVERING               0         21 20970        050023005B010000
RECOVERING               0         23 20972        050023005B010000
RECOVERING               0         25 20974        050023005B010000

暂停SMON进行事务恢复

www.htz.pw >oradebug setospid 20396
Oracle pid: 8, Unix process pid: 20396, image: oracle@rhel4 (SMON)
www.htz.pw >oradebug event 10513 trace name context forever ,level 2;
Statement processed.

暂停并行恢复后,过几分钟后,我们从v$fast_start_server与v$fast_start_transactions中都找不到回退的进程的信息,但是我们这里可以通过x$ktuxe来查看相关的信息

select ADDR, KTUXEUSN, KTUXESLT, KTUXESQN, KTUXESIZfrom x$ktuxewhere KTUXECFL = 'DEAD'
ADDR               KTUXEUSN   KTUXESLT   KTUXESQN   KTUXESIZ
---------------- ---------- ---------- ---------- ----------
0000002A973B79B8          8          4        355     500116
    过10分钟左右,v$process也查不到并行恢复进程相当的信息,所以这里我们根本不需要去手动kill掉并行恢复相当进程,因为ORACLE会自己的kill掉相关的并行recover进程

如果不想等待,我们可以手动kill掉相当的进程

下面是改回串行

www.htz.pw >alter system set fast_start_parallel_rollback=false;
System altered.
www.htz.pw >oradebug setospid 20396
Oracle pid: 8, Unix process pid: 20396, image: oracle@rhel4 (SMON)
www.htz.pw >oradebug event 10513 trace name context off;
Statement processed.
www.htz.pw >oradebug eventdump process
Statement processed.
www.htz.pw >@tran_parallel_rollback.sql
Session altered.USN STATE                   PID OS_PID        USED_TIME(S)      Total       Done       ToDo Estimated time to c
---------- ---------------- ---------- ------------ ------------- ---------- ---------- ---------- -------------------5 RECOVERING                                         232     339650     176665     162985 2013-05-04 19:42:028 RECOVERED                                          652     500116     500116          0 2013-05-04 19:38:28        

如果smon没有唤醒,可以通过下面的命令来唤醒

www.htz.pw >select pid,spid from v$process where spid=20396;PID SPID
---------- ------------8 20396
www.htz.pw >oradebug wakeup 8;
Statement processed.

下面是计算恢复还需要多长的时间

www.htz.pw >@tran_dead.sql
KTUXECFL                   COUNT(*)
------------------------ ----------
DEAD                              2
NONE                            576
ADDR               KTUXEUSN   KTUXESLT   KTUXESQN   KTUXESIZ
---------------- ---------- ---------- ---------- ----------
0000002A97494488          5         35        347     101071
0000002A974939E0          8          4        355          0
DO YOU COMPUTE RECOVERY TIME :DO ENTER ,NOT CTRL+C: 
Enter Search Usn (i.e. 3) : 5
Enter Search Slt (i.e. 4) : 35
PL/SQL procedure successfully completed.
time cost Hours:.02
PL/SQL procedure successfully completed.

------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.jsqmd.com/news/45692/

相关文章:

  • 基于SIC8F1233开发智能充气泵方案
  • ESD整改核心思路:堵、防、疏的实践平衡-ASIM阿赛姆
  • 2025 最新瓷砖品牌权威推荐:经国际协会测评认证,精选品质与创新兼具的优质品牌
  • Qiling使用速记
  • 保温杯LED屏幕驱动和语音播报二合一芯片方案
  • B端界面设计之流程页设计——从“能用”到“好用”的边界重构
  • 2025 靠谱初中一对一辅导机构排行榜:权威评价 + 真实口碑排名推荐
  • 什么是I2C通信协议
  • 视频汇聚平台EasyCVR服务器使用WiFi网卡时,为何无法向级联平台发送注册?
  • ai-answer
  • 2025 年 11 月纯化水设备厂家推荐排行榜,生物制药纯化水设备,医疗器械纯化水设备,食品纯化水设备,化妆品纯化水设备,制药纯化水设备公司推荐
  • 火山引擎多模态数据湖,破解智能驾驶数据处理瓶颈
  • The 2025 ICPC Asia Shenyang Regional Contest
  • 2025年交通安全国际学术会议(ICTS 2025)
  • 2025一对一教育机构口碑排名:高性价比靠谱名单 + 权威测评排行榜
  • 11.19题解
  • 国王游戏
  • 11.18题解
  • 视频汇聚平台EasyCVR添加设备提示成功,但平台不展示设备的原因排查
  • 2025年车载精酿啤酒设备实力厂家权威推荐榜单:二手精酿啤酒设备/小型精酿啤酒设备/德国精酿啤酒设备源头厂家精选
  • 小波自适应去噪在脑电信号处理MATLAB仿真实现
  • idea下创建多个springboot项目
  • 2025年胶辊硫化罐直销厂家权威推荐榜单:立式硫化罐/硫化罐密封圈/翻新轮胎硫化罐源头厂家精选
  • 基于STM32微控制器的直流无刷电机(BLDC)控制程序实现
  • 【LVGL】文本区域部件
  • 牛客刷题-Day23
  • 大厂都在用的测试基础设施:深度解析Dify工作流引擎的设计哲学与最佳实践
  • 2025 年 11 月手工冰淇淋厂家推荐排行榜,0添加冰淇淋,低脂冰淇淋,低糖冰淇淋,巧克力冰淇淋,国潮冰淇淋,磨巧冰淇淋厂家推荐
  • 当 Git 账号密码输错后,凭证会被缓存下来怎么办?
  • 素数与素数筛