Oracle本地UNDO模式怎么实现

网友投稿 260 2023-11-21

Oracle本地UNDO模式怎么实现

本文小编为大家详细介绍“Oracle本地UNDO模式怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Oracle本地UNDO模式怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1 转换为共享undo模式

1.1 查询当前的模式:SQL>COLUMN property_name FORMAT A30 SQL>COLUMN property_value FORMAT A30 SQL>SELECT property_name, property_valueFROM   database_properties WHERE  property_name = LOCAL_UNDO_ENABLED; PROPERTY_NAME                  PROPERTY_VALUE ------------------------------ ------------------------------ LOCAL_UNDO_ENABLED             TRUE1.2 查看ROOT和自己定义的pdb对应的undo表空间SELECT con_id, tablespace_name FROM   cdb_tablespaces WHEREtablespace_nameLIKE UNDO% ORDER BY con_id;     CON_ID TABLESPACE_NAME ---------- ------------------------------          1 UNDOTBS1          3 UNDOTBS1

2 切换为共享undo模式

SQL> SHUTDOWN IMMEDIATE; SQL>STARTUP UPGRADE; SQL> ALTER DATABASE LOCAL UNDO OFF; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;2.1 验证SQL>COLUMN property_name FORMAT A30 SQL>COLUMN property_value FORMAT A30 SQL>SELECT property_name, property_valueFROM   database_properties WHERE  property_name = LOCAL_UNDO_ENABLED;   PROPERTY_NAME                  PROPERTY_VALUE ----------------------------- ------------------------------ LOCAL_UNDO_ENABLED             FALSE

Oracle本地UNDO模式怎么实现

虽然已经不是本地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

–删除多余的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>DROP TABLESPACE undotbs1; Tablespace  dropped.

随着所有老的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 LIKEUNDO% ORDER BY con_id;     CON_ID TABLESPACE_NAME ---------- ------------------------------          1 UNDOTBS13.1 切换为本地undo模式

和切换为共享undo模式步骤相同。

SQL> SHUTDOWN IMMEDIATE; SQL>STARTUP UPGRADE; SQL> ALTER DATABASE LOCAL UNDO ON; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;3.2 验证SQL>COLUMN property_name FORMAT A30 SQL>COLUMN property_value FORMAT A30 SQL>SELECT property_name, property_valueFROM   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_13.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

读到这里,这篇“Oracle本地UNDO模式怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle怎么增强索引压缩
下一篇:如何使用Oracle的sshUserSetup.sh脚本配置SSH互信
相关文章

 发表评论

暂时没有评论,来抢沙发吧~