基于版本:19c (12.2.0.3) AskScuti

创建方法:DBCA静默远程克隆PDB。将 CDB1 中的 PDB1 克隆为 CDB2 中的 ERP2

对应路径:Creating a PDB --> Cloning --> 无对应路径(DBCA)

在容器数据库CDB里面如何创建PDB,官方文档给出了一张创建PDB技术选项图,图片如下:

注意:DBCA静默克隆建库,方法没有在此图片上显示,本文将DBCA方法记在Cloning下面

另外:DBCA克隆或重定位PDB,不支持开启了OMF的CDB, CDB1和CDB2必须都为归档模式。

内容总览

1. 概述

2. CDB1:PDB1确认用户和数据

3. CDB1创建公共用户并授权

4. CDB2进行DBCA克隆

5. CDB2验证

6. 错误情况

1. 概述

通过DBCA工具进行静默克隆,两个CDB数据库:CDB1PDB1)和 CDB2ERP1)。

host 1:192.168.1.12  CDB1(PDB1) 远程服务器

host 2:192.168.1.14  CDB2(ERP1) 本地服务器

CDB1PDB1)中有个用户HR,下面有张表 EMPLOYEES

CDB1下面的 PDB1 静默创建远程克隆到 CDB2 中的 ERP2,并验证 ERP2 中是否存在HR用户及EMPLOYEES表。

2. CDB1:PDB1确认用户和数据

[oracle@henry ~]$ sqlplus hr/hr@pdb1

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 28 09:19:35 2019
Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Last Successful login time: Wed Aug 28 2019 09:18:10 +08:00 Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0 SQL> select count(1) from employees; COUNT(1)
----------
107

HR用户脚本及创建方法可以在这里获取

3. CDB1创建公共用户并授权

SQL> conn / as sysdba
Connected.
SQL> create user c##remote_user identified by oracle container=all; User created. SQL> grant create session,create pluggable database to c##remote_user container=all; Grant succeeded. SQL> exit

4. CDB2进行DBCA克隆

dbca -silent -createPluggableDatabase -createFromRemotePDB -remotePDBName pdb1 -remoteDBConnString 192.168.1.12:1521/cdb1 -remoteDBSYSDBAUserName sys -remoteDBSYSDBAUserPassword oracle -sysDBAUserName sys -sysDBAPassword oracle -dbLinkUsername c##remote_user -dbLinkUserPassword oracle -sourceDB cdb2 -pdbName erp2

过程

[oracle@henry ~]$ dbca -silent -createPluggableDatabase -createFromRemotePDB -remotePDBName pdb1 -remoteDBConnString 192.168.1.12:1521/cdb1 -remoteDBSYSDBAUserName sys -remoteDBSYSDBAUserPassword oracle -sysDBAUserName sys -sysDBAPassword oracle -dbLinkUsername c##remote_user -dbLinkUserPassword oracle -sourceDB cdb2 -pdbName erp2
Prepare for db operation
50% complete
Create pluggable database using remote clone operation
100% complete
Pluggable database "erp2" plugged successfully.
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb2/erp2/cdb2.log" for further details.

5. CDB2验证

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 ERP1 MOUNTED
4 ERP2 READ WRITE NO
SQL> alter session set container=erp2; Session altered. SQL> select count(*) from hr.employees; COUNT(*)
----------
107

6. 错误情况

报错一

[FATAL] [DBT-08101] The selected PDB (pdb1) is not open.
CAUSE: PDB has to be open in READ WRITE mode to perform the configuration.

请检查 -remoteDBConnString 参数指定的连接字符串是否正确。用的是监听中的 service name,不是 tnsname 的别名。

报错二

[FATAL] [DBT-11502] The instance (CDB2) is not running on the local node.
CAUSE: A locally running instance is required to perform the selected operation.
ACTION: Specify a locally running database, or execute DBCA on a node where the database instance is running.

请检查 -sourceDB 参数指定的实例名称是否正确。大小写敏感,如果是大写,需带单引号。还需注意,这个“源库” 指的不是被克隆的数据库,而是要克隆到的目标库

报错三

[FATAL] [DBT-19401] Archive log mode is not enabled in the (cdb1) database.
CAUSE: (cdb1) database should be configured with archive log mode to perform the operation.

请检查数据库是否为归档模式,非归档模式无法进行DBCA克隆。

