模拟oracle数据库故障:

一、数据库冷备。

二、数据文件存放磁盘物理损坏,数据(control file,datafile,redo log file)全部丢失。

三、使数据库工作在新挂载的硬盘上。

 

思路:

1、冷备

2、挂载新硬盘,分区

3、复制冷备文件到新位置

4、修改spfile文件内容

5、修改控制文件内容(datafile、tempfile、logfile等)

6、打开数据库

7、检查

 

具体步骤如下:

一、冷备操作步骤:

1、查询文件存放位置:

select name from v$controlfile;

select name from v$datafile;

select member from v$logfile;

2、关闭数据库:shutdown immediate

3、拷贝上述文件

二、挂载新硬盘并分区,设置开机自动挂载

1、关机插入新硬盘

2、格式化硬盘,设置权限,设置开机自动挂载

fdisk sdc       #分区(在/dev中查看,具体查看相关liunx文档)

mkfs.ext3 sdc1  #格式化

mount /dev/sdc1 /u01/app/oracle/oradata/mdguo  #挂载

vi /etc/fstab   #开机自动挂载修改这个文件,根据实际情况加入下面的格式

/dev/sdc1 /u01/app/oracle/oradata/mdguo  ext3 default 1 2

chown oracle:oinstall /u01/app/oracle/oradata/mdguo  #更改权限

chmod 775 hc   # 权限

三、复制文件

先把冷备的数据文件、控制文件、redo文件等复制到新文件夹中。

cp * /u01/app/oracle/oradata/mdguo/ 

四、修改初始化参数文件内容

sqlplus /nolog

connect /as sysdba

create pfile from spfile;

vi /$ORACLE_HOME/dbs/initguo.ora #把控制文件和其他相关文件的老目录名字,改为新目录名字。

mv spfileguo.ora spfileguo.ora.bck #原来的spfile备份一份

create spfile from pfile;

shutdown immediate;#重启数据库使参数生效

五、修改控制文件和其他相关文件

select name from v$datafile;

alter database rename file /u01/app/oracle/oradata/guo/system01.dbf’ to  /u01/app/oracle/oradata/mdguo/system01.dbf’;

select * from v$tempf0ile;

alter database rename file /u01/app/oracle/oradata/guo/temp01.dbf’ to ‘/u01/app/oracle/oradata/mdguo/temp01.dbf’;

select * from v$logfile;

alter database rename file ‘/u01/app/oracle/oradata/guo/redo01.dbf’ to ‘/u01/app/oracle/oradata/mdguo/redo01.dbf’;

 

strings control01.ctl 查看下还有那些没有修改。

六、打开数据库

alter database open;

七、检查数据库

select * from dual;

该模拟实验 结束~!

 

若没有备份redo文件的话,执行下面的文件来创建:

startup mount

recover database until cancel using backup controlfile;

concel

alter database open resetlogs;