在多租户(容器)数据库中如何创建PDB:方法5 DBCA远程克隆PDB
基于版本: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数据库:CDB1(PDB1)和 CDB2(ERP1)。
host 1:192.168.1.12 CDB1(PDB1) 远程服务器
host 2:192.168.1.14 CDB2(ERP1) 本地服务器
CDB1(PDB1)中有个用户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的更多相关文章
- 在多租户(容器)数据库中如何创建PDB:方法6 DBCA本地克隆PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默本地克隆PDB.根据 CDB1 中的 PDB1 克隆出 CDB1 中的 PDB_CLONE 对应路径:Creating ...
- 在多租户(容器)数据库中如何创建PDB:方法2 克隆本地PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆本地PDB(从本地其他PDB创建新的PDB) 对应路径:Creating a PDB --> Cloning --> ...
- 在多租户(容器)数据库中如何创建PDB:方法3 克隆远程PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆远程PDB(从非当前CDB中进行远程克隆).将 CDB2 中的 ERP1 远程克隆为 CDB1 中的 PDB6 对应路径:Cre ...
- oracle12之 多租户容器数据库架构
解读: 这张幻灯片展示了三个被部署的应用程序的整合 三个不同的非cdbs成为一个单一的.幻灯片中的图形显示了一个多租户 容器数据库有四个容器:根和三个可插入的数据库.每一个 可插入数据库有它自己的专用 ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- 在多租户(容器)数据库中如何创建PDB:方法4 克隆远程Non-CDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆远程Non-CDB(从 Non-CDB 中进行远程克隆).将 非CDB数据库PROD1 远程克隆为 CDB1 中的 PDB7 对 ...
- 在多租户(容器)数据库中如何创建PDB:方法1 从种子创建PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:从零开始创建一个PDB(从PDB$SEED创建新的PDB) 对应路径:Creating a PDB --> Creating ...
- oracle 数据库中(创建、解锁、授权、删除)用户
上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...
- Ext.net中Combobox如何绑定数据库中的值-通用方法
今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID=" /> </Items> ...
随机推荐
- Docker入门(windows安装)
Docker入门(安装)Docker是一种轻量级容器技术,实际中直接运行在当前操作系统(Linux)上,而不是虚拟机中.PaaS提供了存储,数据库,网络,负载均衡,自动扩展等功能,Docker云平台就 ...
- gulp常用插件之gulp-inject使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-inject这个插件的作用与wiredep类似,不同的是可以自己任意指定需要插入文件的列表.它同样是利用注释来寻找插入的位置.获取源文件 ...
- [Python]爬取首都之窗百姓信件网址id python 2020.2.13
经人提醒忘记发网址id的爬取过程了, http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?original ...
- 字符串积累ing
明天就要上网课拉拉啦啦! 数据库先在手机端登录然后转战客户端试之! 操作系统在客户端登录试一试! 马原用学习通试试啦! 首先,介绍一下strlen,strcpy,strcmp函数! 参考:https: ...
- HashMap的一些学习
1.equals和==的对比==用于比较引用和比较基本数据类型时具有不同的功能:A:比较基本数据类型,如果两个值相同,则结果为true而在比较引用时,如果引用指向内存中的同一对象,结果为true; e ...
- threadpool 实例介绍第二篇
- H5_0013:CSS特色样式集
按比例变化,同时又限制最大宽高 ".start-wrap {", " width:40%;", " top: 83.21%;", " ...
- JS获取样式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- javascripts的this
前言 javascript 的 this 指向主要是依赖上下文对象决定,箭头函数例外. 默认绑定 在全局作用域下调用函数,函数的this默认指向window. 注意1:严格模式下,默认指向undefi ...
- Python学习笔记四:主要图表
图表部分,很多要记忆的.以下来自于培训材料的记录. 但我个人觉得更重要的是要根据业务特点确定用什么样的图表,然后再去查具体的参数,光记住参数意义不是很大. import numpy as np imp ...