ITPub博客

首页 > 数据库 > Oracle > 更换数据文件的位置/名字(system表空间数据文件除外)

更换数据文件的位置/名字(system表空间数据文件除外)

原创 Oracle 作者:刘锡亚 时间:2017-04-06 11:36:01 0 删除 编辑
  1. 方法一: 在sqlplus中操作 (需要手工拷贝)
  2. 首先要在数据库open状态下操作,将需要变动的表空间数据文件offline;操作系统层面拷贝;rename

    点击(此处)折叠或打开

    1. SQL> select file_name,file_id,tablespace_name from dba_data_files;

    2. FILE_NAME FILE_ID TABLESPACE
    3. -------------------------------------------------- ---------- ----------
    4. /u01/app/oracle/oradata/PROD1/users01.dbf 4 USERS
    5. /u01/app/oracle/oradata/PROD1/undotbs01.dbf 3 UNDOTBS1
    6. /u01/app/oracle/oradata/PROD1/sysaux01.dbf 2 SYSAUX
    7. /u01/app/oracle/oradata/PROD1/system01.dbf 1 SYSTEM
    8. /u01/app/oracle/oradata/PROD1/example01.dbf 5 EXAMPLE
    9. /home/oracle/test01.dbf 6 TEST01
    10. /u01/app/oracle/oradata/PROD1/test02.dbf 7 TEST02

    11. 7 rows selected.

    12. SQL> alter database datafile 6 offline;

    13. Database altered.

    14. SQL> !cp /home/oracle/test01.dbf /u01/app/oracle/oradata/PROD1/test01.dbf
    15. SQL> alter tablespace test01 rename datafile '/home/oracle/test01.dbf' to '/u01/app/oracle/oradata/PROD1/test01.dbf';

    16. Tablespace altered.

    17. SQL> select file_name,file_id,tablespace_name from dba_data_files;

    18. FILE_NAME FILE_ID TABLESPACE
    19. -------------------------------------------------- ---------- ----------
    20. /u01/app/oracle/oradata/PROD1/users01.dbf 4 USERS
    21. /u01/app/oracle/oradata/PROD1/undotbs01.dbf 3 UNDOTBS1
    22. /u01/app/oracle/oradata/PROD1/sysaux01.dbf 2 SYSAUX
    23. /u01/app/oracle/oradata/PROD1/system01.dbf 1 SYSTEM
    24. /u01/app/oracle/oradata/PROD1/example01.dbf 5 EXAMPLE
    25. /u01/app/oracle/oradata/PROD1/test01.dbf 6 TEST01
    26. /u01/app/oracle/oradata/PROD1/test02.dbf 7 TEST02

    27. 7 rows selected.
    28. SQL> alter database datafile 6 online;


    或者数据库在mount状态下

    点击(此处)折叠或打开

    1. SQL> startup mount;
    2. ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
    3. ORACLE instance started.

    4. Total System Global Area 217157632 bytes
    5. Fixed Size 2251816 bytes
    6. Variable Size 159384536 bytes
    7. Database Buffers 50331648 bytes
    8. Redo Buffers 5189632 bytes
    9. Database mounted.
    10. SQL> !cp /u01/app/oracle/oradata/PROD1/test01.dbf /home/oracle/test01.dbf

    11. SQL> alter database rename file '/u01/app/oracle/oradata/PROD1/test01.dbf' to '/home/oracle/test01.dbf';

    12. Database altered.

    13. SQL> alter database open;

    14. Database altered.

    15. SQL> select file_id,file_name, status from dba_data_files;

    16.    FILE_ID FILE_NAME STATUS
    17. ---------- -------------------------------------------------- ---------
    18.          4 /u01/app/oracle/oradata/PROD1/users01.dbf AVAILABLE
    19.          3 /u01/app/oracle/oradata/PROD1/undotbs01.dbf AVAILABLE
    20.          2 /u01/app/oracle/oradata/PROD1/sysaux01.dbf AVAILABLE
    21.          1 /u01/app/oracle/oradata/PROD1/system01.dbf AVAILABLE
    22.          5 /u01/app/oracle/oradata/PROD1/example01.dbf AVAILABLE
    23.          6 /home/oracle/test01.dbf AVAILABLE
    24.          7 /u01/app/oracle/oradata/PROD1/test02.dbf AVAILABLE

    25. 7 rows selected.

  3. 方法二:rman自动拷贝

    点击(此处)折叠或打开

    1. RMAN> run{
    2. 2> allocate channel c1 device type disk;
    3. 3> sql "alter tablespace test01 offline immediate";
    4. 4> set newname for datafile '/home/oracle/test01.dbf' to '/u01/app/oracle/oradata/PROD1/test01.dbf';
    5. 5> restore tablespace test01;
    6. 6> recover tablespace test01;
    7. 7> sql "alter tablespace test01 online";
    8. 8> }

    9. using target database control file instead of recovery catalog
    10. allocated channel: c1
    11. channel c1: SID=33 device type=DISK

    12. sql statement: alter tablespace test01 offline immediate

    13. executing command: SET NEWNAME

    14. Starting restore at 06-APR-17

    15. channel c1: starting datafile backup set restore
    16. channel c1: specifying datafile(s) to restore from backup set
    17. channel c1: restoring datafile 00006 to /u01/app/oracle/oradata/PROD1/test01.dbf
    18. channel c1: reading from backup piece /u01/app/oracle/product/11.2.0/dbhome_1/dbs/02s10ale_1_1
    19. channel c1: piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/02s10ale_1_1 tag=TAG20170406T091318
    20. channel c1: restored backup piece 1
    21. channel c1: restore complete, elapsed time: 00:00:01
    22. Finished restore at 06-APR-17

    23. Starting recover at 06-APR-17

    24. starting media recovery
    25. media recovery complete, elapsed time: 00:00:00

    26. Finished recover at 06-APR-17

    27. sql statement: alter tablespace test01 online
    28. released channel: c1

  4. 验证

    点击(此处)折叠或打开

    1. SQL> select file_id,file_name,status from dba_data_files;

    2.    FILE_ID FILE_NAME STATUS
    3. ---------- -------------------------------------------------- ---------
    4.          4 /u01/app/oracle/oradata/PROD1/users01.dbf AVAILABLE
    5.          3 /u01/app/oracle/oradata/PROD1/undotbs01.dbf AVAILABLE
    6.          2 /u01/app/oracle/oradata/PROD1/sysaux01.dbf AVAILABLE
    7.          1 /u01/app/oracle/oradata/PROD1/system01.dbf AVAILABLE
    8.          5 /u01/app/oracle/oradata/PROD1/example01.dbf AVAILABLE
    9.          6 /home/oracle/test01.dbf AVAILABLE
    10.          7 /u01/app/oracle/oradata/PROD1/test02.dbf AVAILABLE

    11. 7 rows selected.


    12. SQL> create table t3 (x) tablespace test01 as select rownum from dual connect by rownum<= 10;

    13. Table created


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31405405/viewspace-2136742/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: RMAN异机恢复实验
请登录后发表评论 登录
全部评论

注册时间:2016-10-25

  • 博文量
    13
  • 访问量
    18653