Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)

lhrbest發表於2018-11-08



Oracle 12.1 中,在一個例項中的所有 PDB 只能共享同一個 UNDO 表空間 稱之為 Global Shared Undo 模式 即共享 Undo 模式 。目前保留 共享 Undo 模式 只是為了升級過渡 Oracle 12.2 引入了 PDB Local UNDO 模式 每個 PDB 都有各自的 undo 表空間。對於 RAC 是每個例項每個 container 都有自己的 UNDO 表空間 , 這也正是推薦的 這種新的管理機制就叫做本地 undo 模式。本地 undo 模式為新建資料庫的預設模式。在 DBCA 時會有 local undo 選項,且預設勾選。

 

本地 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 如果 PROPERTY_VALUE true 表示已經開啟。

col PROPERTY_NAME for a25;

col PROPERTY_VALUE for a25;

select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';

檢視 ROOT 和自己定義的 pdb 對應的 undo 表空間

SELECT CON_ID,NAME FROM V$TABLESPACE A WHERE A.NAME  LIKE 'UNDO%' ORDER BY CON_ID,TS# ;

 

1 local undo shared undo 的步驟:

SHUTDOWN IMMEDIATE;

STARTUP UPGRADE;

ALTER DATABASE LOCAL UNDO OFF;

SHUTDOWN IMMEDIATE;

STARTUP;

在轉換完成之後, 之前存在的 undo 表空間不會自動刪除。如果礙事, 需要進入每個 PDB 裡進行 手動刪除。

alter session set container=pdblhr1;

DROP TABLESPACE undotbs1;

 

1 shared undo local undo 的步驟:

SHUTDOWN IMMEDIATE;

STARTUP UPGRADE;

ALTER DATABASE LOCAL UNDO O N ;

SHUTDOWN IMMEDIATE;

STARTUP;

Oracle 自動為 每個 PDB 建立了一個 undo 表空間 在切換為本地 Undo 模式後, 新建立的資料庫也是執行在本地 undo 模式上。



  轉換為共享 undo 模式

1.1     查詢當前的模式:


SQL>COLUMN property_name FORMAT A30
SQL>COLUMN property_value FORMAT A30
SQL>SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED             TRUE
SQL>


1.2     檢視 ROOT 和自己定義的 pdb 對應的 undo 表空間


SELECT con_id, tablespace_name
FROM   cdb_tablespaces
WHERE  tablespace_name LIKE 'UNDO%'
ORDER BY con_id;
 
    CON_ID TABLESPACE_NAME
---------- ------------------------------
         1 UNDOTBS1
         3 UNDOTBS1
SQL>


  切換為共享 undo 模式


SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP UPGRADE;
ORACLE instance started.
Total System Global Area 1308622848 bytes
Fixed Size	    8792440 bytes
Variable Size	  822085256 bytes
Database Buffers	  469762048 bytes
Redo Buffers	    7983104 bytes
Database mounted.
Database opened.
SQL> ALTER DATABASE LOCAL UNDO OFF;
 
Database altered.
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP;
ORACLE instance started.
Total System Global Area 1308622848 bytes
Fixed Size	    8792440 bytes
Variable Size	  822085256 bytes
Database Buffers	  469762048 bytes
Redo Buffers	    7983104 bytes
Database mounted.
Database opened.
SQL>



2.1     驗證


SQL>COLUMN property_name FORMAT A30
SQL>COLUMN property_value FORMAT A30
SQL>SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';
 
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED             FALSE
SQL>


雖然已經不是本地 undo 模式了,但是之前存在的 undo 表空間不會自動刪除。如果礙事,要手動刪除。


SQL>SELECT con_id, tablespace_name
FROM   cdb_tablespaces
WHERE  tablespace_name LIKE 'UNDO%'
ORDER BY con_id;
 
    CON_ID TABLESPACE_NAME
---------- ------------------------------
         1 UNDOTBS1
         3 UNDOTBS1
SQL>


-- 刪除多餘的 undo 表空間


SQL>ALTER SESSION SET CONTAINER = pdb1;
SQL>SELECT file_name
FROM   dba_data_files
WHERE  tablespace_name = 'UNDOTBS1';
----------------------------------------------------------------------------------------------------
/u02/app/oracle/oradata/cdb1/pdb1/undotbs01.dbf
SQL>
SQL>DROP TABLESPACE undotbs1;
Tablespace dropped.
SQL>



隨著所有老的 undo 表空間被移除了,現在該例項就是執行在共享 undo 模式上了。

  切換為本地 undo 模式

利用上面的環境,重新切換回去。

查詢:可以看到是執行在共享 undo 模式上,而且只有一個 undo 表空間。


SQL>SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED             FALSE
SQL>SELECT con_id, tablespace_name
FROM   cdb_tablespaces
WHERE  tablespace_name LIKE 'UNDO%'
ORDER BY con_id;
    CON_ID TABLESPACE_NAME
---------- ------------------------------
         1 UNDOTBS1
SQL>


3.1     切換為本地 undo 模式

和切換為共享 undo 模式步驟相同。


SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP UPGRADE;
ORACLE instance started.
Total System Global Area 1308622848 bytes
Fixed Size	    8792440 bytes
Variable Size	  822085256 bytes
Database Buffers	  469762048 bytes
Redo Buffers	    7983104 bytes
Database mounted.
Database opened.
SQL> ALTER DATABASE LOCAL UNDO ON;
Database altered.
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP;
ORACLE instance started.
Total System Global Area 1308622848 bytes
Fixed Size	    8792440 bytes
Variable Size	  822085256 bytes
Database Buffers	  469762048 bytes
Redo Buffers	    7983104 bytes
Database mounted.
Database opened.
SQL>



3.2     驗證



SQL>COLUMN property_name FORMAT A30
SQL>COLUMN property_value FORMAT A30
SQL>SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED             TRUE


-- 可以看到 Oracle 自動為 PDB 建立了一個 undo 表空間


SQL>SELECT con_id, tablespace_name
FROM   cdb_tablespaces
WHERE  tablespace_name LIKE 'UNDO%'
ORDER BY con_id;
    CON_ID TABLESPACE_NAME
---------- ------------------------------
         1 UNDOTBS1
         3 UNDO_1
SQL>


3.3     新建立一個資料庫

可以看到新建立的資料庫也是執行在本地 undo 模式上。


SQL>CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY Password1;
SQL>ALTER PLUGGABLE DATABASE pdb2 SAVE STATE;
SQL>SELECT con_id, tablespace_name
FROM   cdb_tablespaces
WHERE  tablespace_name LIKE 'UNDO%'
ORDER BY con_id;
    CON_ID TABLESPACE_NAME
---------- ------------------------------
         1 UNDOTBS1
         3 UNDO_1
         4 UNDOTBS1
SQL>





About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號: 230161599 (滿) 、618766405

● weixin群:可加我weixin,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2018-11-01 06:00 ~ 2018-11-31 24:00 在魔都完成

● 最新修改時間:2018-11-01 06:00 ~ 2018-11-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店 https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書 http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班 http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁 https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



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

相關文章