Oracle 数据文件迁移

背景

      这两天做一个oracle数据库迁移,以前都是用exp、imp来走,这次用到了expdp、impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘空间不足了这种情况。特把过程列下,此次懒惰,没有试验。应该差不多。以下为linux环境下,不解释命令了。同时也把sqlserver、mysql的总结了下。

过程

  1. xhell4链接,切换Oracle用户。su - oracle 
  2. sqlplus / as sysdba(windows下不知为何还不大行,得用nolog,再用conn)
  3. 先看看当前有哪些数据文件 SQL> select name from v$datafile; 看到结果里有个/u01/app/oracle/oradata/sid/TEST.dbf
  4. 关闭数据库 SQL> shutdown immediate; SQL> exit;
  5. 用oracle用户拷贝文件 [oracle@my]$ mv /u01/app/oracle/oradata/sid/TEST.dbf /u02/app/oracle/oradata/sid/
  6. 拷贝完毕后再执行执行sqlplus / as sysdba,进入sqlplus SQL> startup mount;(此处还不能open,应该是启动后就没法执行下面命令了,我猜的,没试验。)
  7. SQL> alter database rename file '/u01/app/oracle/oradata/sid/TEST.dbf' to '/u02/app/oracle/oradata/sid/TEST.dbf';
  8. SQL> select name from v$datafile, 这时候看到的结果了已经没有了/u01/app/oracle/oradata/sid/TEST.dbf ,取而代之的是/u02/app/oracle/oradata/sid/TEST.dbf
  9. 然后启动数据库 SQL> alter database open。
原文地址:https://www.cnblogs.com/sddychj/p/9553108.html