由于备份失误等各种原因,遇到了磁盘损坏的问题,导致数据库存储的数据文件有问题,从原来服务器上的数据文件拷贝出来也是有问题的。
拷贝的数据文件如下:
[root@ibopo-center-db seelinux]# ls
cms6_zgq_data.dbf interact_data.dbf zgq_wlwz_data.dbf cms6_zgq_temp.dbf interact_temp.dbf wlkj_app_data.dbf wlkj_app_temp.dbf zgq_wlwz_temp.dbf
以及日志文件:
[root@ibopo-center-db orcl]# ls
control01.ctl redo01.log redo03.log system01.dbf system03.dbf undotbs01.dbf
example01.dbf redo02.log sysaux01.dbf system02.dbf temp01.dbf users01.dbf
文件都比较大,以上是从服务器硬盘上拷贝的数据,你只需要知道数据有损坏。
恢复的过程,遇到了各种各样的问题,毕竟是第一次遇到这种问题。
我先在新给的一台虚拟机上做实验,安装好oracle,建立一个相同的实例orcl,由于新的虚拟机上有相同的示例orcl,为了不影响实验,我先删除之前的orcl实例,就想刚安装好的oralce数据库一样。
切换到oracle 用户,su - oracle
使用dbca进行删除orcl实例。
dbca -silent -deleteDatabase -sourcedb orcl
使用dbca快速建立一个orcl的实例。
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbName orcl -sid orcl -sysPassword huangbaokang -systemPassword huangbaokang -datafileDestination /u01/hbk/oraData -characterSet UTF8 -automaticMemoryManagement true
执行上述命令,在/u01/hbk/oraData会建立orcl实例的相关文件,并会自动启动oracle实例,所以要先关闭oracle,然后删除生成的所有文件,并把我们拷贝的数据文件和日志文件全部放回/u01/hbk/oraData/orcl目录下。
sql>shutdown immediate
[root@ibopo-center-db orcl]# cd /u01/hbk/oraData/orcl/
[root@ibopo-center-db orcl]# rm -rf *
使用scp也好,ftp也好,把文件放在该目录,放好之后,注意要改变用户所属组(chown oracle:oinstall *)。
[root@ibopo-center-d