Multitenant Unplug/Plug Best Practices (文档 ID 1935365.1)

1.source 从0419 升级到1019 ,但是datapatch 没有回退0419,导致plug pdb 在target 1019后,数据库无法正常open.

2. 操作步骤如下:(检查cdb 和plug pdb 兼容性,发现一旦不兼容,plug pdb 只能以受限制模式打开,无法使用,解决办法无。怀疑是步骤3 的bug)

source
create pluggable database PIVRSDEV using 'C:\app\oracle\DEV.xml' NOCOPY TEMPFILE REUSE;
alter pluggable database PIVRSDEV open read write instances =all;

sqlplus sys/oracle123@localhost:15301/pivrsdev AS SYSDBA

exec dbms_pdb.describe (‘PDB1_Unplug.xml’, ‘PIVRSDEV’);
 
  --localtion is D:\appOra12c\Administrator\product\12.1.0\dbhome_1\database

step 2:

target

set serveroutput on
 
 begin
  if dbms_pdb.check_plug_compatibility('C:\app\software\PDB1_Unplug.xml','PIVRSDEV') then
    dbms_output.put_line('no violations found');
  else
    dbms_output.put_line('violations found');
  end if;
end;

create table pdb_plug_back as select * from  pdb_plug_in_violations;
delete from  pdb_plug_in_violations;

set linesize 999
set pagesize 999
SELECT name,type, message, action
  FROM pdb_plug_in_violations

report below error .

PIVRSDEV                                                     WARNING
CDB parameter nls_language mismatch: Previous 'AMERICAN' Current 'SIMPLIFIED CHI
NESE'
Please check the parameter in the current CDB

PIVRSDEV                                                     ERROR
 (PSU bundle patch 160419 (WINDOWS DB BUNDLE PATCH 12.1.0.2.160419(64bit):228098
13): APPLY SUCCESS):  with status  in the PDB.
Call datapatch to reinstall

PIVRSDEV                                                     WARNING
CDB parameter nls_territory mismatch: Previous 'AMERICA' Current 'CHINA'
Please check the parameter in the current CDB

PIVRSDEV                                                     ERROR
 (SQL patch ID/UID 24591630/20690333 (WINDOWS ORACLE JAVAVM COMPONENT BUNDLE PAT
CH 12.1.0.2.161018 (64bit):24591630): APPLY SUCCESS):  with status  in the PDB.
Call datapatch to reinstall

PIVRSDEV                                                     ERROR
SQL patch ID/UID 24591630/20690333 (WINDOWS ORACLE JAVAVM COMPONENT BUNDLE PATCH
 12.1.0.2.161018 (64bit):24591630): Installed in the CDB but not in the PDB.
Call datapatch to install in the PDB or the CDB

PIVRSDEV                                                     WARNING
CDB parameter memory_target mismatch: Previous 2000M Current 0
Please check the parameter in the current CDB

PIVRSDEV                                                     ERROR
SQL patch ID/UID 24591642/20650331 (): Installed in the CDB but not in the PDB.
Call datapatch to install in the PDB or the CDB

PIVRSDEV                                                     WARNING
CDB parameter aq_tm_processes mismatch: Previous 10 Current 1
Please check the parameter in the current CDB

3.supect below issue

Bug 21913544 : DATAPATCH GENERATES WARNING IN PDB_PLUG_IN_VIOLATIONS AFTER APPLYING DBBP/DBPSU

4.

Multitenant Unplug/Plug Best Practices (文档 ID 1935365.1) 转到底部

In this Document

  Goal
  Solution
  Preparation:
  Scenarios:
  Scenario 1 – No plug in violations
  Scenario 2 – SQL patch present in target container but not in source container
  Scenario 3 – SQL patch present in source container but not in target container
  Scenario Summary and Actions
  References

Applies to:

Oracle Database - Enterprise Edition - Version 12.1.0.1 and later
Information in this document applies to any platform.

Goal

To provide the Multitenant Unplug/Plug Best Practices

Solution

When plugging into a new container a PDB may have violations due to Database version (12.1.0.1 vs 12.1.0.2)

  • SQL patch mismatches
  • Database parameter mismatches such as character sets or block size

The dbms_pdb.describe and dbms_pdb.check_plug_compatibility APIs can
be used to determine if a given PDB can be plugged in successfully to a
target container.  Here are the steps to invoke dbms_pdb.describe and
dbms_pdb.check_plug_compatibility to investigate this further:

Preparation:

1) Create PDB description XML file for PDB(PDB1) in question:
    exec dbms_pdb.describe (‘PDB1_Unplug.xml’, ‘PDB1’);
2) In the target container environment, check plug compatibility  
begin
  if dbms_pdb.check_plug_compatibility('PDB1_Unplug.xml', ‘PDB1') then
    dbms_output.put_line(‘no violations found');
  else
    dbms_output.put_line(‘violations found');
  end if;
end;
Plugin compatibility issues, if any, will be reported in
pdb_plug_in_violations view

Scenarios:

Scenario 1 – No plug in violations

SQL> BEGIN
  2    IF dbms_pdb.check_plug_compatibility('/tmp/PDBORCL.xml') THEN
  3       dbms_output.put_line('no violations found');
  4    ELSE
  5       dbms_output.put_line('violations found');
  6    END IF;
  7  END;
  8  /
no violations found

PL/SQL procedure successfully completed.

SQL> SELECT type, message, action
  2    FROM pdb_plug_in_violations
  3    WHERE name = 'PDBORCL';

no rows selected

Scenario 2 – SQL patch present in target container but not in source container

SQL> BEGIN
  2    IF dbms_pdb.check_plug_compatibility('/tmp/PDBORCL.xml') THEN
  3       dbms_output.put_line('no violations found');
  4    ELSE
  5       dbms_output.put_line('violations found');
  6    END IF;
  7  END;
  8  /
violations found

SQL> SELECT type, message, action
  2    FROM pdb_plug_in_violations
  3    WHERE name = 'PDBORCL';

TYPE      MESSAGE
--------- --------------------------------------------------------------------------------
ACTION
--------------------------------------------------------------------------------
ERROR      PSU bundle patch 1 (PSU Patch 12345): Installed in the CDB but not in the PDB.

Call datapatch to install in the PDB or the CDB

Scenario 3 – SQL patch present in source container but not in target container

SQL> BEGIN
  2    IF dbms_pdb.check_plug_compatibility('/tmp/PDBORCL.xml') THEN
  3       dbms_output.put_line('no violations found');
  4    ELSE
  5       dbms_output.put_line('violations found');
  6    END IF;
  7  END;
  8  /
violations found

SQL> SELECT type, message, action
  2    FROM pdb_plug_in_violations
  3    WHERE name = 'PDBORCL';

TYPE      MESSAGE
--------- --------------------------------------------------------------------------------
ACTION
--------------------------------------------------------------------------------
ERROR      PSU bundle patch 1 (PSU Patch 12345): Installed in the PDB but not in the CDB.
Call datapatch to install in the PDB or the CDB

Scenario Summary and Actions

Scenario

Recommended Action

1: SQL Patches in both source and target container

None needed – safe to plug in (see Document 1633071.1)

2: SQL Patches in target container only

Run datapatch in target after plug in

3: SQL Patches in source container only

Option 1: Rollback the patch(es) on the source PDB before unplugging

% datapatch -rollback < patch id > –force [–bundle_series] -pdbs <pdb1,pdb2,...,pdbn>

Option 2: Install the patch(es) on the target installation then run datapatch in target after plug in

Note: Option 2 will apply the new patches in the CDB and all PDBs in the target.

Plugging an Unplugged Pluggable Database issue 3的更多相关文章

  1. Plugging an Unplugged Pluggable Database issue 2

    因为原库和目标库版本不一制,出现各种问题,强烈建议保持2个版本一致 http://www.cndba.cn/dave/article/220 Log 提示查看PDB_PLUG_IN_VIOLATION ...

  2. Plugging an Unplugged Pluggable Database

    1.unplug To unplug a PDB, you first close it and then generate an XML manifest file. The XML file co ...

  3. ORA-65179: cannot keep datafiles for a pluggable database that is not unplugged

    SQL> drop pluggable database pdb2; drop pluggable database pdb2 * ERROR at line : ORA-: cannot ke ...

  4. oracle12c新特点之可插拔数据库(Pluggable Database,PDB)

    1.    12c PDB新特点的优势 1)    可以把多个PDB集成进一个平台. 2)    可以快速提供一个新的PDB或一个已有PDB的克隆. 3)    通过拔插技术,可以快速把存在的数据库重 ...

  5. Oracle Database 12c 新特性 - Pluggable Database

    在Oracle Database 12c中,可组装式数据库 - Pluggable Database为云计算而生.在12c以前,Oracle数据库是通过Schema来进行用户模式隔离的,现在,可组装式 ...

  6. Oracle 12c: RMAN restore/recover pluggable database

    查看数据库状态 运行在归档模式,可拔插数据库name=pdborcl SQL> archive log list; Database log mode Archive Mode Automati ...

  7. Oracle 12C pluggable database自启动

    实验环境创建了两个PDB,本实验实现在开启数据库时,实现pluggable database PDB2自启动: 原始环境: SQL> shu immediateDatabase closed.D ...

  8. Clone a Pluggable Database – 12c Edition

    1. 1.Tnsnames when connecting to either Container or Pluggable instance The tnsnames.ora should be c ...

  9. Multitenant best Practice clone pdb seed and Clone a Pluggable Database – 12c Edition

    1. 1.Tnsnames when connecting to either Container or Pluggable instance The tnsnames.ora should be c ...

