oracle常用移动文件的方法
oracle常用移动文件的方法
--- 移动表空间文件
1、查询表空间的文件名称
SQL> select d.name from v$datafile d join v$tablespace t using(ts#) where name ='XPORT';
2、关闭数据库
SQL> shutdown immediate;
3、转移数据文件
SQL> ! mv /u04/oradata/xport.dbf /u06/oradata;
4、启动数据库
SQL> startup mount;
5、改变控制文件中的路径引用名称,指向新的路径
SQL> alter database rename file '/u04/oradata/xport.dbf' to '/u06/oradata/xport.dbf';
6、打开数据库
SQL> alter database open;
7、建立更新过的控制文件备份副本
SQL> alter database backup controlfile to trace;
-- 移动联机日志
1、查询联机日志
SQL> select group#,member from v$logfile order by group#,member;
2、关闭数据库
SQL> shutdown immediate;
3、移动文件
SQL> ! mv /u01/app/oracle/oradata/redo0[1-3].log /u04/data
SQL> startup mount
4、rename
SQL> alter database rename file '/u01/app/oracle/oradata/redo01.log' to '/u04/data/redo01.log';
SQL> alter database rename file '/u01/app/oracle/oradata/redo02.log' to '/u04/data/redo02.log';
SQL> alter database rename file '/u01/app/oracle/oradata/redo03.log' to '/u04/data/redo03.log';
5、打开数据库
SQL> alter databse open;
-- 移动控制文件
SQL> select name,value from v$spparameter where name='control_files';
SQL> show parameter control_files;
SQL> alter system set control_files = '/u02/oradata/control01.ctl', '/u03/oradata/control02.ctl', '/u04/oradata/control03.ctl' scope = spfile;
SQL> shutdown immediate;
SQL> ! mv /u01/app/oracle/oradata/control01.ctl /u02/oradata;
SQL> ! mv /u01/app/oracle/oradata/control02.ctl /u03/oradata;
SQL> ! mv /u01/app/oracle/oradata/control03.ctl /u04/oradata;
SQL> startup;
SQL> select name, value from v$spparameter where name = 'control_files';
从别的书上看来的,目前移动dbf文件自己跑过了没啥问题,其他的没测试过