史上最全Oracle文件损坏处理办法(附实验步骤)

本文详述了Oracle数据库各类文件损坏的处理方法,包括密码文件、参数文件、控制文件、数据文件和日志文件的故障模拟及修复策略。强调在有备份的情况下进行恢复,并提醒了不同文件损坏对数据库的影响和恢复注意事项。
摘要由CSDN通过智能技术生成

一、概述



本文将给大家介绍oracle各类文件损坏的现象和应对策略,请注意所有的恢复都是基于有备份的情况,所以请开启数据库的日常备份。

文章将从以下文件展开:
a. 密码文件
b. 参数文件
c. 控制文件
d. 数据文件(分普通表空间数据文件,其它表空间数据文件如system、sysaux、undo)
e. 日志文件(分current、active、inactive)

在正式实验之前,我先问一个问题,上面这些文件,哪个损坏最致命?欢迎在文末留言处留言。

二、环境准备



本实验在oracle 11G归档模式下进行,实验前先对数据库做个全库备份。

创建一个普通表空间和一些测试表
create tablespace tbs01 datafile '/u01/app/oracle/oradata/orcltest/tbs01.dbf' size 500m;


create table scott.t01 tablespace tbs01 as select * from dba_objects where rownum<=100;


RMAN> backup database;  // 全库备份
RMAN> list backup;  // 查看备份
BS Key  Type LV Size       Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------21      Full    1.14G      DISK        00:01:33     17-MAR-20        BP Key: 21   Status: AVAILABLE  Compressed: NO  Tag: TAG20200317T133425        Piece Name: /home/oracle/backupdir/ORCLTEST_2750922031_133_1_20200317_1035293665.bkp  List of Datafiles in backup set 21  File LV Type Ckp SCN    Ckp Time  Name  ---- -- ---- ---------- --------- ----  1       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/system01.dbf  2       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/sysaux01.dbf  3       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/undotbs01.dbf  4       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/users01.dbf  5       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/example01.dbf  6       Full 1606913    17-MAR-20 /u01/app/oracle/oradata/orcltest/tbs01.dbf
BS Key  Type LV Size       Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------22      Full    9.73M      DISK        00:00:02     17-MAR-20        BP Key: 22   Status: AVAILABLE  Compressed: NO  Tag: TAG20200317T133602        Piece Name: /home/oracle/backupdir/c-2750922031-20200317-00  SPFILE Included: Modification time: 17-MAR-20  SPFILE db_unique_name: ORCLTEST  Control File Included: Ckp SCN: 1606985      Ckp time: 17-MAR-20

三、密码文件损坏



文件说明:密码文件存储的是sys密码

模拟故障:清空该文件

echo '' > $ORACLE_HOME/dbs/orapworcltest  // orcltest是该数据库的实例名

现象:使用sys通过oracle net登录报密码错误
sqlplus sys/123456@10.40.16.120:1521/orcltest as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 17 13:57:52 2020
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
ERROR:ORA-01017: invalid username/password; logon denied
Enter user-name:

修复:使用自带工具orapwd重新生成密码文件

orapwd file=$ORACLE_HOME/dbs/orapworcltest password=123456 force=y  // force=y如果原密码文件存在,强制覆盖


四、参数文件损坏



文件说明:这里所说的参数文件指的是spfile,该文件存储的是实例启动的参数和控制文件的路径

模拟故障:清空该文件

echo '' > $ORACLE_HOME/dbs/spfileorcltest.ora

现象:修改数据库参数时会报错

SQL> alter system set open_cursors=400;
alter system set open_cursors=400
*
ERROR at line 1:
ORA-01565: error in identifying file
'/u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值