12C R2 Local undo and Shared undo

Local undo and Shared undo

官方文档链接:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/admin/administering-a-cdb-with-sql-plus.html#GUID-24EA5811-94F0-4EEC-864F-23AEF48F2D51

 

一、介绍

12C R2中增加了local undo模式,12C R1中只存在shared undo模式。

启用local undo 模式,单个实例配置中的每个容器都有自己的undo表空间;对于Oracle RAC CDB,每个PDB在其打开的每个节点中都有自己的undo表空间。当禁用local undo时,当当前容器是PDB时,Oracle数据库将静默地忽略撤消表空间和回滚段操作。

shared undo模式意味着单实例CDB有一个活动的undo表空间;对于Oracle RAC CDB,每个实例都有一个活动的undo表空间。此模式主要仅用于升级和过渡目的。

 

二、Local undo的好处

尽管与shared undo相比,local undo会产生较小的开销,但local undo的优势在大多数环境中更为可取。

local undo使得拔插操作方便,减少undo表空间争用,可以快速恢复时间点(point in time recovery)。

Relocating a PDB,Flashing Back a PDB,Refresh PDB ,( Hot Clone, Relocate PDB in open read/write mode)这些新功能只有在启用local undo 才能使用

 

三、local undo 和shared undo相互转换

1. local undo转换shared undo

查看local undo是否开启,默认是开启的

SELECT PROPERTY_NAME, PROPERTY_VALUE

FROM   DATABASE_PROPERTIES

WHERE  PROPERTY_NAME = 'LOCAL_UNDO_ENABLED';

 

upgrade模式重启数据库

1)Shut down the CDB instance if it is open.

SQL> shutdown immediate;

2)Start up the CDB instance in OPEN UPGRADE mode

SQL> startup upgrade;

3)ensure that the current container is the CDB root

SQL> show con_name;

4)禁用local undo

SQL> alter database local undo off;

5)Shut down and restart the CDB instance.

SQL> shutdown immediate;

SQL> startup;

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME = 'LOCAL_UNDO_ENABLED';

 

当处于shared undo模式时,CDB将忽略任何在local undo模式下创建的本地undo表空间。 Oracle建议您删除这些本地undo表空间。

drop tablespace UNDOTBS1 including contents and datafiles;(在PDB执行)

 

 

 

2. shared undo 转成 local undo

由于上面实验我们把local undo默认启动禁用了,下面转换local undo需要开启

1)Shut down the CDB instance if it is open.

SQL> shutdown immediate;

2)Start up the CDB instance in OPEN UPGRADE mode

SQL> startup upgrade;

3)ensure that the current container is the CDB root

SQL> show con_name;

4)启动local undo

SQL> alter database local undo on;

5)Shut down and restart the CDB instance.

SQL> shutdown immediate;

SQL> startup;

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME = 'LOCAL_UNDO_ENABLED';

 

PDB数据库开启后自动创建undob表空间

 

后台日志可以看到创建语句

 

官方文档中提到如果你想通过手动创建undo表空间来控制undo表空间的大小和配置。为确保从CDB root创建的PDB使用手动创建的undo表空间而不是自动创建的undo表空间,必须将UNDO_TABLESPACE初始化参数设置为manually,才能创建的undo表空间,或者删除自动创建的undo表空间。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值