模拟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;