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 中的配置信息决定的。

时间: 2024-10-14 16:54:23

Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换的相关文章

Oracle 12c 多租户 CDB 与 PDB 备份

一.  CDB 备份 1.1  只备份CDB 只备份CDB数据库需要具有SYSDBA或SYSBACKUP权限用户连接到CDB的root环境下,执行backupdatabase root命令即可完成对CDB的备份,方法如下:[[email protected] ~]$ rman target / [[email protected] ~]$ mkdir /home/oracle/rmanback/RMAN> backup database root format='/home/oracle/rma

oracle 12c service之cdb和pdb

srvctl add service 参数如下:-s:服务名-r:首选实例名-a:备用实例名-p:TAF策略,有none,basic,preconnect三个值可选-d-pdb srvctl add service -help 查看各个参数的含义 这里如果未指定-pdb,则连到cdb上,这在远程克隆pdb,设置tns的时候需要 srvctl add service -s lych_srv -d xxx -pdb xxx -a xxx -r xxx ---手动配置TNS的话就srvctl conf

Oracle 12c 多租户家族(12c 18c 19c)如何在 PDB 中添加 HR 模式

Oracle 12c 多租户家族(12c [12.2.0.1].18c [12.2.0.2].19c [12.2.0.3])如何在 PDB 中添加模式:19c (19.3) 手工添加示例 HR 用户 Oracle 12c 如何在 PDB 中添加 SCOTT 模式(手工方式) Oracle 12c 如何在 PDB 中添加 SCOTT 模式(数据泵方式) 目录 1. 配置TNSNAMES.ora 2. 连接PDB 3. 执行脚本 1. 配置TNSNAMES.ora 略,请参考 12c 手工方式和 1

Oracle12c多租户CDB 与 PDB 参数文件位置探讨、查询 CDB 与 PDB 不同值的参数

一. Oracle12c多租户CDB 与 PDB 参数文件位置 CDB的参数文件依然使用12c以前的SPIFLE,pdb的参数文件不会出现在SPFILE中,而是直接从CDB中继承,如果PDB中有privete Local parameter 会存在 CDB 的 PDB_SPFILE$字典表 中以con_id区别,当PDB UN-Plug时,PDB参数会写入PDB的XML文件中,当drop pluggable database后,pdb信息和PDB_SPFILE$记录也会被清除.再当PDB重新Pl

2.oracle 12c 创建-访问-关闭-删除PDB

1.创建PDB SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/ora12c/system01.dbf /u01/app/oracle/oradata/ora12c/pdbseed/system01.dbf /u01/app/oracle/oradata/or

oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)

环境:数据库版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 实验准备:1.-- 数据库归档模式SQL> select name,log_mode from v$database;NAME  LOG_MODE--------- ------------ANDYCDB   ARCHIVELOG   > 数据库归档模式 2.-- 登录 PDB 中创建实验表空间 与 用户[[email pr

Oracle 12c 多租户在 CDB 中 Plug A PDB,Unplugging A PDB

Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).本文简单的演示了如何在 CDB 中 Plug A PDB,Unplugging A PDB 操作. 一. plugged PDB into Unplugged PDBSQL> show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ -------

Oracle 12c 多租户配置和修改 CDB 和 PDB 参数

1. 配置CDB 实例参数,影响CDB与所有 PDB为CDB配置例程参数相对于对于非CDB的数据库是变化不太.ALTER SYSTEM命令用于设置初始化参数,与使用ALTER DATABASE命令修改一些数据库配置.ALTER SYSTEM SET parameter_name=value CONTAINER=ALL;说明:使用CONTAINER=ALL后,cdb与pdbs这个参数相同.pdbs可以在本地设置同一参数为不同值,将覆盖CONTAINER=ALL设定的值. 2. 修改 CDB ALT

Oracle 12C -- 手动创建CDB

1.指定oracle_sid $ export ORACLE_SID=db12 2.指定环境变量 比如ORACLE_BASE.ORACLE_HOME.PATH(要包含$ORACLE_HOME/bin)3.选定验证方式 ·操作系统验证 ·口令文件验证4.创建初始化参数文件 $ vi initdb12.ora db_name='db12' memory_target=2G processes = 150 db_block_size=8192 db_domain='' diagnostic_dest=