可以移动Non-CDB来变为一个PDB。可以使用以下方式来完成这个任务:

.通过克隆Non-CDB来创建PDB。从Oracle 12.1.0.2开始,可以通过克隆Non-CDB来创建PDB。这种方法是创建PDB最简单的一种方法,但它需要从Non-CDB中把文件复制到新目录中。

.使用dbms_pdb包来生成XML元数据文件,XML元数据文件用来描述Non-CDB的数据文件可以用来将其附加到CDB中。这种方法比克隆Non-CDB要执行更多的步骤,但它能让你不用移动Non-CDB的文件来创建PDB。为了使用这种技术 ,Non-CDB必须是Oracle 12C的Non-CDB。如果当前的Non-CDB使用Oracle 12C之前的版本,那么你必须将Non-CDB升级到Oracle 12C。

.使用Oracle Data Pump导出/导入

可以使用Data Pump从Non-CDB中导出数据然后导入到PDB中。当你执行导入时,在用户名后要指定PDB的连接标识符。例如,如果PDB的连接标识符为hrpdb,那么在执行导入进执行以下命令:

imdp username@hrpdb ....如果Non-CDB的版本为11.2.0.3或之后的版本,那么可以使用完全传输导出/导入来移动数据。当将版本为11.2.0.3或之后的11g版本的Non-CDB迁移到Oracle 12C,那么在导出时需要将version参数设置为12.0.0.0.0或更高版本。如果Non-CDB的版本为11.2.0.3之前的版本,那么可以使用传输表空间来移动数据或者执行完全数据库导出\导入。

.使用goldengate复制

可以使用goldengate从Non-CDB中复制数据到PDB中。

对Non-CDB执行dbms_pdb包

可以使用dbms_pdb包来为Non-CDB生成XML元数据文件来将其附加到CDB中。使用dbms_pdb包移动Non-CDB为PDB的操作如下:

1.如果CDB不存在先创建CDB

2.确保Non-CDB处于事务一致状态并将它置于只读状态

[oracle@jytest1 ~]$ export ORACLE_SID=orcl1

