好记性,不如烂笔头。写在这里备以后查看

show parameter control_files 查看控制文件的位置

1:连接数据库
   sqlplus /nolong
   connect /as sysdba
   查看一下当前的控制文件位置如下:
     SQL> show parameter control_file

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
control_file_record_keep_time        integer
7
control_files                        string
D:\PTC\WINDCHILL_9.1\OCU\ORADA
TA\WIND\CONTROL01_WIND.CTL, D:
\PTC\WINDCHILL_9.1\OCU\ORADATA
\WIND\CONTROL02_WIND.CTL, D:\P
TC\WINDCHILL_9.1\OCU\ORADATA\W
IND\CONTROL03_WIND.CTL
2:停止数据库
   shutdown immediate
3:复制控制文件到新位置,备份并清除原位置的控制文件。
    步骤略
4:修改spfile文件:d:\oracle\product\10.2.0\db_1\database\initwind.ora
   上面的可能没有这个文件,或者在d:\oracle\product\10.2.0\db_1\dbs/
   这一步可以先启动一下ora数据库,如果有报错如下信息
   ORA-01078 & LRM-00109错误,
  
   SQL> connect  /as sysdba
   SQL> startup
   ora-01078failure in processing system parameters
   LRM-00109:could not open parameter file ’d:\oracle\product\10.2.0\db_1\database\initwind.ora’

这是因为在oracle9i和oracle10g中,
数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。
解决方法:
将$ORACLE_BASE/oradata/数据库名称/pfile目录下的init.ora.37201111442形式的文件
copy到$ORACLE_HOME/dbs目录下initoracle.ora即可。如果提示为其他位置,将文件拷贝到相应的位置,并改名为提示的,本例为:initwind.ora
(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)
  
   SQL> startup
   ORACLE 例程已经启动。

Total System Global Area  503316480 bytes
Fixed Size                  1249800 bytes
Variable Size             142609912 bytes
Database Buffers          352321536 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL>
服务器正常启动。
再次查看控制文件位置如下,位置以改变:
SQL> show parameter control_files

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
control_files                        string
D:\PTC\WINDCHILL_9.1\OCU\ORADA
TA\WIND\CONTROLFILES\CONTROL01
_WIND.CTL, D:\PTC\WINDCHILL_9.
1\OCU\ORADATA\WIND\CONTROLFILE
S\CONTROL02_WIND.CTL, D:\PTC\W
INDCHILL_9.1\OCU\ORADATA\WIND\
CONTROLFILES\CONTROL03_WIND.CT
L


控制文件的位置修改成功。