在 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 模式上。
1 转换为共享 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>
2 切换为共享 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 模式上了。
3 切换为本地 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/,如需转载,请注明出处,否则将追究法律责任。