Skip to main content
黑话筒

整体恢复Oracle数据库

今天给客户恢复了Oracle数据库。事情是这样的,客户的数据库在7月15日进行了备份,7月20日格式化C盘,重装系统。Oracle是装在f盘的,重装完之后,发现忘记备份数据库,于是就把f盘的oracle文件夹带给了我们。

我的Oracle是安装在d盘,实例名叫Ora,客户数据库的实例名也叫Ora。我就在服务里面将Oracle还有监听都停掉。然后把D盘的Oracle文件夹改名为old_oracle,将客户给我的Oracle文件夹放到D盘。

然后修改以下地方:

d:\oracle\admin\ora\pfile\init.ora

将其中的所有关于F:\oracle的部分全部改成d:\oracle

d:\oracle\ora81\database\initora.ora

将其中的所有关于F:\oracle的部分全部改成d:\oracle,并且把里面相关的IP地址或主机名全部改成本机的IP地址

d:\oracle\ora81\network\admin\listener.ora

d:\oracle\ora81\network\admin\tnsnames.ora

修改其中相关的IP地址或主机名全部改成本机的IP地址

然后运行sqlplus

sqlplus /nolog
conn oracle/internal@ora as sysdba
startup mount
alter database rename 'f:\oracle\oradata\ora\system01.dbf' to 'd:\oracle\oradata\ora\system01.dbf'

不断的重做上面的alter操作,直到把d:\oracle\oradata\ora\所有的文件都执行该操作后,此次数据库恢复就完成了

再输入

alter database open;

打开数据库 一切OK

PS:上面说的不断重复alter操作,其实可以先用dir命令将文件列表导成文件,然后再用EmEditor里的宏功能删除无用的部分,并生成相应的alter语句,每条语句独占一行,并且以;结尾,保存成a.sql文件。然后在sqlplus里输入@d:\a.sql即可

参考:手工转移数据库Step By Step