RedHat Linux上Oracle 11g从oradata恢复数据


莫非定理在验证着一切存在的东西,于是自己在RedHat上装的Oracle 11g就被命中。本来安装时就小心翼翼,不敢重启机器(由于是我第一次安装,所以特别担心,),生怕出现问题,所以在安装成功后就没有关闭过机器。就在几天前,由于机房整改,导致断电。全部机器重启,这一重启,我安装的oracle就挂了。当时,心里面就凉了。那里面可有260多G的数据那。我晕。对于我这样的oracle菜鸟,可是如遭天崩。于是,快速打开度娘,搜索怎么恢复。在看了一圈之后,选定了从oradata恢复。为了保险,我就把260多G的数据全部拷贝到B机器上。

首先,需要用原来的系统盘,在C机器上按着A机器(oracle挂的机器)上的设置做了一个系统。这里一定要保证机器名和IP都要一样。然后再用同一版本oracle安装盘在C机器上安装Oracle。在安装中要设置环境变量(即.bash_profile文件),这里的环境变量更要与A机器上一致。然后打开控制台,在sqlplus中用sys用户登陆oracle数据库,这时使用shutdown immediate命令关闭oracle数据库。

然后,把B机器上oradata数据全部拷到C机器的oracle安装目录的同名文件夹下,覆盖到C机器上的oradata文件夹。为了保险,可以用chown -R oracle:oinstall  /home/app/oradata 和chown -R 775 /home/app/oradata命令设置文件的属性。到这里之后,先不要急着启动数据库。而是要把flash_recovery_area中文件全部删除。然后自己再建立与SID同名的文件夹(大小写保持一致),然后把oradata文件夹下一级文件夹下的control01.ctl文件拷贝到刚才在flash_recovery_area文件下建立的SID同名文件夹下,并重命名为control02.ctl。

做好以上的这些操作之后,这是就可以用startup命令打开数据库。如果不报错就可以正常使用了。(我在两台机器上都测试通过)

相关内容