[oracle@jytest1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Thu Sep 7 00:38:31 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area 4294967296 bytes

Fixed Size 8628936 bytes

Variable Size 2583692600 bytes

Database Buffers 1694498816 bytes

Redo Buffers 8146944 bytes

Database mounted.

SQL> alter database open read only;

Database altered.

[oracle@jytest2 ~]$ export ORACLE_SID=orcl2

[oracle@jytest2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Thu Sep 7 00:38:31 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area 4294967296 bytes

Fixed Size 8628936 bytes

Variable Size 2583692600 bytes

Database Buffers 1694498816 bytes

Redo Buffers 8146944 bytes

Database mounted.

SQL> alter database open read only;

Database altered.

3.连接到Non-CDB,并执行dbms_pdb.describe过程来创建描述Non-CDB的XML元数据文件。执行该过程的用户必须有sysdba权限。

SQL> exec dbms_pdb.describe(pdb_descr_file=>'/cdb_pdb/orcl.xml');

PL/SQL procedure successfully completed.

[oracle@jytest2 cdb_pdb]$ ls -lrt

total 8

-rw-r--r-- 1 oracle asmadmin 6963 Sep 7 00:18 orcl.xml

4.执行dbms_pdb.check_plug_compatibility过程来判断是否Non-CDB与目标CDB兼容。当执行这个过程时设置以下参数:

-pdb_descr_file:设置XML元数据文件的完整路径。

-pdb_name:指定新PDB名字,如果这个参数被忽略,那么将使用XML元数据文件中的PDB名字。

SQL> set serveroutput on

1 declare

2 compatible constant varchar2(3) :=

3 case dbms_pdb.check_plug_compatibility(

4 pdb_descr_file => '/cdb_pdb/orcl.xml',

5 pdb_name => 'orclpdb')

6 when true then 'yes'

7 else 'no'

8 end;

9 begin

10 dbms_output.put_line(compatible);

11 end;

12 /

yes

PL/SQL procedure successfully completed.

如果输出为yes,那么Non-CDB是兼容的,并且可以继续下一步操作。如果输出为no,那么Non-CDB与目标CDB不兼容,并且可以检查pdb_plug_in_violations视图来检查为什么不兼容。所有的违反条目在继续操作之前必须被修复。例如,任何版本或补丁不匹配可以通过执行升级或打补丁来解决。在修复这个违反条目后,再次执行dbms_pdb.check_plug_compatibility来确保Non-CDB与目标CDB兼容。

5.关闭Non-CDB

[grid@jytest1 ~]$ srvctl stop database -db orcl

6.插入Non-CDB

SQL> create pluggable database orclpdb using '/cdb_pdb/orcl.xml'

2 copy

3 file_name_convert = ('+DATA/orcl/datafile/', '+data/jy/orclpdb/','+DATA/orcl/tempfile/','+data/jy/orclpdb/');

Pluggable database created.

SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE

-------------------------------------------------------------------------------------------------------------------------------- ----------

PDB$SEED READ ONLY

JYPDB READ WRITE

ORCLPDB MOUNTED

ASMCMD [+data/jy/orclpdb] > ls -lt

Type Redund Striped Time Sys Name

DATAFILE UNPROT COARSE SEP 07 00:00:00 N usertbs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERTBS.278.954031319

DATAFILE UNPROT COARSE SEP 07 00:00:00 N users01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERS.302.954031321

DATAFILE UNPROT COARSE SEP 07 00:00:00 N undotbs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/UNDOTBS1.273.954031321

TEMPFILE UNPROT COARSE SEP 07 00:00:00 N temp01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/TEMPFILE/TEMPTS1.315.954031465

DATAFILE UNPROT COARSE SEP 07 00:00:00 N system01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/SYSTEM.303.954031321

DATAFILE UNPROT COARSE SEP 07 00:00:00 N sysaux01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/SYSAUX.295.954031321

如果这里没有任何错误,那么现在不打开新PDB。

7.执行$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql脚本,这个脚本必须在第一次打开新PDB之前执行。如果PDB不是由Non-CDB创建而来,那么就不需要执行这个脚本。为了执行noncdb_to_pdb.sql脚本,完成以下操作:

a.访问PDB,当前用户必须有sysdba权限,并且权限必须是公共或本地授予给PDB。最好使用as sysdba进行连接。

b.执行noncdb_to_pdb.sql脚本:

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

8.以读写模式打开新PDB

SQL> alter pluggable database orclpdb open read write;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE

-------------------------------------------------------------------------------------------------------------------------------- ----------

PDB$SEED READ ONLY

JYPDB READ WRITE

ORCLPDB READ WRITE

9.备份PDB

到此使用Non-CDB来创建PDB的操作就完成了。

oracle12c不使用cdb模式,Oracle 12c 使用Non-CDB来创建PDB相关推荐

  1. oracle12c racpdb,Oracle 12C R2的CDB与PDB简单管理操作

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  2. oracle 12c tns,oracle 12c 怎样配置TNS来访问PDB

    oracle 12c 怎样配置TNS来访问PDB 淆癏宙 | 浏览 147 次 我有更好的答案 发布于2016-06-27 16:18 最佳答案 1.配置监听 首先要明确,所有的PDB都使用1个监听, ...

  3. oracle12c cdb修改,Oracle 12C CDB字符集修改

    Oracle 12C 可以进行PDB的单独修改字符集方式,后续介绍.本次采用修改CDB全部修改的方式: 先查询数据库字符集情况: select from nls_database_parameters ...

  4. Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换

    undo 在12C R1版本中只支持Global Shared Undo模式, 所有container共享一个UNDO表空间, 目前保留这种模式只是为了升级过渡, 在12C R2引入了PDB Loca ...

  5. oracle中pdb,Oracle 12C新特性-CDB和PDB 详解

    最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...

  6. oracle 12c 归档模式,Oracle 12c 归档模式更改

    Oracle 12c   归档模式更改 2014-12-15 16:03:20 1.shutdown normal或shutdown immediate关闭数据库 SQL*Plus: Release ...

  7. oracle12c口令文件,学习笔记:Oracle 12C ASM 新特性 共享密码文件

    天萃荷净 测试试验ORACLE 12C ASM 新特性 共享密码文件的详细过程 在ORACLE 12C之前大家都知道密码文件是存放在?/dbs或者?/database中,如果要修改修改sysdba权限 ...

  8. win10安装oracle12c注意事项,win10系统安装oracle 12c出现ins-30131错误的修复办法

    今天和大家分享一下win10系统安装oracle 12c出现ins-30131错误问题的解决方法,在使用win10系统的过程中经常不知道如何去解决win10系统安装oracle 12c出现ins-30 ...

  9. oracle adg 人工干预,ORACLE 12C ADG 之十四 (ADG PDB级闪回(Flashback PDB))

    #PDB级闪回(Flashback PDB) #PDB闪回有几个基本的前提条件: 1,enable local undo 2,enable archivelog mode 3,enable flash ...

  10. oracle 12 去掉 cdb,Oracle 12c no-CDB转换为CDB

    如果把数据库从11g 升级到12c,或者在12c中创建的,就是NON CDB,那么这样的数据库就是普通的单实例, 和12c 之前的数据库没有区别,但12c 的特点就是CDB 管理,所以既然上12c,还 ...

最新文章

  1. 3分钟带你理解深度学习中的RNN和LSTM究竟是什么?
  2. 微软VSTS的新功能:WebTest要点
  3. 如何让SAP Spartacus ng build生成的JavaScript资源附带上store ID
  4. 【今日CV 计算机视觉论文速览 第146期】Mon, 22 Jul 2019
  5. PHPCMSV9前台会员注册提示操作失败的解决办法
  6. python 帮助 autocad_python 使用pyautocad操作AutoCAD
  7. pthread异步_异步管道的实现
  8. css 判断 移动设备 横屏 或 竖屏
  9. datagrid--新增
  10. Java垃圾回收机制(GC原理)解析
  11. SqlServer数据库 设置查询结果字体
  12. Android常用控件-01
  13. Android TextView显示表情、标签、超链接
  14. python垃圾邮件识别_Python 手写朴素贝叶斯分类器检测垃圾邮件/短信
  15. 远程IO模块16DO开关量输出采集远程模块
  16. html5模板 欧美风格,红色欧美风格响应式后台系统网页模板
  17. 面试官:你连SSO都不懂,就别来面试了
  18. x64dbg 调试 EXCEPTION_ACCESS_VIOLATION C0000005
  19. Android okHttp封装库(2) -- okhttp-OkGo
  20. 不懂SpringApplication生命周期事件?那就等于不会Spring Boot嘛

热门文章

  1. 【Arduino】一天入门Arduino语言 教程
  2. 鸿蒙DevEco Studio3.0——HelloWorld开发及模拟器运行
  3. 基于javaweb+jsp房屋租赁系统(java+SSM+jsp+mysql+maven)
  4. 错觉图片生成实验 - 闪现的绿点
  5. 凤凰os可以用linux指令么,用凤凰OS必须先了解的那些事
  6. 量子笔记:量子计算祛魅
  7. Unity 3D游戏-塔防类游戏源码:重要方法和功能的实现
  8. 真香啊,Python 轻松制作制作GIF动图
  9. VLC加载插件失败原因及解决
  10. BurpSuite系列(四)----Scanner模块(漏洞扫描)