12c 模拟cdb的undo文件丢失
来源:互联网 发布:流量统计软件 编辑:程序博客网 时间:2024/06/05 13:50
12c的数据库cdb和pdb分别对应不同的undo,今天模拟下cdb下undo数据文件丢失
查看数据库状态
SQL> show user USER is "SYS"SQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/oradata/dave/system01.dbf/oradata/dave/sysaux01.dbf/oradata/dave/undotbs01.dbf/oradata/dave/pdbseed/system01.dbf/oradata/dave/pdbseed/sysaux01.dbf/oradata/dave/users01.dbf/oradata/dave/pdbseed/undotbs01.dbf/oradata/dave/davepdb/system01.dbf/oradata/dave/davepdb/sysaux01.dbf/oradata/dave/davepdb/undotbs01.dbf/oradata/dave/davepdb/users01.dbf11 rows selected.SQL> select tablespace_name from dba_tablespaces;TABLESPACE_NAME------------------------------SYSTEMSYSAUXUNDOTBS1TEMPUSERS
SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.[oracle@fish dave]$ lscontrol01.ctl davepdb redo01.log redo03.log system01.dbf undotbs01.dbfcontrol02.ctl pdbseed redo02.log sysaux01.dbf temp01.dbf users01.dbf[oracle@fish dave]$ mv undotbs01.dbf undotbs01.dbf.bak[oracle@fish dave]$ ls undo*undotbs01.dbf.bak启动数据库报错
SQL> startupORACLE instance started.Total System Global Area 968884224 bytesFixed Size 8799800 bytesVariable Size 666896840 bytesDatabase Buffers 289406976 bytesRedo Buffers 3780608 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/oradata/dave/undotbs01.dbf'
将undo数据文件offline
SQL> alter database open;alter database open*ERROR at line 1:ORA-00603: ORACLE server session terminated by fatal errorORA-01092: ORACLE instance terminated. Disconnection forcedORA-00604: error occurred at recursive SQL level 1ORA-00376: file 4 cannot be read at this timeORA-01110: data file 4: '/oradata/dave/undotbs01.dbf'Process ID: 2140Session ID: 32 Serial number: 25233
报错直接退出了
SQL> conn / as sysdba Connected to an idle instance.SQL> create pfile='/home/oracle/pfile.ora' from spfile;File created.修改undo management参数为manual (原来为auto)
undo_management=MANUAL
SQL> startup pfile='/home/oracle/pfile.ora';ORACLE instance started.Total System Global Area 968884224 bytesFixed Size 8799800 bytesVariable Size 666896840 bytesDatabase Buffers 289406976 bytesRedo Buffers 3780608 bytesDatabase mounted.ORA-00603: ORACLE server session terminated by fatal errorORA-01092: ORACLE instance terminated. Disconnection forcedORA-00604: error occurred at recursive SQL level 1ORA-00376: file 4 cannot be read at this timeORA-01110: data file 4: '/oradata/dave/undotbs01.dbf'Process ID: 2877Session ID: 32 Serial number: 61838
还是报错,还是ora-1110错误,那就是有回滚段需要恢复。使用strings命令查看system表空间数据文件,并且查找字符串"_SYSSMU"就可以得到当前数据库的回滚段列表,然后加入到参数_corrupted_rollback_segments中,再通过指定pfile的方式启动数据库:
[oracle@fish dave]$ strings system01.dbf |grep "_SYSSMU">undo.txt
[oracle@fish dave]$ vi undo.txt_SYSSMU16_2944207774$_SYSSMU14_2720857769$_SYSSMU12_3908674253$_SYSSMU17_2601259880$_SYSSMU15_2718605803$_SYSSMU13_131873868$_SYSSMU18_670144144$_SYSSMU19_3732264305$_SYSSMU9_3454315980$_SYSSMU8_1882146965$_SYSSMU7_416615031$_SYSSMU6_2941669244$_SYSSMU5_388830241$_SYSSMU4_2691291427$_SYSSMU3_2964921246$_SYSSMU2_2032512800$_SYSSMU1_3286679881$_SYSSMU20_3614795100$_SYSSMU20_3614795100$_SYSSMU19_3732264305$_SYSSMU19_3732264305$_SYSSMU18_670144144$_SYSSMU18_670144144$"undo.txt" 689L, 14601C 1,1 Top_SYSSMU14_2720857769$_SYSSMU13_131873868$_SYSSMU12_3908674253$_SYSSMU11_4062767693$_SYSSMU10_619310961$_SYSSMU9_3454315980$_SYSSMU8_1882146965$_SYSSMU7_416615031$_SYSSMU6_2941669244$_SYSSMU5_388830241$_SYSSMU4_2691291427$_SYSSMU3_2964921246$_SYSSMU2_2032512800$_SYSSMU1_3286679881$_SYSSMU9_3240272268$_SYSSMU8_4232757972$ and substr(drs.segment_name,1,7) != '_SYSSMU' and substr(drs.segment_name,1,7) != '_SYSSMU'; ' and substr(drs.segment_name,1,7) != ''_SYSSMU'' ' || O9 ' and substr(drs.segment_name,1,7) != ''_SYSSMU''');_SYSSMU10_619310961$_SYSSMU9_3454315980$_SYSSMU9_3454315980$
......篇幅太多,省略。将undo.txt的内容整理,去掉非_SYSSMUS开头的整理成如下格式
*._corrupted_rollback_segments=(_SYSSMU16_2944207774$,_SYSSMU14_2720857769$,_SYSSMU12_3908674253$,_SYSSMU17_2601259880$,_SYSSMU15_2718605803$,_SYSSMU13_131873868$,_SYSSMU18_670144144$,_SYSSMU19_3732264305$,_SYSSMU9_3454315980$,_SYSSMU8_1882146965$,_SYSSMU7_416615031$,_SYSSMU6_2941669244$,_SYSSMU5_388830241$,_SYSSMU4_2691291427$,_SYSSMU3_2964921246$,_SYSSMU2_2032512800$,_SYSSMU1_3286679881$,_SYSSMU20_3614795100$,_SYSSMU20_3614795100$,_SYSSMU19_3732264305$,_SYSSMU19_3732264305$,_SYSSMU18_670144144$,_SYSSMU18_670144144$,_SYSSMU14_2720857769$,_SYSSMU13_131873868$,_SYSSMU12_3908674253$,_SYSSMU11_4062767693$,_SYSSMU10_619310961$,_SYSSMU9_3454315980$,_SYSSMU8_1882146965$,_SYSSMU7_416615031$,_SYSSMU6_2941669244$,_SYSSMU5_388830241$,_SYSSMU4_2691291427$,_SYSSMU3_2964921246$,_SYSSMU2_2032512800$,_SYSSMU1_3286679881$,_SYSSMU9_3240272268$,_SYSSMU8_4232757972$,_SYSSMU10_619310961$,_SYSSMU9_3454315980$,_SYSSMU9_3454315980$,_SYSSMU8_1882146965$,_SYSSMU7_416615031$,_SYSSMU6_2941669244$,_SYSSMU5_388830241$,_SYSSMU4_2691291427$,_SYSSMU3_2964921246$,_SYSSMU2_2032512800$,_SYSSMU1_3286679881$,_SYSSMU20_3614795100$,_SYSSMU19_3732264305$,_SYSSMU18_670144144$,_SYSSMU17_2601259880$,_SYSSMU16_2944207774$,_SYSSMU15_2718605803$,_SYSSMU14_2720857769$,_SYSSMU13_131873868$,_SYSSMU12_3908674253$,_SYSSMU11_4062767693$,_SYSSMU10_619310961$,_SYSSMU9_3454315980$,_SYSSMU8_1882146965$,_SYSSMU7_416615031$,_SYSSMU6_2941669244$,_SYSSMU5_388830241$,_SYSSMU4_2691291427$,_SYSSMU3_2964921246$,_SYSSMU2_2032512800$,_SYSSMU1_3286679881$,_SYSSMU9_3240272268$,_SYSSMU8_4232757972$,_SYSSMU10_619310961$,_SYSSMU9_3454315980$,_SYSSMU9_3454315980$)启动数据库,测试看看
SQL> alter database open; Database altered.
切换pdb都ok 但是不知道生产环境cdb的undo丢失会不会对pdb的数据库产生影响。
0 0
- 12c 模拟cdb的undo文件丢失
- Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换
- 丢失undo文件,丢失部分归档日志的…
- 非 CDB(12c 或者 12c 之前的版本)迁移到 12c CDB
- undo数据文件丢失的恢复
- 12c pdb & cdb (1)
- oracle 12c pdb&cdb
- Oracle Database 12c cdb/pdb用户的创建
- 12c中保持 启动CDB后PDB的状态
- Oracle 12c CDB和PDB的切换
- 12C-CDB中PDB间的转换
- Oracle 12c中PDB、CDB、用户之间的关系
- Oracle 12c Non CDB 数据库 切换成 CDB 测试
- Oracle的临时表空间和UNDO表空间对应的文件丢失后的处理
- undo丢失的简单不完全恢复
- 【undo表空间的丢失-恢复-1】
- Oracle UNDO表空间对应的文件在运行过程中丢失如何恢复
- 12c undo 表空间的管理
- SSH免密码互相登陆-搭建hadoop集群
- 获取数字签名
- trust zone之我见
- 系统调用的工作机制
- nmon分析文件各sheet含义
- 12c 模拟cdb的undo文件丢失
- 使用CodeWarrior出现Warning:Return expected
- SQL Server-字字珠玑,一纸详文,完全理解SERIALIZABLE最高隔离级别(基础系列收尾篇)
- 时间校验 与时间转化
- 设计模式---备忘录模式(C++实现)
- knn算法中关于k的取值
- 简谈高通Trustzone的实现
- webpack填坑之路
- 安卓开发中的几种延时操作