Oracle 12C 新特性之線上重新命名、遷移活躍的資料檔案
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.
-- 檢查資料檔案的確存在原路徑下
[oracle@12c ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[oracle@12c 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.
-- 核實資料檔案是否存在遷移路徑下
[oracle@12c 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
[oracle@12c pdb01]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/new
[oracle@12c 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 會在其中記錄具體的行為。
一、 重新命名資料檔案:
-- 注意,我這裡是在名為 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.
-- 檢查資料檔案的確存在原路徑下
[oracle@12c ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[oracle@12c 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.
-- 核實資料檔案是否存在遷移路徑下
[oracle@12c 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
[oracle@12c pdb01]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/new
[oracle@12c 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 會在其中記錄具體的行為。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2139013/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE12C新特性之線上遷移活躍的資料檔案Oracle
- Oracle 12C 新特性之資料檔案線上遷移Oracle
- Oracle12C新特性-線上重新命名遷移資料檔案(一)Oracle
- oracle 12c 新特性之一:線上重新命名資料檔案Oracle
- Oracle12c新特性(1)線上重新命名檔案和遷移檔案Oracle
- 12c新特性,線上move資料檔案
- 12c pdb線上移動資料檔案或者重新命名資料檔案
- Oracle 12C 新特性之表分割槽或子分割槽的線上遷移Oracle
- oracle 12c R1 可以線上對資料檔案重新命名或者移動資料檔案位置Oracle
- 12C關於CDB、PDB線上移動資料檔案、線上重新命名資料檔案的操作說明
- 重新命名與遷移聯機資料檔案
- oracle 資料檔案遷移Oracle
- oracle資料檔案遷移Oracle
- 線上遷移表空間資料檔案
- Oracle_遷移資料檔案Oracle
- 資料檔案的遷移
- 資料檔案遷移
- Oracle 12c 新特性之 資料庫內歸檔(In-Database Archiving)Oracle資料庫Database
- Oracle 表空間資料檔案遷移Oracle
- ORACLE 重新命名資料檔案Oracle
- Oracle 12c新特性之Sequence的Session特性OracleSession
- 資料庫檔案的遷移資料庫
- 利用php實現檔案遷移重新命名PHP
- 線上移動資料檔案
- windows下oracle資料檔案的遷移和規範WindowsOracle
- 磁碟空間不足,線上移動Oracle的資料檔案Oracle
- Oracle 12c 新特性之 PDB 級別閃回資料庫Oracle資料庫
- Oracle 12C 資料泵新特性測試Oracle
- (個人)Oracle 表空間資料檔案遷移(轉)Oracle
- Oracle 12c 新特性之 temp undoOracle
- oracle之 RAC本地資料檔案遷移至ASMOracleASM
- [20181031]12c 線上移動資料檔案.txt
- Oracle 資料庫12c新特性總結(一)Oracle資料庫
- dataguard備庫的資料檔案的遷移
- oracle檔案遷移之datafile,relog file,tempfileOracle
- 遷移資料庫檔案到ASM資料庫ASM
- Oracle 12C 新特性之級聯truncateOracle
- Oracle 12C 新特性之 恢復表Oracle