本质上是oracle数据文件迁移的问题,一个部署条件如下:两台机器做oracle(非归档模式)的双机热备,在安装sde时,把sdesde.dbf文件放在主服务器上了,而其他的oracle文件放在磁盘阵列上,这样如果主服务器当机,对另外一台热备机器就无法找到sde.dbf文件,失去了双机热备的效果,所以要把sde.dbf文件移动到磁盘阵列上,先把原来的sde.dbf文件拷贝到目标目录下。

 

全部在sql/plus上操作:

 

先用system/manager登录进去

 

SQL> conn /as sysdba;

已连接

 

//关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

//mount方式启动数据库

SQL> startup mount;

ORACLE instance started.

Total System Global Area  101782828 bytes

Fixed Size                   451884 bytes

Variable Size              37748736 bytes

Database Buffers           62914560 bytes

Redo Buffers                 667648 bytes

Database mounted.

 

//修改数据文件指向

SQL> alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\DBFILES\DSBI\DS.ORA ' to ' D:\ORACLE\PRODUCT\10.2.0\DBFILES\DSBI\DS.ORA';

Database altered.

 

//打开数据库

SQL> alter database open;

 

此时可能报如下错误:

ORA-01113: 文件 5 需要介质恢复 

ORA-01110: 数据文件 5: 'D:\ORACLE\PRODUCT\10.2.0\DBFILES\DSBI\DS.ORA' 

//打开自动回复

SQL> set autorecovery on

//恢复数据文件

SQL> recover datafile 5;这个5就是上面错误提到的数据文件 5

完成介质恢复

 

//打开数据库

SQL> alter database open;

 

OK

 

可以不关闭sde服务进行上面的操作,但会在sde服务器上跳出很多错误,可以不予理睬,

相关文章: