对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

当要打开PDB时为何会有Warning: PDB altered with errors.的更多相关文章

  1. 完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错

    我的开发环境是Win7旗舰64位+VS2003.Net,经常卡pdb错误,文末给出一个完美的解决方案和一个懒人补丁包.问题描述如下:在重新编译的时候,经常报错: fatal error LNK1201 ...

  2. 打开mysql时,提示 1040,Too many connections

    打开mysql时,提示 1040,Too many connections,这样就无法打开数据库,看不了表里边的内容了. 出现这个问题的原因是,同时对数据库的连接数过大,mysql默认的最大连接数是1 ...

  3. Win7下打开计算机管理时出现错误的解决办法

    计算机管理是用户在使用计算机时经常用到的一个选项,可以在桌面上右击计算机,选择"管理"打开.也可以在运行框中输入:compmgmt.msc打开计算机管理程序,里面有常用系统工具如用 ...

  4. word2007在试图打开文件时遇到错误解决方法

    当您尝试在 Microsoft Office Word 2007 中打开 .docx 文件时,该文件打不开.此外,您还会收到以下错误消息: Word 在试图打开文件时遇到错误.请尝试下列方法:* 检查 ...

  5. 最近遇到VS2013,在打开解决方案时,报如下错误: 未找到与约束

    最近遇到VS2013,在打开解决方案时,报如下错误: “未找到与约束 ContractName Microsoft.Internal.VisualStudio.PlatformUI.ISolution ...

  6. word2010无法打开文件时的一点对策

    word2010无法打开文件时的一点对策 1. Word 安全模式启动,点击「开始」,在搜索栏中输入winword /safe并回车,测试问题是否依然存在? 2. 正常启动Word,点击“文件”—“选 ...

  7. Microsoft Visual Studio | VS打开解决方案时加载失败,或者出现错误提示

    Microsoft Visual Studio | VS打开解决方案时加载失败,或者出现错误提示 1.加载失败并且输出状态栏也没什么错误提示的话,往往是因为一个低版本VS2010.VS2012等打开了 ...

  8. OFFICE2007软件打开word时出现SETUP ERROR的解决方法

    今天打开word时出现以下错误窗口: 在度娘上找了一下解决方案,原来每次打开word时都会启动一些无用的东西,找到这些东西的路径D:\Program Files\Common Files\micros ...

  9. 怎么隐藏 iOS Safari 打开网页时的地址栏和工具栏探索

    先来看一张截图 红色框处就是用手机浏览器打开页面时,自动显示出来的头部地址栏和底部工具栏 如果现在有一个需求,用手机浏览器打开页面时,把地址栏和工具栏隐藏,该怎么办呢? 起初我在度娘找到了好几篇博客都 ...

随机推荐

  1. 图片中添加箭头【使用PPT实现】

    手头上可以使用的方案 QQ截图 分辨率会改变 画图 网上的教程一般是画一根线再加一个三角来画箭头,有点麻烦,改起来不好改. PS 对我来说,软件安装本身就是个问题, 插入图片,加入箭头,组合,另存为, ...

  2. Linux-开发环境安装

    JDK安装: 执行: yum -y list java* 展示所有的javajdk 安装jdk: yum install -y java-1.8.0-openjdk-devel.x86_64 1.8. ...

  3. TypeScript(进行中)

    https://ts.xcatliu.com 简介 什么是 TypeScript 即使不显式的定义类型,也能够自动做出类型推论 即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件 ...

  4. PS_0001:改变图片颜色 填充颜色

    1,创建新图存  ctrl + j 2,点击前景色按钮,改变颜色 3,前景色的键盘快捷键是“Alt+Delete”,背景色的键盘快捷键是“Ctrl+Delete”

  5. MyBatis mapper文件中使用常量

    MyBatis mapper文件中使用常量 Java 开发中会经常写一些静态常量和静态方法,但是我们在写sql语句的时候会经常用到判断是否等于 //静态类 public class CommonCod ...

  6. ng-http

    启用 Http 服务 open the root AppModule, import the HttpClientModule symbol from @angular/common/http, ad ...

  7. JavaScript实现动态打字效果

    废话不多说,上代码~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  8. JavaScript:JSON对象

    一.JSON对象概念 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScri ...

  9. eXosip和osip详解

    文档 可以查看exosip osip的在线文档 http://www.antisip.com/doc/ 在线文档 一般先看mainpage 会有库的一个整体说明. 其次看看 modules 会有一些使 ...

  10. Power Strings[poj2406]题解

    Power Strings Description - Given two strings a and b we define ab to be their concatenation. For ex ...