• 当要打开PDB时为何会有Warning: PDB altered with errors.


    对PDB执行 alter pluggable database pdbprod2 open; 操作后提示:Warning: PDB altered with errors. 来自AskScuti博客园

    目录

    1. 状况

    2. 原因

    3. 方案

    1. 状况

    SQL> show pdbs
    
        CON_ID CON_NAME  OPEN MODE  RESTRICTED
    ---------- --------- ---------- ----------
         2 PDB$SEED      READ ONLY  NO
         3 PDB1          MOUNTED
         4 PDBPROD1      MOUNTED
         5 PDBPROD2      MOUNTED
    
    SQL> alter pluggable database pdbprod2 open;
    
    Warning: PDB altered with errors.

    2. 原因

      用种子 PDB 或插入或克隆方法创建 PDB 后,可以通过查询 CDB_PDBS 视图的STATUS 列查看新 PDB 的状态。如果在打开新 PDB 之前创建了公用用户和角色,必须同步 PDB 才能从根检索新的公用用户和角色。当 PDB 在读/写模式下打开时,会自动执行同步。如果在只读模式下打开 PDB,则会返回错误。可以通过查询 PDB_PLUG_IN_VIOLATIONS 视图查看违规说明。

    SQL> select CAUSE,CON_ID,MESSAGE from pdb_plug_in_violations;
    
    CAUSE
    --------
    CON_ID
    --------
    MESSAGE
    --------
    Sync Failure
         4
    Sync PDB failed with ORA-959 during 'CREATE USER "C##AAA" IDENTIFIED BY VALUES *
    DEFAULT TABLESPACE "IMPDATA" container = all'

      因为之前在容器数据库中创建了一个公共用户C##AAA,现在还需要在所有可插入的数据库中创建该用户。这个用户是在数据库正常打开的情况下建立的,但是使用的是自定义表空间《IMPDATA》,当打开可插入数据库PDBPROD2时将同步这个操作,也就是同步创建这个公共用户。但是 PDBPROD2 这个可插入数据库中是没有 IMPDATA 表空间的,因此无法同步创建这个公共用户,最终可插入数据库 PDBPROD2 仅以受限模式打开,如下所示:

    SQL> show pdbs
    
        CON_ID CON_NAME  OPEN MODE  RESTRICTED
    ---------- --------- ---------- ----------
         2 PDB$SEED      READ ONLY  NO
         3 PDB1          MOUNTED
         4 PDBPROD1      MOUNTED
         5 PDBPROD2      READ WRITE YES

    3. 方案

      这时候去删除公共用户依然不行,因为同步动作已经在队列里面了。因此,唯一能做的就是在 PDBPROD2 中创建该表空间,关闭数据库,再次进行同步即可。

    SQL> alter session set container=pdbprod2;
    
    Session altered.
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    /u01/app/oracle/oradata/CDBOCP/pdbprod2/CDBOCP/8EE4C86D91688487E053C81212AC968B/
    datafile/o1_mf_system_gn08jj5k_.dbf
    
    /u01/app/oracle/oradata/CDBOCP/pdbprod2/CDBOCP/8EE4C86D91688487E053C81212AC968B/
    datafile/o1_mf_sysaux_gn08jj5p_.dbf
    
    /u01/app/oracle/oradata/CDBOCP/pdbprod2/CDBOCP/8EE4C86D91688487E053C81212AC968B/
    datafile/o1_mf_undotbs1_gn08jj63_.dbf
    
    SQL> create tablespace impdata datafile '/u01/app/oracle/oradata/CDBOCP/pdbprod2/CDBOCP/8EE4C86D91688487E053C81212AC968B/datafile/impdata01.dbf' size 10m;
    
    Tablespace created.
    
    SQL> alter session set container=cdb$root;
    
    Session altered.
    
    SQL> alter pluggable database pdbprod2 close;
    
    Pluggable database altered.
    
    SQL> alter pluggable database pdbprod2 open;
    
    Pluggable database altered.
    
    SQL> show pdbs
    
        CON_ID CON_NAME  OPEN MODE  RESTRICTED
    ---------- --------- ---------- ----------
         2 PDB$SEED      READ ONLY  NO
         3 PDB1          MOUNTED
         4 PDBPROD1      MOUNTED
         5 PDBPROD2      READ WRITE NO
  • 相关阅读:
    如何在Ubuntu 14.10 上安装WordPress?
    tun笔记
    【BIEE】导出大量数据报错处理请求时出现致命错误。服务器响应为 com.siebel.analytics.utils.InputStreamWithLimit$ReadOverTheLimitException
    Eclipse4.9集成Tomcat 9.0.21详细版
    在Eclipse打开css文件时,会自动调用文本编辑器打开,而不是在Eclipse中打开
    【BIEE】使用BIPublisher做报表时,选择多个参数使用IN的问题
    【BIEE】新建用户,并且赋予组BIconsumer,访问BIpublisher报表报错:检索数据xml时出错
    Echarts 柱状图组
    Echarts 入门操作
    【BIRT】修改主题背景颜色
  • 原文地址:https://www.cnblogs.com/askscuti/p/11272383.html
Copyright © 2020-2023  润新知