随机推荐

  1. 微信小程序之 Tabbar(底部选项卡)

    1.项目目录 2.在app.json里填写:tab个数范围2-5个 app.json { "pages": [ "pages/index/index", &qu ...

  2. 浅谈c#的三个高级参数ref out 和Params C#中is与as的区别分析 “登陆”与“登录”有何区别 经典SQL语句大全(绝对的经典)

    浅谈c#的三个高级参数ref out 和Params   c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和 ...

  3. Sql数据库查询语言

    1.概述 Sql是一种面向数据库的结构化查询语言.是符合美国国家标准化组织ANSI的一种计算机标准语言. Sql具对数据库的操作有:增删改查.创建数据库.创建表.创建存储过程.创建视图等 RDBMS关 ...

  4. flask的路由配置,特殊装饰器

    1,flask中的路由 endpoint-url_for反向地址 endpoint默认是视图函数名endpoint="雪雪" methods 指定视图函数的请求方式,默认GET d ...

  5. C项目实践--网络协议和套接字编程

    1.TCP/IP协议 TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议,ICMP(Internet Control Message Proto ...

  6. 借助ltp 逐步程序化实现规则库 文本生成引擎基于规则库和业务词库 去生成文本

    [哪个地方做什么的哪家靠谱?地名词库行业.业务词库]苏州做网络推广的公司哪家靠谱?苏州镭射机维修哪家最专业?昆山做账的公司哪家比较好广州称重灌装机生产厂家哪家口碑比较好 [含有专家知识]郑州律师哪个好 ...

  7. 什么是 jQuery EasyUI

    jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件. jQuery EasyUI 框架提供了创建网页所需的一切,帮助您轻松建立站点. easyui 是一个基于 jQu ...

  8. js实现加密(?!)

    <script src="yourUrl/md5.min.js"></script> 或者: <script src="http://cdn ...

  9. 《Visual C++ 2010入门教程》系列四:VC2010中初学者常见错误、警告和问题

    <Visual C++ 2010入门教程>系列四:VC2010中初学者常见错误.警告和问题   这一章将帮助大家解释一些常见的错误.警告和问题,帮助大家去理解和解决一些常见问题,并了解它的 ...

  10. lucene DocValues——本质是为通过docID查找某field的值 看图

    Why DocValues? The standard way that Solr builds the index is with an inverted index. This style bui ...