本质上是oracle数据文件迁移的问题,一个部署条件如下:两台机器做oracle(非归档模式)的双机热备,在安装sde时,把sde的sde.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 服务器上跳出很多错误,可以不予理睬,