二. 移动控制文件:

  -- 控制文件 在 INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,

  -- 编辑INIT.ORA,移动控制文件,重启动数据库。

STEP 1. 下数据库:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;

STEP 2.用操作系统命令 移动控制文件:
--将控制文件'ctl3orcl.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
$ mv /ora/oracle/data1/ctrlorcl3.ora /ora/oracle/data2

STEP 3. 编辑INIT.ORA文件:
INIT.ORA文件的在$ORACLE_HOME/dbs目录下,
修改参数 "control_files",其中指定移动后的控制文件:
control_files = (/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)

STEP 4. 重启动数据库:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP;
SQL>SELECT name FROM V$CONTROLFILE;
SQL> EXIT;

  按Oracle原理,启动过程分为三个步骤nomount/mount/open.

  PHASE0:nomount前,即数据库完全关闭了.

  此时可以将数据库control files/data files/redo log files在OS下用mv命令任意移动(实际上,只要未被open的文件都是可以mv的),然后根据各种file location在Oracle中的存放位置,采用不同的方式来告诉Oracle:"偶已将原文件移动到另一个地方了".

  其中初始参数文件中的control_files参数指定了具体的control file的location.所以移动了control file可在参数文件被open前直接改参数值Oracle明白了.(PFILE/SPFILE的具体使用此处不多累赘).