oracle修改filesystem,ORACLE Filesystem,ASM 控制文件的恢复

环境信息

操作系统:redhat linux 5.5

数据库:oracle 11g r2  11.2.0.3

文件系统实例:fsdb

ASM实例:asmdb

文件系统 一个控制文件损坏恢复

文件系统 全部控制文件损坏恢复

ASM 全部控制文件损坏恢复

===========file system controlfile  recovery ==========

#sqlplus / as sysdba

--先启动数据库到 mount 或  open 状态

sql>startup mount       ||    sql>startup

--把控制文件备份到Tarce文件中

sql>alter database backup controlfile to trace;

--查看备份的信息 知道backup 到 哪个trace文件去了

#cat $ORACLE_BASE/diag/rdbms/fsdb/fsdb/alert/log.xml

===========================下图为日志信息========================

client_id='' type='UNKNOWN' level='16'

host_id='oracledb' host_addr='192.168.56.101' module='sqlplus@oracledb (TNS V1-V3)'

pid='4123'>

Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/fsdb/fsdb/trace/fsdb_ora_4123.trc

=======================================================================

---查看备份控制文件的有用信息,文件地址在上面标注了

---有了这些 就可以开始破坏控制文件了

#cat  $ORACLE_BASE/diag/rdbms/fsdb/fsdb/trace/fsdb_ora_4123.trc

======================下面 控制文件备份到tarce中的有用信息========================================

CREATE CONTROLFILE REUSE DATABASE "FSDB" RESETLOGS  ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '/oradata/fsdb/redo01.log'  SIZE 50M BLOCKSIZE 512,

GROUP 2 '/oradata/fsdb/redo02.log'  SIZE 50M BLOCKSIZE 512,

GROUP 3 '/oradata/fsdb/redo03.log'  SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'/oradata/fsdb/system01.dbf',

'/oradata/fsdb/sysaux01.dbf',

'/oradata/fsdb/undotbs01.dbf',

'/oradata/fsdb/users01.dbf',

'/oradata/fsdb/example01.dbf'

CHARACTER SET ZHS16GBK

=======================上面 控制文件备份到tarce中的有用信息============================================

--开始破坏控制文件,首先先查看一下有几个控制文件

----实际使用的控制文件信息

sql>col name format a40

SQL> select * from v$controlfile;

===============================================

STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS

------- ---------------------------------------- --- ---------- --------------

/oradata/fsdb/control01.ctl NO  16384    594

/oradata/fsdb/control02.ctl NO  16384    594

================================================

---下面是查询参数文件中 设置的控制文件位置信息。

SQL> show parameter control_files;

====================================================

NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

control_files     string /oradata/fsdb/control01.ctl, /

oradata/fsdb/control02.ctl

=====================================================

---破坏其中一个控制文件,,,,,走起

----创建一个破坏文件

sql>save '/tmp/pohuai.tx'

-----用破坏文件覆盖控制文件,达到破坏目的

-----注释:为什么不用RM 删除呢?因为RM只删除文件头,

----实际文件并未删除,只有启停数据库才能实现控制文件损坏现象

sql>host cp /tmp/pohuai.txt/oradata/fsdb/control02.ctl

---手工生成一个监测点,结果报错了,这时候数据库就挂了

SQL> alter system checkpoint;

alter system checkpoint

*

ERROR at line 1:

ORA-03113: end-of-file on communication channel

Process ID: 3991

Session ID: 191 Serial number: 1

---查看下数据库状态

sql>select status from v$instance;ERROR:

ORA-03114: not connected to ORACLE

--启动下数据库看看,

--内存已经分配了,说明已经nomount了,这说明参数文件没问题

--数据库mount的时候报错了。在不看错误提示的情况下。说明控制文件有问题

---根绝报错,控制文件有问题,让查看下alert log 日志。去看看

sql>startup

Total System Global Area 1670221824 bytes

Fixed Size    2228944 bytes

Variable Size  973081904 bytes

Database Buffers  687865856 bytes

Redo Buffers    7045120 bytes

ORA-00205: error in identifying control file, check alert log for more info

----查看日志文件 获得相关信息

----截取到 数据库mount阶段,查看报错

----说control02.ctl 文件头算坏,说明文件坏了

ALTER DATABASE   MOUNT

client_id='' type='UNKNOWN' level='16'

host_id='oracledb' host_addr='192.168.56.101' module=''

pid='5478'>

ORA-00210: cannot open the specified control file

ORA-00202: control file: '/oradata/fsdb/control02.ctl'

ORA-27048: skgfifi: file header information is invalid

Additional information: 18

-----来咱们恢复吧,幸亏之前查看有两个控制文件,复制一个过来不就完了。走说干就干。

-----查看控制文件信息,看看控制文件位置在哪?---启动数据库到nomount状态

sql>startup nomount

--查看控制文件位置

sql>show parameter control_files;

--把好的控制文件,覆盖坏的控制文件,千万别弄错了。要不就麻烦了。

sql>host cp /oradata/fsdb/control01.ctl /oradata/fsdb/control02.ctl

---覆盖完成后。走mount试下。呦呵,真的好了。

SQL> alter database mount;

Database altered.

---OPEN 下试试

SQL> alter database open;

Database altered.

=======文件系统,单控制文件损坏恢复。说到这里,下面介绍,文件系统全部控制文件损坏==================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值