在多租户(容器)数据库中如何创建PDB:方法5 DBCA远程克隆PDB的更多相关文章

  1. 在多租户(容器)数据库中如何创建PDB:方法6 DBCA本地克隆PDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默本地克隆PDB.根据 CDB1 中的 PDB1 克隆出 CDB1 中的 PDB_CLONE 对应路径:Creating ...

  2. 在多租户(容器)数据库中如何创建PDB:方法2 克隆本地PDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆本地PDB(从本地其他PDB创建新的PDB) 对应路径:Creating a PDB --> Cloning --> ...

  3. 在多租户(容器)数据库中如何创建PDB:方法3 克隆远程PDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆远程PDB(从非当前CDB中进行远程克隆).将 CDB2 中的 ERP1 远程克隆为 CDB1 中的 PDB6 对应路径:Cre ...

  4. oracle12之 多租户容器数据库架构

    解读: 这张幻灯片展示了三个被部署的应用程序的整合 三个不同的非cdbs成为一个单一的.幻灯片中的图形显示了一个多租户 容器数据库有四个容器:根和三个可插入的数据库.每一个 可插入数据库有它自己的专用 ...

  5. 使用JDBC从数据库中查询数据的方法

    * ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...

  6. 在多租户(容器)数据库中如何创建PDB:方法4 克隆远程Non-CDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆远程Non-CDB(从 Non-CDB 中进行远程克隆).将 非CDB数据库PROD1 远程克隆为 CDB1 中的 PDB7 对 ...

  7. 在多租户(容器)数据库中如何创建PDB:方法1 从种子创建PDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:从零开始创建一个PDB(从PDB$SEED创建新的PDB) 对应路径:Creating a PDB --> Creating ...

  8. oracle 数据库中(创建、解锁、授权、删除)用户

    上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...

  9. Ext.net中Combobox如何绑定数据库中的值-通用方法

    今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID=" /> </Items> ...

随机推荐

  1. OpenCV学习记录(C++版本)

    HighGUI组件 图像的载入:imread()函数 Mat imread(const string& filename, int flag = 1)其中flag=1代表读入RGB彩色图像,- ...

  2. qt creator源码全方面分析(2-2)

    目录 Common Extension Tasks Common Extension Tasks 本节总结了可用于将UI组件添加到Qt Creator的API函数. 任务 详细 API 添加菜单或菜单 ...

  3. opencv —— morphologyEx 开运算、闭运算、形态学梯度、顶帽、黑帽

    开运算:先腐蚀后膨胀. 能够排除小亮点. 闭运算:先膨胀后腐蚀. 能够排除小黑点. 形态学梯度:膨胀图 — 腐蚀图. 对二值图像进行这一操作,可将图块的边缘突出出来,故可用来保留物体边缘轮廓. 顶帽: ...

  4. Chapter2二分与前缀和

    Chapter 2 二分与前缀和 +++ 二分 套路 如果更新方式写的是R = mid, 则不用做任何处理,如果更新方式写的是L = mid,则需要在计算mid是加上1. 1.数的范围 789 #in ...

  5. Python安装和配置环境变量(简明教程)

    声明:借鉴Python 简明教程 安装我们在本书中提到的「Python 3」指的是 Python 版本大于或等于 Python 3.6.0. 针对Python3.6.版本:注意数据的缓存机制 # ## ...

  6. Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0

    问题说明:导入Maven项目时,想要添加Oracle驱动包时,Maven的pom.xml总是报Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0错. ...

  7. Python 安装 virturalenv 虚拟环境

    返回目录 本篇索引 一.概述 二.Linux下安装Python虚拟环境 三.Windows下安装Python虚拟环境 一.概述 有时候会在一台主机上安装多个不同的Python版本,用以运行不同时期开发 ...

  8. 嵊州D5T2 折纸 folding

    折纸 folding [问题描述] 在非常紧张的 NOIP 考试中,有人喜欢啃指甲,有人喜欢转铅笔,有人喜欢撕 纸条,……而小 x 喜欢迷折纸. 现有一个 W * H 的矩形纸张,监考老师想知道,小 ...

  9. BZOJ#2121. 字符串游戏 [区间dp]

    // powered by c++11 // by Isaunoya #include<bits/stdc++.h> #define rep(i , x , y) for(register ...

  10. 05-SV面向对象编程基础

    1.测试平台的构建 发生器(generator):创建事务并且将它们传给下一级 驱动器(drive):与设计进行会话 监视器(monitor):捕获设计返回的事务 计分板(scoreboard):将捕 ...