Oracle数据文件恢复数据库(11.2.0.4)

Oracle数据文件恢复数据库

参考:

  • http://blog.csdn.net/LiJi19910313/article/details/47859627
  • http://blog.csdn.net/mchdba/article/details/62443027?locationNum=3&fps=1
  • https://www.linuxidc.com/Linux/2014-06/102741.htm

场景:

先前保留了一份oracle的数据目录,然后重装了oracle数据库,oracle版本从11.2.0.1升级到11.2.0.4
新的数据文件目录为/data/oradata
数据文件目录备份为/data/oradata_bak

恢复步骤

关闭数据库和服务监听

#su - oracle
#lsnrctl stop    
#sqlplus  / as sysdba
SQL>shutdown immediate;

把新安装的数据库文件目录改名为oradata_new

mv /data/oradata /data/oradata_new

把备份的数据库文件目录改名为oradata

mv /data/oradata_bak /data/oradata

使用sysdb登录并启动数据库

#sqlplus / as sysdba
SQL>startup;

启动会提示control文件不一致,这种情况把oradata下的control01.ctl 覆盖fast_recovery_area下的control02.ctl

mv /opt/oracle/app/oracle/fast_recovery_area/scc/control02.ctl /opt/oracle/app/oracle/fast_recovery_area/scc/control02.ctl.bak
cp  /data/oradata/scc/control01.ctl /opt/oracle/app/oracle/fast_recovery_area/scc/control02.ctl

然后启动数据库会提示加上upgrade参数,这是因为要将一些基础信息表以及系统信息表升级到11.2.0.4版本

--特殊方式启动
SQL>startup upgrade
--查看预升级信息,这一步可以不做
SQL>@$ORACLE_HOME/rdbms/admin/utlu112i.sql
--执行升级脚本,执行完后就可以startup数据库
SQL>@$ORACLE_HOME/rdbms/admin/utlu112s.sql
--下面的步骤可以不做
SQL> @$ORACLE_HOME/rdbms/admin/utlu112s.sql
SQL> @$ORACLE_HOME/rdbms/admin/catuppst.sql
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

注:在执行升级脚本时可能会报SELECT TO_NUMBER(‘DATA_VAULT_OPTION_ON’) FROM v$option错误,这是因为开启了Oracle Vault功能,选关闭此功能后再执行升级

升级完成后启动数据库即可正常使用

关闭和开启Oracle Vault功能

检查是否开启Oroacle Vault功能

SQL> col parameter for a30 
SQL> col value for a20
SQL> SELECT * FROM V$OPTION WHEREPARAMETER = 'Oracle Database Vault';

关闭oracle vault功能

关闭数据库实例

SQL> shutdown immediate
SQL> exit
# lsnrctl stop

编译ins_rdbms.mk

cd $ORACLE_HOME/rdbms/lib/
make -f ins_rdbms.mk dv_off

执行relink

 cd $ORACLE_HOME/bin
 relink all

执行完后启动oracle即可

启用oracle vault

关闭数据库实例

SQL> shutdown immediate
SQL> exit
# lsnrctl stop

编译ins_rdbms.mk

cd $ORACLE_HOME/rdbms/lib/
make -f ins_rdbms.mk dv_on

执行relink

 cd $ORACLE_HOME/bin
 relink all

执行完后启动oracle即可

你可能感兴趣的:(oralce)