Oracle 23c新特性:PDB的混合只读模式(Hybrid ReadOnly Mode)

2023年 12月 15日 34.3k 0

在 Oracle Database 23c 之前,多租户容器数据库中的可插拔数据库(PDB)可以以两种模式之一打开:读写模式或只读模式,默认是读写模式。Oracle Database 23c 引入了一种新模式,称为混合只读模式(Hybrid Read-Only Mode)。如果PDB被设置成混合只读模式,使用CDB 公共用户登录后,该PDB是读写模式,而 PDB 本地用户登录,则该PDB是只读模式。

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)

  • 华为云最有价值专家

  • 《MySQL 8.0运维与优化》的作者

  • 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证

  • 曾任IBM公司数据库部门经理

  • 20+年DBA经验,服务2万+客户

  • 精通C和Java,发明两项计算机专利

PDB的混合只读模式的一个常用的使用场景是数据库管理员在对PDB进行升级或维护的时候,可以将PDB设置为混合只读模式,这时公用用户可以对PDB进行更新,而本地用户只能对该PDB进行只读查询。这样保证了对PDB的升级或维护不受本地用户的干扰。将PDB设置成混合只读模式的命令如下:

    SQL> alter pluggable database freepdb1 open hybrid read only;


    Pluggable database altered.

    使用公用用户登录PDB,执行修改命令可以成功:

      [oracle@INSPUR ~]$ sqlplus c##scott/oracle@localhost/freepdb1


      SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Thu Dec 14 14:40:52 2023
      Version 23.2.0.0.0


      Copyright (c) 1982, 2023, Oracle. All rights reserved.


      Last Successful login time: Thu Dec 14 2023 14:36:50 +08:00


      Connected to:
      Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
      Version 23.2.0.0.0


      SQL> insert into scott.tt1 values(1);


      1 row created.

      使用本地用户登录PDB,执行修改命令失败:

        [oracle@INSPUR ~]$ sqlplus scott/oracle@localhost/freepdb1


        SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Thu Dec 14 14:39:07 2023
        Version 23.2.0.0.0


        Copyright (c) 1982, 2023, Oracle. All rights reserved.


        Last Successful login time: Thu Nov 23 2023 17:18:12 +08:00


        Connected to:
        Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
        Version 23.2.0.0.0


        SQL> insert into scott.tt1 values(1);
        insert into scott.tt1 values(1)
        *
        ERROR at line 1:
        ORA-16000: Attempting to modify database or pluggable database that is open for
        read-only access.

        这两个操作的屏幕截图如下:

        在V$CONTAINER_TOPOLOGY 动态视图中有一个名为 IS_HYBRID_READ_ONLY 的新列用来标识对应的PDB是否是混合只读模式:

          SQL> col con_name format a10
          SQL> select con_name,OPEN_MODE,IS_HYBRID_READ_ONLY from V$CONTAINER_TOPOLOGY;


          CON_NAME OPEN_MODE IS_HYBRID
          ---------- ------------------------------ ---------
          FREEPDB1   READ WRITE        YES

          顺便说一下,从 Oracle Database 21c 开始,Oracle Database 只能作为多租户 CDB 数据库可用,对非 CDB 数据库的支持已停止。

          欢迎加我的微信,拉你进数据库微信群👇

          推荐文章👇

          试看《MySQL 8.0运维与优化》(清华大学出版社)

          托业890分的Oracle ACE为您翻译国际大佬的雄文(合集)

          相关文章

          Oracle如何使用授予和撤销权限的语法和示例
          Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
          下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
          社区版oceanbase安装
          Oracle 导出CSV工具-sqluldr2
          ETL数据集成丨快速将MySQL数据迁移至Doris数据库

          发布评论