Oracle 12C 新特性之線上重新命名、遷移活躍的資料檔案

來源:互聯網
上載者:User

標籤:alert   移動   move   bsp   12c   tab   cte   ada   儲存   

Oracle 資料庫 12c 版本中對資料檔案的遷移或重新命名不再需要太多繁瑣的步驟,可以使用 ALTER DATABASE MOVE DATAFILE 這樣的 SQL 陳述式對資料檔案進行線上重新命名和移動。而當此資料檔案正在傳輸時,終端使用者可以執行查詢,DML以及 DDL 方面的任務。另外,資料檔案可以在存放裝置間遷移,如從非 ASM 遷移至 ASM,反之亦然。

一、 重新命名資料檔案:

-- 注意,我這裡是在名為 PDB01 的 pdb 容器內示範的。 
SQL> show con_name
CON_NAME
------------------------------
PDB01
-- 查看原資料檔案名
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.
-- 重新命名
SQL> ALTER DATABASE MOVE DATAFILE ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf‘ TO 
‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf‘;
Database altered.
-- 檢查重新命名結果
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.

二、遷移資料檔案到其他路徑

-- 注意,我這裡是在名為 PDB01 的 pdb 容器內示範的。 
SQL> show con_name
CON_NAME
------------------------------
PDB01
-- 查看資料檔案原路徑
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.
-- 檢查資料檔案的確存在原路徑下
[[email protected] ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[[email protected] pdb01]$ ll  bbb*
total 769412
-rw-r-----. 1 oracle oinstall   2105344 May 13 04:22 bbb01.dbf
-rw-r-----. 1 oracle oinstall   2105344 May 13 04:22 bbb02.dbf
-- 遷移資料檔案到新路徑
SQL>ALTER  DATABASE  MOVE  DATAFILE  ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf‘  TO ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/new/bbb02.dbf‘;
Database altered.
-- 核實資料檔案是否存在遷移路徑下 
[[email protected] pdb01]$ ll
total 769412
-rw-r-----. 1 oracle oinstall   2105344 May 13 04:22 bbb01.dbf
drwxr-x---. 2 oracle oinstall      4096 May 13 04:31 new
-rw-r-----. 1 oracle oinstall 387981312 May 13 04:15 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 272637952 May 13 04:30 system01.dbf
-rw-r-----. 1 oracle oinstall  67117056 May 12 07:02 temp01.dbf
-rw-r-----. 1 oracle oinstall 104865792 May 13 04:30 undotbs01.dbf
-rw-r-----. 1 oracle oinstall  14426112 May 13 04:10 users01.dbf
-rw-r-----. 1 oracle oinstall   5251072 May 12 06:42 users01.dbf.bak
[[email protected] pdb01]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/new
[[email protected] new]$ ll
total 2056
-rw-r-----. 1 oracle oinstall 2105344 May 13 04:31 bbb02.dbf
說明:遷移資料檔案到新路徑,自動完成了作業系統層面資料檔案的移動。

補充(其他幾種遷移類型):
1. 從非 ASM 遷移資料檔案至 ASM:
SQL>ALTER DATABASE MOVE DATAFILE ‘/u00/data/users_01.dbf‘ TO ‘+DG_DATA‘;
2. 將資料檔案從一個 ASM 磁碟群組遷移至另一個 ASM 磁碟群組:
SQL>ALTER DATABASE MOVE DATAFILE ‘+DG_DATA/DBNAME/DATAFILE/users_01.dbf ‘ TO ‘+DG_DATA_02‘;
3. 在資料檔案已存在於新路徑的情況下,以相同的命名將其覆蓋:
SQL>ALTER  DATABASE  MOVE  DATAFILE  ‘/u00/data/users_01.dbf‘  TO ‘/u00/data_new/users_01.dbf‘ REUSE;
4. 複製檔案到一個新路徑,同時在原路徑下保留其拷貝:
SQL>ALTER  DATABASE  MOVE  DATAFILE  ‘/u00/data/users_01.dbf‘  TO ‘/u00/data_new/users_01.dbf‘ KEEP;

當通過查詢 v$session_longops 動態視圖來移動檔案時,你可以監控這一過程。另外,
你也可以引用 alert.log,Oracle 會在其中記錄具體的行為。

Oracle 12C 新特性之線上重新命名、遷移活躍的資料檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.