探索Oracle之数据库升级七 11gR2 to 12c 升级完成后插入PDB

探索Oracle之数据库升级七
11gR2 to 12c 升级完成后插入PDB

前言:

       从Oracle 12c开始,引入了容器数据库的概念,可以实现数据库插拔操作,如下图:

现在我们就来看看如何将11.2.0.4的数据库插入到12c的CDP里面去,让其成为一个PDB

数据库。

一、查看数据库信息:

SQL> col BANNER format a80
SQL> set line 300
SQL> select * from v$version;

BANNER CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 0
PL/SQL Release 12.1.0.1.0 - Production 0
CORE 12.1.0.1.0 Production 0
TNS for Linux: Version 12.1.0.1.0 - Production 0
NLSRTL Version 12.1.0.1.0 - Production

SQL> select cdb,name,dbid from v$database;

CDB NAME DBID
--- --------- ----------
NO WOO 4199532651

从这里我们可以看到实际上通过升级之后上来的数据库还是一个non-CDB,并非CDB数据库,那么这个时候我们需要在这个none-CDB库中生成用户PDB的XML文件,再创建CDB数据库进行插入进去。

二、查看表空间及数据文件信息:

SQL> select * from v$tablespace;

       TS# NAME INC BIG FLA ENC CON_ID
---------- ------------------------------ --- --- --- --- ----------
         0 SYSTEM YES NO YES 0
         1 SYSAUX YES NO YES 0
         2 UNDOTBS1 YES NO YES 0
         4 USERS YES NO YES 0
         3 TEMP NO NO YES 0

SQL> set line 300
SQL> col file_name format a40
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME
---------- ----------------------------------------
USERS /DBData/woo/woo/users01.dbf
UNDOTBS1 /DBData/woo/woo/undotbs01.dbf
SYSAUX /DBData/woo/woo/sysaux01.dbf
SYSTEM /DBData/woo/woo/system01.dbf

三、创建用于生成PDB的XML文件

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 2772574208 bytes
Fixed Size 2292240 bytes
Variable Size 2533361136 bytes
Database Buffers 218103808 bytes
Redo Buffers 18817024 bytes
Database mounted.

SQL> alter database open read only;
Database altered.

