移動資料檔案、系統表空間檔案、臨時表空間檔案

gholay發表於2014-01-05

1.移動資料檔案實驗
首先使表空間離線,,複製資料檔案到計劃的位置,重定義資料檔案,使表空間聯機,再檢視是否已經成功移動資料檔案
SQL> alter  tablespace test_index offline;
表空間已更改。
SQL> selecttablespace_name,status,contents from dba_tablespaces;
TABLESPACE_NAME                STATUS    CONTENTS
------------------------------ ------------------
SYSTEM                         ONLINE    PERMANENT
SYSAUX                         ONLINE    PERMANENT
UNDOTBS1                       ONLINE    UNDO
TEMP                           ONLINE    TEMPORARY
USERS                          ONLINE    PERMANENT
EXAMPLE                        ONLINE    PERMANENT
test                           ONLINE    PERMANENT
TEST_INDEX                     OFFLINE   PERMANENT
TEST_UNDO                      ONLINE    UNDO
TEST_TEMP                     ONLINE    TEMPORARY
SQL> select  file#,name,status from  v$datafile;
    FILE# NAME                                              STATUS
------------------------------------------------------------ -------
        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM
        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE
        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE
        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE
        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE
        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE
        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE
        8 D:\DISK6\MOON\TEST_INDEX.DBF                      OFFLINE
        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE
SQL> host copyd:\disk6\moon\test_index.dbf d:\disk4\moon\test_index.dbf
已複製         1 個檔案。
SQL> alter  tablespace test_index rename datafile  'd:\disk6\moon\test_index.dbf'  to 'd:\disk4\moon\test_index.dbf';
表空間已更改。
SQL> alter   tablespace test_index online;
表空間已更改。
SQL> select file#,name,status fromv$datafile;
    FILE# NAME                                              STATUS
---------- ---------------------------------------------------------
        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM
        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE
        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE
        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE
        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE
        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE
        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE
        8 D:\DISK4\MOON\TEST_INDEX.DBF                       ONLINE
        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE
#########################################################################
2.移動系統表空間資料檔案
首先將資料庫啟動到MOUNT狀態 ,複製資料檔案到指定位置,然後重定向資料檔案,成功以後開啟資料庫,檢查是否已經更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area  431038464 bytes
Fixed Size                  1375088 bytes
Variable Size             318768272 bytes
Database Buffers          104857600 bytes
Redo Buffers                6037504 bytes
資料庫裝載完畢。
SQL> host copy C:\ORCL\SYSTEM01.DBF  e:\disk1\
已複製         1 個檔案。
SQL> alter  database rename file 'C:\ORCL\SYSTEM01.DBF'  to  'e:\disk1\system01.dbf';
資料庫已更改。
SQL> alter database open;
SQL> select file#,name,status fromv$datafile;
    FILE# NAME                                              STATUS
------------------------------------------------------------ -------
        1 E:\DISK1\SYSTEM01.DBF                              SYSTEM
        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE
        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE
        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE
        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE
        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE
        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE
        8 D:\DISK4\MOON\TEST_INDEX.DBF                       ONLINE
        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE
#######################################################################

3.刪除表空間及資料檔案
可以同時刪除表空間和資料檔案   "test"是因為建表空間時名字加了雙引號為小寫test,  預設為大寫
刪除表空間,不作業系統層面刪除資料檔案:
SQL> drop tablespace "test";
表空間已刪除。
SQL> select file#,name,status fromv$datafile;
    FILE# NAME                                              STATUS
---------- ---------------------------------------------------------
        1 E:\DISK1\SYSTEM01.DBF                              SYSTEM
        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE
        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE
        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE
        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE
        8 D:\DISK4\MOON\TEST_INDEX.DBF                       ONLINE
        9 D:\DISK7\MOON\TEST_UNDO.DBF                       ONLINE
刪除表空間同時刪除資料檔案:
SQL> drop tablespace test_index including contents and datafiles;
表空間已刪除。
SQL> select file#,name,status fromv$datafile;
    FILE# NAME                                              STATUS
---------- ---------------------------------------------------------
        1 E:\DISK1\SYSTEM01.DBF                              SYSTEM
        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE
        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF   ONLINE
        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE
        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE
        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE
#######################################################################################
4.移動臨時表空間及資料檔案:
這個其實沒必要這樣做,可以直接新建一個臨時表空間,然後把切換到新建的臨時表空間上。參照新建並切換UNDO表空間的操作。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area  431038464 bytes
Fixed Size                  1375088 bytes
Variable Size             331351184 bytes
Database Buffers           92274688 bytes
Redo Buffers                6037504 bytes
資料庫裝載完畢。
SQL> alter database rename file'c:\ORCL\TEMP01.DBF' to 'e:\sysoradata\temp01.dbf';
資料庫已更改。
SQL> host copy  c:\orcl\temp01.dbfe:\sysoradata\temp01.dbf
已複製         1 個檔案。
SQL> alter database open;
資料庫已更改。
SQL> select name,status from v$tempfile;
NAME                           STATUS
------------------------------ -------
E:\SYSORADATA\TEMP01.DBF       ONLINE

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29196873/viewspace-1067294/,如需轉載,請註明出處,否則將追究法律責任。

相關文章