一、复制移动数据文件 1)、获取数据库相关信息 首先要查看一下数据库的文件内容: sqlplus “ / as sysdba” ? select * from v$datafile; ? select * from v$controlfile ? select * from v$logfile; 2)、移动应用数据文件 shutdown immediate关闭数据库,拷贝数据文件到另外一个目录下。 3)、 修改数据库文件的位置 启动MOUNT模式 ? startup mount; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\SYSTEM01.DBF' to 'E:\ORACLE\ORADATA\ycl\SYSTEM01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\UNDOTBS01.DBF' to 'E:\ORACLE\ORADATA\ycl\UNDOTBS01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\CWMLITE01.DBF' to 'E:\ORACLE\ORADATA\ycl\CWMLITE01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\DRSYS01.DBF' to 'E:\ORACLE\ORADATA\ycl\DRSYS01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\EXAMPLE01.DBF' to 'E:\ORACLE\ORADATA\ycl\EXAMPLE01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\INDX01.DBF' to 'E:\ORACLE\ORADATA\ycl\INDX01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\ODM01.DBF' to 'E:\ORACLE\ORADATA\ycl\ODM01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\TOOLS01.DBF' to 'E:\ORACLE\ORADATA\ycl\TOOLS01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\USERS01.DBF' to 'E:\ORACLE\ORADATA\ycl\USERS01.DBF'; ? alter database rename file 'E:\ORACLE\ORADATA\VISDB\XDB01.DBF' to 'E:\ORACLE\ORADATA\ycl\XDB01.DBF'; 更改完后,查看数据文件的位置 ? select name from v$datafile;
(2)重建LOG文件 先重建一个组GROUP ,并添加一个LOG文件. alter database add logfile group 4('E:\oracle\oradata\ycl\log1.log') size 1M; alter database add logfile group 5('E:\oracle\oradata\ycl\log2.log') size 1M; 然后再删除其它的LOG组,要求必须保持有两个LOG文件组在系统中。 先交换日志 alter system switch logfile; alter system switch logfile; 删除group1,2,3 alter database drop logfile group 1; alter database drop logfile group 2; alter database drop logfile group 3;
首先要查看一下数据库的文件内容:
sqlplus “ / as sysdba”
? select * from v$datafile;
? select * from v$controlfile
? select * from v$logfile;
2)、移动应用数据文件
shutdown immediate关闭数据库,拷贝数据文件到另外一个目录下。
3)、 修改数据库文件的位置
启动MOUNT模式
? startup mount;
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\SYSTEM01.DBF' to 'E:\ORACLE\ORADATA\ycl\SYSTEM01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\UNDOTBS01.DBF' to 'E:\ORACLE\ORADATA\ycl\UNDOTBS01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\CWMLITE01.DBF' to 'E:\ORACLE\ORADATA\ycl\CWMLITE01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\DRSYS01.DBF' to 'E:\ORACLE\ORADATA\ycl\DRSYS01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\EXAMPLE01.DBF' to 'E:\ORACLE\ORADATA\ycl\EXAMPLE01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\INDX01.DBF' to 'E:\ORACLE\ORADATA\ycl\INDX01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\ODM01.DBF' to 'E:\ORACLE\ORADATA\ycl\ODM01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\TOOLS01.DBF' to 'E:\ORACLE\ORADATA\ycl\TOOLS01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\USERS01.DBF' to 'E:\ORACLE\ORADATA\ycl\USERS01.DBF';
? alter database rename file 'E:\ORACLE\ORADATA\VISDB\XDB01.DBF' to 'E:\ORACLE\ORADATA\ycl\XDB01.DBF';
更改完后,查看数据文件的位置
? select name from v$datafile;
再重新启动数据库:
? startup;
? create pfile='c:\init.ora' from spfile;
(2)修改init.ora文件中的内容:
*.control_files='\oradata\ocp\control01.ctl','\oradata\ocp\control02.ctl','\oradata\ocp\control03.ctl'
进行更改已经复制的目录位置。
Shutdown 数据库
(3)将控制文件复制过去,
将三个控制文件移动到上面所修改的的目录下。
(4) 倒入参数文件
以init.ora参数方式启动:
? startup pfile='c:\init.ora';
? create spfile from pfile='c:\init.ora';
? shutdown immediate;
? startup; 从spfile中进行启动。
这样控制文件移动工作就结束了。
(1)移动LOG文件
重新移动数据库文件与移动系统数据库文件是一样的方法,只是要求数据库必须是“startup mount”方式进行。
(2)重建LOG文件
先重建一个组GROUP ,并添加一个LOG文件.
alter database add logfile group 4('E:\oracle\oradata\ycl\log1.log') size 1M;
alter database add logfile group 5('E:\oracle\oradata\ycl\log2.log') size 1M;
然后再删除其它的LOG组,要求必须保持有两个LOG文件组在系统中。
先交换日志
alter system switch logfile;
alter system switch logfile;
删除group1,2,3
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;