oracle数据库 home,复制ORACLE_HOME目录恢复数据库

本来想对Oracle测试备份还原的,结果不小心把oracle的ORACLE_HOME目录给删了,还是rm -rf。。。

还好之前做了次冷备,数据文件、控制文件、联机重做日志文件、口令文件、初始化参数都还在。

重新安装固然可以,但是能不能在其他oracle上拷贝一个ORACLE_HOME目录,修改下使用那?

有了想法 咱就试试吧。

在2台虚拟机上进行该操作。

被删的机器:hnhc

完好的机器:oral

由于2台机器的Oracle都是按照同一个文档安装的。

[oracle@oral ~]$ id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),504(beoper)

[oracle@hnhc lib]$ id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

具体操作如下:

1、检查两台机器的 ORACLE_HOME信息

[root@oral ~]# su - oracle

env [oracle@oral ~]$ env | grep ORA

ORACLE_SID=guo

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

[oracle@hnhc ~]$ env | grep ORA

ORACLE_SID=hckj

ORACLE_BASE=/u01

ORACLE_HOME=/u01/oracle/

2、打包db_1文件

[root@oral db_1]#tar zcvfp db_1.tar.gz db_1 #要保留全来的权限。

3、复制到另一台机器上,本来想用vsftp的,但是老是安装不上,没办法,共享了一个windows文件夹。

[root@oral db_1]#mount.cifs //192.168.1.102/share /media -o user=administrator,pass=123456

[root@oral db_1]#cp db_1.tar.gz /media

4、在另一台机器上也挂载该共享,解压到/u01/oracle中。

[root@hnhc media]#tar –xvf db_1.tar.gz –C /u01/oracle

虚拟机就是慢啊……

5、设置权限

[root@hnhc u01]# chown -R oracle:oinstall ./oracle

6、修改 $ORACLE_HOME 中的 oraInst.loc 文件,其实就是填入正确 oraInventory 目录,这个oraInventory 可以不建,但是父目录必须存在,并且Oracle用户可以写入(建目录)。

[oracle@hnhc oracle]$ cp oraInst.loc{,.bak}   #做个备份

[oracle@hnhc u01]$ ls

admin  arclog  flash_recovery_area  oracle  oradata  oraInventory  userbkp

可以发现,我之前的这个目录在/u01下,修改之。

[oracle@hnhc oracle]$ vi oraInst.loc

inventory_loc=/u01/oraInventory

inst_group=oinstall

7、 修改$ORACLE_HOME/clone/config/cs.properties,在最后加上参数-invPtrLoc 指明oraInst.loc 所在的路径。

[oracle@hnhc config]$ vi cs.properties

# Copyright (c) 2005, Oracle. All rights reserved.

# clone command line

clone_command_line= -noConfig -invPtrLoc "/u01/oracle/oraInst.loc"

8、再去到$ORACLE_HOME/clone/bin 目录执行clone.pl的perl脚本:

[oracle@hnhc bin]$ ./clone.pl \

> ORACLE_HOME = "/u01/oracle" \

> ORACLE_HOME_NAME = "OracleHome1" \

> ORACLE_BASE = "/u01" \

> OSDBA_GROUP="dba" \

> OSOPER_GROUP="dba" \

> OSASM_GROUP="dba" \

9、最后用root用户执行那个$ORACLE_HOME 的root.sh 就OK了。

莫名奇妙的是最后两步一直出错,我直接重启了服务器,在用sqlplus竟然直接连接上了,一切正常。。

[oracle@hnhc ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jan 11 16:01:52 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect /as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  285212672 bytes

Fixed Size                  1218992 bytes

Variable Size              92276304 bytes

Database Buffers          188743680 bytes

Redo Buffers                2973696 bytes

Database mounted.

Database opened.

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/oradata/hckj/control01.ctl

/u01/oradata/hckj/control02.ctl

/u01/oradata/hckj/control03.ctl

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/oradata/hckj/system01.dbf

/u01/oradata/hckj/undotbs01.dbf

/u01/oradata/hckj/sysaux01.dbf

/u01/oradata/hckj/users01.dbf

/u01/oradata/hckj/example01.dbf

最后两步,我正在查找原因,等待后续更新吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值