iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle 12c中怎么利用Non-CDB创建PDB
  • 365
分享到

Oracle 12c中怎么利用Non-CDB创建PDB

2024-04-02 19:04:59 365人浏览 八月长安
摘要

本篇文章给大家分享的是有关oracle 12c中怎么利用Non-CDB创建PDB,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。可以移动Non-

本篇文章给大家分享的是有关oracle 12c中怎么利用Non-CDB创建PDB,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

可以移动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

以上就是Oracle 12c中怎么利用Non-CDB创建PDB,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 12c中怎么利用Non-CDB创建PDB

本文链接: https://www.lsjlt.com/news/57247.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle 12c中怎么利用Non-CDB创建PDB
    本篇文章给大家分享的是有关Oracle 12c中怎么利用Non-CDB创建PDB,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。可以移动Non-...
    99+
    2024-04-02
  • Oracle 12c中怎么手动创建CDB
    这期内容当中小编将会给大家带来有关Oracle 12c中怎么手动创建CDB,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用create database创建CDB的具体...
    99+
    2024-04-02
  • Oracle 12c中如何创建PDB
    这篇文章主要介绍了Oracle 12c中如何创建PDB,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 PDB数据库的创建可以从现存的数据库...
    99+
    2024-04-02
  • oracle 12c中怎么搭建PDB refresh
    这篇文章主要讲解了“oracle 12c中怎么搭建PDB refresh”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle 12c中怎么搭建PDB ...
    99+
    2024-04-02
  • Oracle 12c中使用FILE_NAME_CONVERT创建pdb报错ORA-01276怎么办
    这篇文章给大家分享的是有关Oracle 12c中使用FILE_NAME_CONVERT创建pdb报错ORA-01276怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在使用1...
    99+
    2024-04-02
  • oracle中怎么单为PDB创建AWR报告
    小编给大家分享一下oracle中怎么单为PDB创建AWR报告,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!只有12.2才有这个功...
    99+
    2024-04-02
  • Oracle 12C使用UNTIL SEQUENCE子句对Non-CDB中的表执行按时间点恢复
    Oracle 12C使用UNTIL SEQUENCE子句对Non-CDB中的表执行按时间点恢复执行操作如下 1.对整个Non-CDB(orcl)生成RMAN备份 RMAN> backup as...
    99+
    2024-04-02
  • Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复
    小编给大家分享一下Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起...
    99+
    2024-04-02
  • Oracle 12C如何使用RMAN将Non-CDB中分表的多个分区恢复到新用户方案中
    这篇文章主要介绍了Oracle 12C如何使用RMAN将Non-CDB中分表的多个分区恢复到新用户方案中,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起...
    99+
    2024-04-02
  • Oracle 12C如何使用RMAN将Non-CDB多个用户方案中的多个表或表分区恢复到新用户方案中
    这篇文章主要介绍Oracle 12C如何使用RMAN将Non-CDB多个用户方案中的多个表或表分区恢复到新用户方案中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Oracle 12C...
    99+
    2024-04-02
  • 怎么在Python中利用pdb设置断点
    怎么在Python中利用pdb设置断点?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络...
    99+
    2023-06-14
  • Laravel中怎么利用Provider 创建 Service
    这篇文章将为大家详细讲解有关Laravel中怎么利用Provider 创建 Service,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、定义服务类我们这...
    99+
    2024-04-02
  • oracle 中怎么创建JOB
    今天就跟大家聊聊有关oracle 中怎么创建JOB,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、创建JOB,可以指定固定的时间(对运行时间的管理...
    99+
    2024-04-02
  • Linux 中怎么利用udev创建ASM DISK
    Linux 中怎么利用udev创建ASM DISK,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、查看系统环境内核版本:[r...
    99+
    2024-04-02
  • C#中怎么利用Access创建mdb库
    C#中怎么利用Access创建mdb库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#操作Access主要知识点如下:using System.Da...
    99+
    2023-06-17
  • Oracle中怎么创建用户和表
    这篇文章主要讲解了“Oracle中怎么创建用户和表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle中怎么创建用户和表”吧!Oracle创建用户、表(1) 连接C:\Users\LE...
    99+
    2023-07-05
  • Fedora中怎么利用Cockpit创建虚拟机
    Fedora中怎么利用Cockpit创建虚拟机,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Cockpit 是一个正在活跃开发的项目,它有许多扩展其工作的插件。...
    99+
    2023-06-16
  • 怎么在JavaScript中利用map创建数组
    这篇文章将为大家详细讲解有关怎么在JavaScript中利用map创建数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript是什么JavaScript是一种直译式的脚本语言,...
    99+
    2023-06-14
  • Python中怎么利用函数创建字典
    Python中怎么利用函数创建字典,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在Python/C API中提供了PyDict_New()函数用以创建一个新的字...
    99+
    2023-06-17
  • Oracle中怎么创建约束
    Oracle中怎么创建约束,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Oracle  创建主键,外键, check...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作