在多租户(容器)数据库中如何创建PDB:方法4 克隆远程Non-CDB
基于版本:19c (12.2.0.3) AskScuti
创建方法:克隆远程Non-CDB(从 Non-CDB 中进行远程克隆)。将 非CDB数据库PROD1 远程克隆为 CDB1 中的 PDB7
对应路径:Creating a PDB --> Cloning --> Remotely --> From a Non-CDB
在容器数据库CDB里面如何创建PDB,官方文档给出了一张创建PDB技术选项图,图片如下:

内容总览
1. 概述
2. 源数据库PROD1设置只读
3. 编辑TNSNAMES.ora
4. 创建DBLINK
5. 远程克隆PROD1
6. 执行noncdb_to_pdb.sql脚本
7. 打开PDB7
1. 概述
克隆远程Non-CDB的意思是指:被克隆的源数据库为非CDB数据库(12c之前版本称之为 Non-CDB),通过DBLink方式进行克隆。

2. 源数据库PROD1设置只读
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started. Total System Global Area 1241513488 bytes
Fixed Size 8896016 bytes
Variable Size 318767104 bytes
Database Buffers 905969664 bytes
Redo Buffers 7880704 bytes
Database mounted.
SQL> alter database open read only; Database altered.
3. 编辑TNSNAMES.ora
PROD1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.14)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD1)
)
)
4. 创建DBLINK
SQL> create database link link_prod1 connect to system identified by oracle using 'PROD1'; Database link created.
5. 远程克隆PROD1
SQL> create pluggable database pdb7 from NON$CDB@link_prod1 create_file_dest='/u01/app/oracle/oradata/CDB1/pdb7'; Pluggable database created.
如果报错如下:
SQL> create pluggable database pdb7 from NON$CDB@link_prod1 create_file_dest='/u01/app/oracle/oradata/CDB1/pdb7';
create pluggable database pdb7 from NON$CDB@link_prod1 create_file_dest='/u01/app/oracle/oradata/CDB1/pdb7'
*
ERROR at line 1:
ORA-17628: Oracle error 1031 returned by remote Oracle server
ORA-01031: insufficient privileges
到源数据库里面针对PROD1数据库,授权SYSTEM用户 create pluggable database 权限即可。
SQL> shutdown immediate;
SQL> startup;
SQL> select * from dba_sys_privs where GRANTEE='SYSTEM'; GRANTE PRIVILEGE ADM COM INH
------ ------------------------ --- --- ---
SYSTEM GLOBAL QUERY REWRITE NO YES YES
SYSTEM CREATE TABLE NO YES YES
SYSTEM DEQUEUE ANY QUEUE YES YES YES
SYSTEM ENQUEUE ANY QUEUE YES YES YES
SYSTEM SELECT ANY TABLE NO YES YES
SYSTEM MANAGE ANY QUEUE YES YES YES
SYSTEM UNLIMITED TABLESPACE NO YES YES
SYSTEM CREATE MATERIALIZED VIEW NO YES YES SQL> grant create pluggable database to system; Grant succeeded. SQL> select * from dba_sys_privs where GRANTEE='SYSTEM'; GRANTE PRIVILEGE ADM COM INH
------ ------------------------- --- --- ---
SYSTEM CREATE PLUGGABLE DATABASE NO NO NO
SYSTEM GLOBAL QUERY REWRITE NO YES YES
SYSTEM CREATE TABLE NO YES YES
SYSTEM DEQUEUE ANY QUEUE YES YES YES
SYSTEM ENQUEUE ANY QUEUE YES YES YES
SYSTEM SELECT ANY TABLE NO YES YES
SYSTEM MANAGE ANY QUEUE YES YES YES
SYSTEM UNLIMITED TABLESPACE NO YES YES
SYSTEM CREATE MATERIALIZED VIEW NO YES YES SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database open read only; Database altered.
6. 执行noncdb_to_pdb.sql脚本
SQL> alter session set container=pdb7; SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
7. 打开PDB7
SQL> alter pluggable database pdb7 open; Pluggable database altered.
在多租户(容器)数据库中如何创建PDB:方法4 克隆远程Non-CDB的更多相关文章
- 在多租户(容器)数据库中如何创建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 ...
- 在多租户(容器)数据库中如何创建PDB:方法6 DBCA本地克隆PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默本地克隆PDB.根据 CDB1 中的 PDB1 克隆出 CDB1 中的 PDB_CLONE 对应路径:Creating ...
- 在多租户(容器)数据库中如何创建PDB:方法5 DBCA远程克隆PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默远程克隆PDB.将 CDB1 中的 PDB1 克隆为 CDB2 中的 ERP2 对应路径:Creating a PDB ...
- 在多租户(容器)数据库中如何创建PDB:方法1 从种子创建PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:从零开始创建一个PDB(从PDB$SEED创建新的PDB) 对应路径:Creating a PDB --> Creating ...
- oracle12之 多租户容器数据库架构
解读: 这张幻灯片展示了三个被部署的应用程序的整合 三个不同的非cdbs成为一个单一的.幻灯片中的图形显示了一个多租户 容器数据库有四个容器:根和三个可插入的数据库.每一个 可插入数据库有它自己的专用 ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- oracle 数据库中(创建、解锁、授权、删除)用户
上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...
- Ext.net中Combobox如何绑定数据库中的值-通用方法
今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID=" /> </Items> ...
随机推荐
- 【sklearn决策树算法】DecisionTreeClassifier(API)的使用以及决策树代码实例 - 鸢尾花分类
决策树算法 决策树算法主要有ID3, C4.5, CART这三种. ID3算法从树的根节点开始,总是选择信息增益最大的特征,对此特征施加判断条件建立子节点,递归进行,直到信息增益很小或者没有特征时结束 ...
- Wannafly Winter Camp 2020 Day 7E 上升下降子序列 - 数学
神奇公式 #include <bits/stdc++.h> using namespace std; #define int long long int n,mod,c[205][205] ...
- HDU1163 - Eddy's digital Roots
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1163 九余数:一个数除于9所得到的余数,即模9得到的值 求九余数: 求出一个数的各位数字之和,如果是两 ...
- javaweb实现注册页面(数据库连接以及ajax验证)
先放效果图 可实现js实时验证 可实现ajax实时验证注册信息是否存在 页面实现要求 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求 ...
- 《The good doctor》视频笔记
第一季 第一弹可以看 角色 肖恩莫非 梅伦德斯 克莱尔·布朗 贾里德·卡鲁 道格拉斯院长 卡莉 青木 一个很厉害的女实习医生,忘记名字了 病理知识 自闭症:由于神经系统失调导致的发育障碍,其病征包括不 ...
- exe 发布为服务
参考连接: https://www.cnblogs.com/liuxiaoji/p/8016261.html 1.有两个文件 srvany.exe,instsrv.exe 然后放到指定的文件下下: 2 ...
- arm的字节对齐问题总结(转)
问题由来:pc的lsb总是0,因为代码至少要字对齐.cm3的指令至少是半字对齐的(16) 一.啥是字对齐?为啥要字对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访 ...
- MySql 小表驱动大表
在了解之前要先了解对应语法 in 与 exist. IN: select * from A where A.id in (select B.id from B) in后的括号的表达式结果要求之输出一列 ...
- Android 基础知识 -- BroadcastReceiver
BroadcastReceiver 广播,是一种事件传递机制,可以跨应用进行事件传递(系统级). 在使用广播的时候,不宜添加过多的逻辑或者耗时(广播内不允许开辟线程)操作,超过10秒,导致ANR 1 ...
- Leetcode Week1 Regular Expression Matching
Question Given an input string (s) and a pattern (p), implement regular expression matching with sup ...