SQL> exec dbms_pdb.describe(pdb_descr_file => \'/home/oracle/woo_ora11g.xml\');
PL/SQL procedure successfully completed.

SQL> host ls -rtl /home/oracle/woo*.xml
-rw-r--r-- 1 oracle oinstall 4147 Nov 27 19:17 /home/oracle/woo_ora11g.xml

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down

四、检查升级后的数据库是否适合以PDB的方式插入到CDB中

SQL> set serveroutput on;
SQL> declare
  2         compat boolean := FALSE;
  3 begin
  4         compat := dbms_pdb.check_plug_compatibility(pdb_descr_file => \'/home/oracle/woo_ora11g.xml\');
  5     if compat
  6     then
  7         dbms_output.put_line(\'YES\');
  8     else
  9         dbms_output.put_line(\'No\');
 10     end if;
 11 end;
 12 /

No

PL/SQL procedure successfully completed.

   因为是第一次插入,所以执行结果显示为NO,可以忽略继续插入。

五、创建CDB数据库
   5.1 执行dbca创建cdb数据库

5.2 指定需要创建的cdb数据库名称

     5.3 创建CDB前检查

    5.4 Summar 点击Finish开始创建

    5.5  现在正在开始创建

  5.6 至此已经创建完成,告诉我们CDB数据库的信息

   5.7 点击Close 关闭创建页面

六、查看当前pdb信息

[oracle@db01 ~]$ export ORACLE_SID=woo12c
SQL> show pdbs;

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED READ ONLY NO
         3 PDB01 READ WRITE NO

SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 4107385256 PDB$SEED READ ONLY
         3 3926295770 PDB01 READ WRITE


七、将non-cdb数据库插入到cdb中成为一个pdb

SQL> CREATE PLUGGABLE DATABASE woo_ora11g USING \'/home/oracle/woo_ora11g.xml\';
Pluggable database created.

八、查看alert日志相关信息
    
将Non-CDB插入到CDB中成为一个PDB输出的Alert
日志。

SQL> show pdbs

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED READ ONLY NO
         3 PDB01 READ WRITE NO
         4 WOO_ORA11G MOUNTED
SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 4107385256 PDB$SEED READ ONLY
         3 3926295770 PDB01 READ WRITE
         4 4199532651 WOO_ORA11G MOUNTED

第一次no-cdb plug cdb是mount状态,需要将其open;
SQL> alter pluggable database open;
Pluggable database altered.

SQL> show pdbs;

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED READ ONLY NO
         3 PDB01 MOUNTED
         4 WOO_ORA11G READ WRITE YES

插入完成之后需要执行noncdb_to_pdb脚本,修复原non-cdb
和新的pdb不兼容的问题:

十、执行noncdb_pdb脚本

SQL> alter session set container=WOO_ORA11G;
Session altered.

SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

………

#### 遇到warning,脚本会自动忽略错误,继续执行。在最后脚本编译的时候会修复这些问题。

更新完之后需要同步pdb信息
SQL> show pdbs

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         4 WOO_ORA11G MOUNTED
SQL> alter pluggable database open restricted;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         4 WOO_ORA11G READ WRITE YES
SQL> exec dbms_pdb.sync_pdb();

PL/SQL procedure successfully completed.

SQL> alter pluggable database close immediate;

Pluggable database altered.

SQL> alter pluggable database open;

Pluggable database altered.

十一、至此no-cdb plug to cdb 成功

SQL> show pdbs;

    CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED READ ONLY NO
         3 PDB01 MOUNTED
         4 WOO_ORA11G READ WRITE NO
SQL>
时间: 2024-11-08 17:22:52

探索Oracle之数据库升级七 11gR2 to 12c 升级完成后插入PDB的相关文章

探索Oracle之数据库升级八 12c Downgrade 11gR2

探索Oracle之数据库升级八12c Downgrade 11gR2 前言:        我们前面已经完成了11gR2 upgrade to 12c 的升级,整个过程还是比较顺利的,虽然和以前版本升级有些不太一样,但是整个难度不是太大,但是由于太多的特性不同,大大的加长了升级的时间.        但是对于Oracle 12c降回到之前版本,会有些限制,只能降级到升级前所用的版本和补丁级别.        如果我们是直接从10.2.0.5.11.1.0.7或版本11.2.0.2及更高版进行升级

探索Oracle之数据库升级一 升级补丁修复概述

探索Oracle之数据库升级一  升级补丁修复概述 一. 升级路线图         无论你是谁,要想做数据库升级,我想一定离不开如下这张升级线路图:企业中数据库的升级是一个浩大的工程,但是却又必不可少,小在打一个PSU解决一个简单的问题或实现某个功能,大到打安装Patch对数据库版本升级,都是作为一名合格的DBA必备的技能.再后面的几篇博客当中将详细讲述如何将数据库从11.2.0.3.0升级到11.2.0.4并且打上最新的OPATCH之后再升级到Oracle 12c.   二.  升级类型:

探索Oracle之数据库升级二 11.2.0.3升级到11.2.0.4完整步骤

探索Oracle之数据库升级二  11.2.0.3升级到11.2.0.4完整步骤   说明:         这篇文章主要是记录下单实例环境下Oracle 11.2.0.1升级到11.2.0.3的过程,当然RAC的升级是会有所不同.但是他们每个版本之间升级步骤都是差不多的,先升级Database Software,再升级Oracle Instance.  Oracle 11.2.0.4的Patchset No:19852360下载需要有Oracle Support才可以.  Patchset包含

探索Oracle之数据库升级六 11.2.0.4.3 Upgrade12c(12.1.0.1)

探索Oracle之数据库升级六11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言:       Oracle 12c发布距今已经一年有余了,其最大亮点是一个可以插拔的数据库(PDB),这是在之前版本没有的:但是如果我们要将以前版本的数据库升级到12c来,那么也应顺其自然的将其变成一个pdb,那么我们的工作不仅包含了数据库软件的升级,同时也包含如何将一个NO-CDB的数据库plug to CDB none. 二.升级要求:   三.升级前准备:          3.1.查看

探索Oracle之数据库升级四 11.2.0.4.0 PSU 11.2.0.4.3

探索Oracle之数据库升级四11.2.0.4.0 PSU 11.2.0.4.3   一.  检查当前数据库PSU号: [oracle@db01 ~]$ cd/DBSoft/Product/11.2.4/db_1/OPatch/ [oracle@db01 OPatch]$ ls crs docs emdpatch.pl jlib ocm opatch opatch.bat opatchdiag opatchdiag.bat opatch.ini opatch.pl opatchprereqs o

探索Oracle之数据库升级九 12.1.0.1 Update 12.1.0.2

探索Oracle之数据库升级九 12.1.0.1 Update 12.1.0.2 一.检查当前数据库版本及系统信息 [oracle@db01 ~]$ lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printin

探索Oracle之数据库升级三 回退升级操作(11.2.0.4Downgrade 11.2.0.3)

探索Oracle之数据库升级三 回退升级操作(11.2.0.4Downgrade 11.2.0.3)   我们可以选择2种回退办法: 1.   通过restore point还原到11.2.0.1的数据库 2.   执行catdwgrd.sql降级数据字典   第一种方法: [oracle@db01 dbs]$ sqlplus /as sysdba SQL*Plus: Release 11.2.0.4.0Production on Sat Oct 4 04:53:22 2014 Copyrigh

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304 一.   补丁描述 参考metalink doc: (Doc ID 19774304.8) Bug19774304 - 12.1.0.2 Bundle Patch 2 for Engineered Systems and DB In-Memory (Nov2014) (Doc ID 19774304.8) 二.   补丁包含 19649591 DATABASE BUNDLE PATCH 12.1.0.2.2 (O

探索Oracle 11gR2 DataGuard_02配置

探索Oracle 11gR2 DataGuard_02配置 作者:吴伟龙 配置步骤: 一.开启强制日志 二.配置pri端传输参数 三.备份pri端数据库 四.拷贝文件到sty端 五.配置sty端传输参数 六.将sty端启动到mount状态并恢复数据 七.在pri端应用发送归档日志文件 八.在sty端开启强制redo应用 九.配置standby日志 十.在pri端启动强制日志应用   11gR2DG传输架构 图: DBName Role DB_UNIQUE_NAME Oracle Net Serv