关于更改Oracle数据文件(包括系统数据文件)位置,网上的方法很多,但我是初学者,理解不够透彻,测试的时候急于求成,以至于试验多次才成功,原因是没有注意顺序,在此总结一下,错误之处请
多包涵,也请高手多指教。过程其实很简单。
环境win2003+Oracle10
数据文件变更前:C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\
数据文件变更后:D:\ORA_TEST\
修改的数据文件及路径查询方法如下:
SQL>select name from v$controlfile;
SQL>select name from v$datafile;--注意还有未显示的数据文件:TEMP01.DBF;
SQL>select member from v$logfile;
创建配置文件(执行命令前先创建目录,如: D:\ORA_TEST)
create pfile='d:\ora_test\old.ora' from spfile;
修改控制文件的路径,用记事本打开d:\ora_test\old.ora,将
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control01.ctl'
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control02.ctl'
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control03.ctl'
修改为
*.control_files='d:\ora_test/\control01.ctl'
*.control_files='d:\ora_test/\control02.ctl'
*.control_files='d:\ora_test/\control03.ctl'
然后另存为new.ora,当然直接保存也可以,建议还是留个备份。
SQL> shutdown immediate;
--拷贝控制文件(*.CTL)到新路径
--拷贝数据文件(*.DBF)到新路径
--拷贝日志文件(*.LOG)到新路径
SQL> startup mount pfile='d:\ora_test\new.ora';
修改数据文件路径
SQL>select name from v$datafile;--注意还有未显示的数据文件:TEMP01.DBF;
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\SYSTEM01.DBF' to 'D:\ora_test\SYSTEM01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\UNDOTBS01.DBF' to 'D:\ora_test\UNDOTBS01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\SYSAUX01.DBF' to 'D:\ora_test\SYSAUX01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\USERS01.DBF' to 'D:\ora_test\USERS01.DBF';
--注意数据文件还有:TEMP01.DBF:
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\TEMP01.DBF' to 'D:\ora_test\TEMP01.DBF';
修改日志文件
SQL>select member from v$logfile;
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO03.LOG' to 'D:\ora_test\REDO03.LOG';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO02.LOG' to 'D:\ora_test\REDO02.LOG';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO01.LOG' to 'D:\ora_test\REDO01.LOG';
alter database open;
注意:文件路径虽然已经修改完毕,数据库可以打开,但每次只能用指定路径的配置文件来启动数据库,遇到启动时自动装载数据库肯定会出错。
create spfile from pfile='d:\ora_test\new.ora';
至此已经全部修改完毕,重新启动试试
SQL> shutdown immediate;
SQL> startup;
OK,正常启动。
以此顺序进行修改,相当于对源路径的文件没有任何修改,若还想使用旧路径和旧文件,只需执行create spfile from pfile='d:\ora_test\old.ora';就可以了。
多包涵,也请高手多指教。过程其实很简单。
环境win2003+Oracle10
数据文件变更前:C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\
数据文件变更后:D:\ORA_TEST\
修改的数据文件及路径查询方法如下:
SQL>select name from v$controlfile;
SQL>select name from v$datafile;--注意还有未显示的数据文件:TEMP01.DBF;
SQL>select member from v$logfile;
创建配置文件(执行命令前先创建目录,如: D:\ORA_TEST)
create pfile='d:\ora_test\old.ora' from spfile;
修改控制文件的路径,用记事本打开d:\ora_test\old.ora,将
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control01.ctl'
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control02.ctl'
*.control_files='c:\oracle\product\10.2.0/oradata/ele/\control03.ctl'
修改为
*.control_files='d:\ora_test/\control01.ctl'
*.control_files='d:\ora_test/\control02.ctl'
*.control_files='d:\ora_test/\control03.ctl'
然后另存为new.ora,当然直接保存也可以,建议还是留个备份。
SQL> shutdown immediate;
--拷贝控制文件(*.CTL)到新路径
--拷贝数据文件(*.DBF)到新路径
--拷贝日志文件(*.LOG)到新路径
SQL> startup mount pfile='d:\ora_test\new.ora';
修改数据文件路径
SQL>select name from v$datafile;--注意还有未显示的数据文件:TEMP01.DBF;
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\SYSTEM01.DBF' to 'D:\ora_test\SYSTEM01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\UNDOTBS01.DBF' to 'D:\ora_test\UNDOTBS01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\SYSAUX01.DBF' to 'D:\ora_test\SYSAUX01.DBF';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\USERS01.DBF' to 'D:\ora_test\USERS01.DBF';
--注意数据文件还有:TEMP01.DBF:
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\TEMP01.DBF' to 'D:\ora_test\TEMP01.DBF';
修改日志文件
SQL>select member from v$logfile;
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO03.LOG' to 'D:\ora_test\REDO03.LOG';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO02.LOG' to 'D:\ora_test\REDO02.LOG';
alter database rename file 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ELE\REDO01.LOG' to 'D:\ora_test\REDO01.LOG';
alter database open;
注意:文件路径虽然已经修改完毕,数据库可以打开,但每次只能用指定路径的配置文件来启动数据库,遇到启动时自动装载数据库肯定会出错。
create spfile from pfile='d:\ora_test\new.ora';
至此已经全部修改完毕,重新启动试试
SQL> shutdown immediate;
SQL> startup;
OK,正常启动。
以此顺序进行修改,相当于对源路径的文件没有任何修改,若还想使用旧路径和旧文件,只需执行create spfile from pfile='d:\ora_test\old.ora';就可以了。