探索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>

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

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

    探索Oracle之数据库升级八 12c Downgrade 11gR2 前言: 我们前面已经完毕了11gR2 upgrade to 12c 的升级,整个过程还是比較顺利的,尽管和曾经版本号升级有些不太 ...

  2. 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)

    探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言:       Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...

  3. Oracle数据库版本10.2.0.1升级到10.2.0.3(转)

    Oracle数据库版本10.2.0.1升级到10.2.0.3 1.停止OEM/isqlplus/监听/DB实例 $ emctl stop dbconsole $ isqlplusctl stop $ ...

  4. [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  5. Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0

    Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0 系统环境: 操作系统:RedHat EL6(64位) Oracle:    Oracle 11gR2 ...

  6. 探索ORACLE之ASM概念(完整版)

    探索ORACLE之ASM概念(完整版) 本文出自https://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出 ...

  7. 探索ORACLE之ASM概念

    一.     ASM(自动存储管理)的来由: ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的 ...

  8. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  9. Oracle 11.2.0.3.0 RAC GI_DB升级到11.2.0.4.0

    转载:  http://blog.csdn.net/frank0521/article/details/18226199 前言 还是大家常说的那句:生产环境千万记得备份哈~~~ 以下的环境,是我的测试 ...

随机推荐

  1. C++中实现 time_t, tm 相互转换

    time_t -> tm: localtime tm -> time_t: mktime time_t curTime; time(&curTime); dwCurTime = c ...

  2. lua中打印所以类型功能实现table嵌套table

    lua中打印所以类型功能实现 本人測试 number.string.bool.nil.table嵌套table.userdata没问题 共享一下有什么问题请拍砖 代码例如以下 cclog = func ...

  3. 学IT技术 轻松高薪就业

    如今的社会是大鱼吃小鱼的时代,假设你没有过强的技术,是非常难在社会上立足,更不要谈占有一席之地了.假设你想学一门好技术,那你想知道如今学什么技术好吗?我想这要看如今市场须要什么人才,缺什么人才.同一时 ...

  4. shell语法简单介绍

    一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行):  #!/bin/sh  符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们 ...

  5. linux shell脚本:在脚本中实现读取键盘输入,根据输入判断下一步的分支

    echo please input “runbip” to run bip. variableName="null" while [ $variableName != " ...

  6. codility上的问题(15) Xi 2012

    进入2012年的题 codility上的题目开始变难,变得有意思起来.给定两个长度在[1..300000]的只包含0和1的串S和T,它们是2进制表示的,S表示的数A不大于T表示的数B,即A<=B ...

  7. smartforms客制页格式

    smartforms需要打印非A4纸时需要手动创建页格式:创建事务代码:spad, 操作的时候需要 把所有步骤都做一遍方可正常打印,不然只能停留在预览界面无法打印.

  8. 在JDBC中使用PreparedStatement代替Statement,同时预防SQL注入

    本篇讲诉为何在JDBC操作数据库的过程中,要使用PreparedStatement对象来代替Statement对象. 在前面的JDBC学习中,对于Statement对象,我们已经知道是封装SQL语句并 ...

  9. android花屏效果的实现(ViewPager的基本使用)

    1.程序运行效果图 二.代码实现 1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  10. 断剑重铸之日,席卷朗朗乾坤之时--PHP学习一月漫记

    传说中阿尔萨斯王子沉沦堕落之后,被巫妖王安置在冰冷的城堡中,静静地等待重出天日,它随身携带的宝剑也埋没与尘土之间,暗淡无光.他想起宝剑伴身,东征西战的峥嵘岁月,忆及如今身陷囹圄,一股怨念由心底升起,许 ...