Oracle 12c 多租戶 CDB 與 PDB之 shared undo 與 Local undo 切換
undo 在12C R1版本中只支援Global Shared Undo模式, 所有container共享一個UNDO表空間, 目前保留這種模式只是為了升級過渡, 在12C R2引入了PDB Local UNDO模式,每個container都有自己的UNDO 表空間, 對於RAC是每個例項每個container都有自己的UNDO表空間, 這也正是推薦的.在DBCA時會有local undo選項,且預設勾選。
local undo 模式的好處:
1.減少undo表空間的爭用,同時方便拔插
2.只有使用local undo才支援下面的新特性: Refresh PDB, Flashback PDB ,( Hot Clone, Relocate PDB in open read/write mode)
3.point-in-time recovery PDB
一、 local undo 轉 shared undo :
檢視資料庫是否開啟 local undo ,如果 PROPERTY_VALUE 為 true 表示已經開啟。
SQL>
col PROPERTY_NAME for a25;
col PROPERTY_VALUE for a25;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------- -------------------------
LOCAL_UNDO_ENABLED TRUE
SQL>shutdown immediate;
SQL>startup upgrade;
SQL>show con_nameCON_NAME
------------------------------
CDB$ROOT
SQL>alter database local undo off;
SQL>shutdown immediate;
SQL>startup;
SQL>show pdbs
SQL>alter session set container=pdb01;
e/o1_mf_undotbs1_djszmxkc_.dbf
SQL>select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SQL>
col PROPERTY_NAME for a30;
col PROPERTY_VALUE for a20;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------- -------------------------
LOCAL_UNDO_ENABLED FALSE
SQL>
col file_name for a70;
select a.CON_ID,a.TABLE CON_ID TABLESPACE_NAME FILE_NAME
from cdb_tablespaces a,CDB_DATA_FILES b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME and a.con_id=b.con_id and a.CONTENTS='UNDO';
--------- ------------------------------ ----------------------------------------
3 UNDOTBS1 /home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/
datafile/o1_mf_undotbs1_djszmxkc_.dbfSPACE_NAME,b.FILE_NAME
SQL>drop tablespace UNDOTBS1 including contents and datafiles; ( 切記PDB中執行 )
SQL>select name from v$datafile where name like '%undo%';
NAME
-----------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_undotbs1_djsyyjlk_.dbf > 現在已經是 cdb 中的undo datafile 了。
二、 shared undo 轉 local undo :
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> show con_name >確認是 cdb,如果不是 cdb,則 alter session set container=cdb$root;
SQL> alter database local undo on;
SQL> shutdown immediate;
SQL> startup;
SQL>show pdbs
SQL>alter session set container=pdb01;
SQL>select name from v$datafile where name like '%undo%';
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_undo_1_djz4jq1z_.dbf
SQL>
col PROPERTY_NAME for a30;
col PROPERTY_VALUE for a20;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------
LOCAL_UNDO_ENABLED TRUE
說明:開啟loacl undo後,自動為當前的PDB建立undo表空間,同時如果以前再新建立pdb,系統將自動建立自己的undo表空間。建立表空間的名字與大小由 PDB$SEED 中的配置資訊決定的。
local undo 模式的好處:
1.減少undo表空間的爭用,同時方便拔插
2.只有使用local undo才支援下面的新特性: Refresh PDB, Flashback PDB ,( Hot Clone, Relocate PDB in open read/write mode)
3.point-in-time recovery PDB
一、 local undo 轉 shared undo :
檢視資料庫是否開啟 local undo ,如果 PROPERTY_VALUE 為 true 表示已經開啟。
SQL>
col PROPERTY_NAME for a25;
col PROPERTY_VALUE for a25;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------- -------------------------
LOCAL_UNDO_ENABLED TRUE
SQL>shutdown immediate;
SQL>startup upgrade;
SQL>show con_nameCON_NAME
------------------------------
CDB$ROOT
SQL>alter database local undo off;
SQL>shutdown immediate;
SQL>startup;
SQL>show pdbs
SQL>alter session set container=pdb01;
e/o1_mf_undotbs1_djszmxkc_.dbf
SQL>select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SQL>
col PROPERTY_NAME for a30;
col PROPERTY_VALUE for a20;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------- -------------------------
LOCAL_UNDO_ENABLED FALSE
SQL>
col file_name for a70;
select a.CON_ID,a.TABLE CON_ID TABLESPACE_NAME FILE_NAME
from cdb_tablespaces a,CDB_DATA_FILES b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME and a.con_id=b.con_id and a.CONTENTS='UNDO';
--------- ------------------------------ ----------------------------------------
3 UNDOTBS1 /home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/
datafile/o1_mf_undotbs1_djszmxkc_.dbfSPACE_NAME,b.FILE_NAME
SQL>drop tablespace UNDOTBS1 including contents and datafiles; ( 切記PDB中執行 )
SQL>select name from v$datafile where name like '%undo%';
NAME
-----------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_undotbs1_djsyyjlk_.dbf > 現在已經是 cdb 中的undo datafile 了。
二、 shared undo 轉 local undo :
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> show con_name >確認是 cdb,如果不是 cdb,則 alter session set container=cdb$root;
SQL> alter database local undo on;
SQL> shutdown immediate;
SQL> startup;
SQL>show pdbs
SQL>alter session set container=pdb01;
SQL>select name from v$datafile where name like '%undo%';
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_undo_1_djz4jq1z_.dbf
SQL>
col PROPERTY_NAME for a30;
col PROPERTY_VALUE for a20;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------
LOCAL_UNDO_ENABLED TRUE
說明:開啟loacl undo後,自動為當前的PDB建立undo表空間,同時如果以前再新建立pdb,系統將自動建立自己的undo表空間。建立表空間的名字與大小由 PDB$SEED 中的配置資訊決定的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2138639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c 多租戶 CDB 與 PDB 備份Oracle
- Oracle12c多租戶如何連線到CDB或PDB、CDB與PDB容器切換Oracle
- Oracle 12c 多租戶在 CDB 中 Plug A PDB,Unplugging A PDBOracle
- Oracle 12c 多租戶 CDB 與 PDB 級別 expdb 與 impdb(表、使用者、全庫)Oracle
- Oracle 12c 多租戶 手工建立 pdb 與 手工刪除 pdbOracle
- Oracle 12c 多租戶配置和修改 CDB 和 PDB 引數Oracle
- Oracle12c多租戶CDB 與 PDB 引數檔案位置探討、查詢 CDB 與 PDB 不同值的引數Oracle
- 12C多租戶關於CDB、PDB的常用SQL語句SQL
- 【ASK_ORACLE】Oracle 12c之CDB與PDB的備份與恢復(一)什麼是CDB與PDB?Oracle
- ORACLE 12C新特性——CDB與PDBOracle
- 【BAK_ORACLE】Oracle 12c之CDB與PDB的備份與恢復(三)CDB與PDB的備份方式Oracle
- Oracle 12c多租戶特性詳解:PDB 的建立、克隆與維護Oracle
- Oracle 12c多租戶特性詳解:PDB 的出與入 InAndOutOracleNaN
- Oracle 12c多租戶特性詳解:PDB 的備份與恢復Oracle
- Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)Oracle模式
- oracle 切換undo tablespace小結Oracle
- 12C關於CDB、PDB 回滾undo表空間的總結
- ORACLE線上切換undo表空間Oracle
- Oracle undo表空間切換(ZT)Oracle
- Oracle12c多租戶如何啟動關閉CDB或PDB (PDB自動啟動)Oracle
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- 多租戶:在Oracle12.2中 從Non-CDB遷移到PDB,從PDB遷移另一個CDB中Oracle
- 【RECO_ORACLE】Oracle 12c之CDB與PDB的備份與恢復(四)PDB的幾種恢復方式Oracle
- Oracle 12c 新特性之 temp undoOracle
- Oracle 12c 多租戶專題|CDB後設資料內幕Oracle
- Oracle切換undo表空間操作步驟Oracle
- Oracle 12c 新特性 - 臨時表undo(TEMP UNDO)Oracle
- Oracle 12c系列(七) | Non-CDB轉換為PDBOracle
- Oracle多租戶管理員指南-CDB共性概念03Oracle
- oracle 12C 新特性之臨時undo控制Oracle
- undo線上切換步驟筆記筆記
- 4.3.2.4 關於CDB UNDO模式模式
- Oracle 12C RMAN transport tablespace from PDB of RAC CDB to remote PDBOracleREM
- Oracle 12C RMAN Duplicating the Whole RAC CDB to local RAC CDBOracle
- Oracle 12C RMAN Duplicating the PDB to remote CDBOracleREM
- Oracle 12c CDB&PDB 基本維護Oracle
- Part III PDB建立概述-Oracle多租戶管理員指南Oracle
- 自動undo表空間模式下切換新的undo表空間模式