服务器掉电导致控制文件与数据文件不匹配
来源:互联网 发布:自动发卡源码 编辑:程序博客网 时间:2024/04/29 19:46
【cause】
磁阵掉电导致控制文件与数据文件seq#不一致
测试备份的三个控制文件,都不可用,只有使用recreate control的方法尝试恢复
【solution】
1)由于无法mount,不可以用下面的方法创建现有数据库的控制文件样本:
alter database backup controlfile to trace as '/home/oracle/zxindbf/admin/zxin/control';
通过linux:[strings]命令大致了解该数据库的数据文件情况:
#strings control01.ctl
}|{z
TZXIN
t-ZXIN
t-ZXIN
zxin
zxin
/zxindata/oracle/redolog/redo01.dbf
/zxindata/oracle/redolog/redo02.dbf
/zxindata/oracle/redolog/redo03.dbf
【 ---括号中为CREATE CONTROLFILE所需要的
/zxindata/oracle/system/system.dbf
/zxindata/oracle/system/undo.dbf
/zxindata/oracle/system/sysaux.dbf
/zxindata/oracle/system/temp.dbf ---去掉
/zxindata/oracle/system/users.dbf
/zxindata/zxin_file0/zxin_data.dbf
/zxindata/zxin_index/zxin_index.dbf
/zxindata/zxin_temp/zxin_temp.dbf
/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf
/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf
/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf
/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf
/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf
/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf
/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf
/zxindata/zxin_temp/zxin_temp1.dbf --去掉
】
/zxindata/oracle/redolog/redo01.dbf
/zxindata/oracle/redolog/redo02.dbf
/zxindata/oracle/redolog/redo03.dbf
/zxindata/oracle/system/system.dbf
/zxindata/oracle/system/undo.dbf
/zxindata/oracle/system/sysaux.dbf
/zxindata/oracle/system/temp.dbf
/zxindata/oracle/system/users.dbf
/zxindata/zxin_file0/zxin_data.dbf
/zxindata/zxin_index/zxin_index.dbf
/zxindata/zxin_temp/zxin_temp.dbf
/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf
/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf
/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf
/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf
/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf
/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf
/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf
/zxindata/zxin_temp/zxin_temp1.dbf
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
ZXIN_DATA
ZXIN_INDEX
ZXIN_TEMP
SYSTEM
......
控制文件描述中只包含在线日志文件和数据文件
2)重建控制文件,并启动数据库
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZXIN" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 12
MAXLOGMEMBERS 3
MAXDATAFILES 254
MAXINSTANCES 4
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/zxindata/oracle/redolog/redo01.dbf' SIZE 2048M,
GROUP 2 '/zxindata/oracle/redolog/redo02.dbf' SIZE 2048M,
GROUP 3 '/zxindata/oracle/redolog/redo03.dbf' SIZE 2048M
DATAFILE
'/zxindata/oracle/system/system.dbf',
'/zxindata/oracle/system/undo.dbf',
'/zxindata/oracle/system/sysaux.dbf',
'/zxindata/oracle/system/temp.dbf',
'/zxindata/oracle/system/users.dbf',
'/zxindata/zxin_file0/zxin_data.dbf',
'/zxindata/zxin_index/zxin_index.dbf',
'/zxindata/zxin_temp/zxin_temp.dbf',
'/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf',
'/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf',
'/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf',
'/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf',
'/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf',
'/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf',
'/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER DATABASE OPEN;
---为临时表空间添加临时文件(注意大小与现有数据文件的一致)
ALTER TABLESPACE TEMP ADD TEMPFILE '/zxindata/oracle/system/temp.dbf'
SIZE 512M REUSE AUTOEXTEND OFF;
ALTER TABLESPACE ZXIN_TEMP ADD TEMPFILE '/zxindata/zxin_temp/zxin_temp.dbf'
SIZE 6G REUSE AUTOEXTEND OFF;
ALTER TABLESPACE ZXIN_TEMP ADD TEMPFILE '/zxindata/zxin_temp/zxin_temp1.dbf'
SIZE 20G REUSE AUTOEXTEND OFF;
3)备份数据
exp system/manager full=y file=/zxindata/full_0701.dmp
3)恢复控制文件三个副本
因为之前尝试各个control是否有用,现在当前的control file只有control02.ctl
需要shutdown immediate,拷贝,恢复三个副本,并修改参数文件control_files
查看当前的control
SQL> show parameters control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /zxindata/oracle/control/contr
ol02.ctl
SQL> shutdown immediate
#rm -f control01.ctl control03.ctl
#cp control02.ctl control01.ctl
#cp control02.ctl control03.ctl
#rm -f /home/oracle/zxindbf/zxin/define/initzxin.ora
#mv /home/oracle/zxindbf/zxin/define/initzxin.ora_bk /home/oracle/zxindbf/zxin/define/initzxin.ora
SQL> startup nomount
SQL> show parameters control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /zxindata/oracle/control/contr
ol01.ctl, /zxindata/oracle/con
trol/control02.ctl, /zxindata/
oracle/control/control03.ctl
SQL>ALTER DATABASE OPEN;
磁阵掉电导致控制文件与数据文件seq#不一致
测试备份的三个控制文件,都不可用,只有使用recreate control的方法尝试恢复
【solution】
1)由于无法mount,不可以用下面的方法创建现有数据库的控制文件样本:
alter database backup controlfile to trace as '/home/oracle/zxindbf/admin/zxin/control';
通过linux:[strings]命令大致了解该数据库的数据文件情况:
#strings control01.ctl
}|{z
TZXIN
t-ZXIN
t-ZXIN
zxin
zxin
/zxindata/oracle/redolog/redo01.dbf
/zxindata/oracle/redolog/redo02.dbf
/zxindata/oracle/redolog/redo03.dbf
【 ---括号中为CREATE CONTROLFILE所需要的
/zxindata/oracle/system/system.dbf
/zxindata/oracle/system/undo.dbf
/zxindata/oracle/system/sysaux.dbf
/zxindata/oracle/system/temp.dbf ---去掉
/zxindata/oracle/system/users.dbf
/zxindata/zxin_file0/zxin_data.dbf
/zxindata/zxin_index/zxin_index.dbf
/zxindata/zxin_temp/zxin_temp.dbf
/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf
/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf
/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf
/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf
/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf
/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf
/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf
/zxindata/zxin_temp/zxin_temp1.dbf --去掉
】
/zxindata/oracle/redolog/redo01.dbf
/zxindata/oracle/redolog/redo02.dbf
/zxindata/oracle/redolog/redo03.dbf
/zxindata/oracle/system/system.dbf
/zxindata/oracle/system/undo.dbf
/zxindata/oracle/system/sysaux.dbf
/zxindata/oracle/system/temp.dbf
/zxindata/oracle/system/users.dbf
/zxindata/zxin_file0/zxin_data.dbf
/zxindata/zxin_index/zxin_index.dbf
/zxindata/zxin_temp/zxin_temp.dbf
/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf
/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf
/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf
/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf
/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf
/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf
/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf
/zxindata/zxin_temp/zxin_temp1.dbf
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
ZXIN_DATA
ZXIN_INDEX
ZXIN_TEMP
SYSTEM
......
控制文件描述中只包含在线日志文件和数据文件
2)重建控制文件,并启动数据库
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZXIN" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 12
MAXLOGMEMBERS 3
MAXDATAFILES 254
MAXINSTANCES 4
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/zxindata/oracle/redolog/redo01.dbf' SIZE 2048M,
GROUP 2 '/zxindata/oracle/redolog/redo02.dbf' SIZE 2048M,
GROUP 3 '/zxindata/oracle/redolog/redo03.dbf' SIZE 2048M
DATAFILE
'/zxindata/oracle/system/system.dbf',
'/zxindata/oracle/system/undo.dbf',
'/zxindata/oracle/system/sysaux.dbf',
'/zxindata/oracle/system/temp.dbf',
'/zxindata/oracle/system/users.dbf',
'/zxindata/zxin_file0/zxin_data.dbf',
'/zxindata/zxin_index/zxin_index.dbf',
'/zxindata/zxin_temp/zxin_temp.dbf',
'/zxindata/zxin_part1/ZXIN_WATCH_W1a.dbf',
'/zxindata/zxin_part2/ZXIN_WATCH_W2a.dbf',
'/zxindata/zxin_part3/ZXIN_WATCH_W3a.dbf',
'/zxindata/zxin_part4/ZXIN_WATCH_W4a.dbf',
'/zxindata/zxin_part5/ZXIN_WATCH_W5a.dbf',
'/zxindata/zxin_part6/ZXIN_WATCH_W6a.dbf',
'/zxindata/zxin_part7/ZXIN_WATCH_W7a.dbf'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER DATABASE OPEN;
---为临时表空间添加临时文件(注意大小与现有数据文件的一致)
ALTER TABLESPACE TEMP ADD TEMPFILE '/zxindata/oracle/system/temp.dbf'
SIZE 512M REUSE AUTOEXTEND OFF;
ALTER TABLESPACE ZXIN_TEMP ADD TEMPFILE '/zxindata/zxin_temp/zxin_temp.dbf'
SIZE 6G REUSE AUTOEXTEND OFF;
ALTER TABLESPACE ZXIN_TEMP ADD TEMPFILE '/zxindata/zxin_temp/zxin_temp1.dbf'
SIZE 20G REUSE AUTOEXTEND OFF;
3)备份数据
exp system/manager full=y file=/zxindata/full_0701.dmp
3)恢复控制文件三个副本
因为之前尝试各个control是否有用,现在当前的control file只有control02.ctl
需要shutdown immediate,拷贝,恢复三个副本,并修改参数文件control_files
查看当前的control
SQL> show parameters control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /zxindata/oracle/control/contr
ol02.ctl
SQL> shutdown immediate
#rm -f control01.ctl control03.ctl
#cp control02.ctl control01.ctl
#cp control02.ctl control03.ctl
#rm -f /home/oracle/zxindbf/zxin/define/initzxin.ora
#mv /home/oracle/zxindbf/zxin/define/initzxin.ora_bk /home/oracle/zxindbf/zxin/define/initzxin.ora
SQL> startup nomount
SQL> show parameters control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /zxindata/oracle/control/contr
ol01.ctl, /zxindata/oracle/con
trol/control02.ctl, /zxindata/
oracle/control/control03.ctl
SQL>ALTER DATABASE OPEN;
- 服务器掉电导致控制文件与数据文件不匹配
- 数据文件和控制文件
- 丢失所有控制文件,还原所有数据文件,不还原控制文件,recover database until cancel
- 头文件不匹配导致的崩溃问题
- 小红伞(antivir)无法更新 校验和与控制文件中的说明不匹配 解决方法
- 2.3.4 控制文件与数据文件头信息
- 控制文件与数据文件头信息的说明
- 图:试图播放的文件扩展名与文件格式不匹配。播放该文件可能会导致意外行为...的解决办法
- 头文件和.a(库文件不匹配)导致虚函数错位,进而导致的bug
- 因停电等不可控因素导致控制文件损坏
- 数据文件与文件组
- 查找控制文件、数据文件、日志文件
- 移动数据文件、控制文件、日志文件
- oracle 控制文件 临时文件 日志文件 数据文件
- 移动控制文件数据文件日志文件
- Oracle数据文件/控制文件/日志文件
- 解决ssh客户端与服务器加密逻辑不匹配问题
- 解决centos服务器远程桌面与显示屏尺寸不匹配问题
- 今天终于装了LATEX,mark一下
- (1)Java正则表达式学习
- 信号处理和模式识别方面的MATLAB工具箱
- 不执行直接生成执行计划
- JAVA学习笔记总结(一): 了解Java与入门准备
- 服务器掉电导致控制文件与数据文件不匹配
- 安卓 log 的用法
- strace诊断一次监听无法启动之TNS-12555 TNSpermission denied
- MFC —— CWnd::SetCapture
- CWnd::SetCapture, ReleaseCapture, GetCapture
- 数据文件 maxsize
- 数据库批量更新(TVP)
- bj-c中字符串和数字互相转化
- 消息映射