1 在sqlplus环境下以DBA或超级用户登录数据库
Sqplus/nolog--àconn sys/manager@myoracle as sysdba;
2 Shutdown immediate模式关闭数据库
Shutdown immediate;
3 物理移动数据文件到指定的目录(复制文件)
原路径:E:\oracle\product\10.2.0\oradata\myoracle
新路径:E:\oracle\product\10.2.0\oradata\newmyorcl
需要复制的文件
.ctl格式、.log文件、.dbf格式文件
4 逻辑移动数据文件的目录
1) 以startupmount 模式启动数据库
SQL>startup mount;
2) 开始修改逻辑目录
SQL>alterdatabase rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORACLE\USERS01.DBF' to'E:\ORACLE\PRODUCT\10.2.0\ORADATA\NEWMYORCL\USERS01.DBF';
…………………………
注意:在此步骤只能更改已移动的数据库文件,不能更改控制文件、日志文件和TEMP文件。
5 逻辑移动控制文件
1) 首先备份spfile文件的内容(spfile文件目录位置E:\oracle\product\10.2.0\db_1\dbs在dbs目录下),然后重启数据库
Startup;
然后从spfile文件创建pfile,然后在pfile文件里修改控制文件所对应的目录
create pfile=’/init.ora(数据库对应的init.ora文件,可以带路径)’ from spfile=‘数据库对应的init.ora文件,可以带路径’;
例:
create pfile='E:\oracle\product\10.2.0\db_1\database\initmyoracle.ora from
spfile='E:\oracle\product\10.2.0\db_1\dbs\SPFILEMYORACLE.ORA'
2)以pfile文件为参数文件启动数据库
SQL> startup pfile=’/init.ora’
然后再根据pfile文件创建spfile文件
create spfile='E:\oracle\product\10.2.0\db_1\database\SPFILEMYORACLE.ORA'from pfile='E:\oracle\product\10.2.0\db_1\database\initmyoracle.ora' ;
3)关闭数据库并以spfile文件为参数文件启动数据库(默认启动选择的就是spfile)
SQL> shutdownimmediate;
从spfile中进行启动,
SQL> startup;
6逻辑上重定位LOG文件
日志文件的移动方式有两种,一种是移动(rename方式),另一种是重建。下面仅举例说明移动方式。
移动Redo Log文件:
SQL>alter database rename file '/oradata/redo01.log' to'/oratest/redo01.log" ;
SQL>alter database rename file '/oradata/redo02.log' to'/oratest/redo02.log" ;
SQL>alter database rename file '/oradata/redo03.log' to'/oratest/redo03.log" ;
7 重建系统临时(temp)文件系统
在移动数据库表空间时,TEMP文件是不能被移动的,可以重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。再删除原来的TEMP表空间,达到移动表空间的目的。
SQL>create temporary tablespace TEMP02 tempfile ‘/oratest/temp02.dbf’ size500m extent management local uniform size 10m;
SQL>alter database default temporary tablespace TEMP02;
确认创建设置成功后,再删除原来的TEMP文件。
SQL>drop tablespace TEMP including contents and datafiles;
8测试数据库
重启ORACLE数据
$ sqlplus “sys/manager as sysdba”
SQL> startup;
SQL> show sga;