在实际项目运维中,遇到服务器oracle数据库存储硬盘坏了,只留下了数据文件,其控制文件和参数文件都丢失了,如何进行数据库恢复呢。
1、安装一个与要恢复的数据库相同实例,其db_name,sid,字符集都一样,因为在创建控制文件时,会判断dbf文件头信息中的数据库名是否与所在实例名是否一样。
我要恢复的数据库db_name和sid都是orcl,字符集UTF8。
我使用的是dbca静默建库,命令如下:
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbName orcl -sid orcl -sysPassword huangbaokang -systemPassword huangbaokang -datafileDestination /u01/app/oraData -characterSet UTF8 -automaticMemoryManagement true
以上命令执行后,会在/u01/app/oraData(事先先建立好oraData目录,用户权限组oracle:oinstall)生成orcl的数据文件,一系列的dbf文件。
如果实验失败,可以重头来,需要先删除该示例,命令如下(失败的时候才需要运行如下命令,防止出现重复创建的问题):
dbca -silent -deleteDatabase -sourcedb orcl
2、以sysdba身份进行备份控件文件,备份目录自定义
[oracle@ibopo-center-db ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 12 13:03:16 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Dat