基于版本: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的更多相关文章

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

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

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

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

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

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

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

    基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默远程克隆PDB.将 CDB1 中的 PDB1 克隆为 CDB2 中的 ERP2 对应路径:Creating a PDB ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. CentOS7配置ftp

    1.下载vsftpd yum install -y vsftpd 2.设置开机自启动 systemctl enable vsftpd.service 3.启动 systemctl start vsft ...

  2. 数组工具Array的基本使用

    /* * Arrays数组工具的基本使用 */import java.util.Arrays; public class Day02_03 {    public static void main(S ...

  3. .net生成PDF文件的几种方式

    以下为在.net mvc中,生成pdf的几种方式,资料都是在做项目时网上找的 1.使用Microsoft.Office.Interop.Word.dll将word转换为PDF dll可以单独下载,一般 ...

  4. spring boot 集成 Mybatis,JPA

    相对应MyBatis, JPA可能大家会比较陌生,它并不是一个框架,而是一组规范,其使用跟Hibernate 差不多,原理层面的东西就不多讲了,主要的是应用. Mybatis就不多说了,SSM这三个框 ...

  5. bitset刷题记录

    大佬的bitset用法小结 https://www.cnblogs.com/zwfymqz/p/8696631.html BZOJ3687简单题 题意:求子集的算术和的异或和,子集大小为n(n< ...

  6. 硬核干货 | C++后台开发学习路线

    2020秋招提前批 C/C++相关开发 拿到腾讯.华为等offer 学习路线及时间安排 推荐时间为4个月,包括四部分:语言,计算机基础知识,项目基础知识,项目实践. 语言 推荐学习1个月 学习方针:视 ...

  7. tensorflow张量限幅

    本篇内容有clip_by_value.clip_by_norm.gradient clipping 1.tf.clip_by_value a = tf.range(10) print(a) # if ...

  8. Easyui-Tree和Combotree使用注意事项-sunziren

    版权声明:本文为sunziren原创文章,博客园首发,转载务必注明出处以及作者名称. Easyui-Tree和Combotree所使用的数据结构是类似的,在我的上一篇文章<Easyui-Tree ...

  9. Hadoop学习之路(7)MapReduce自定义排序

    本文测试文本: tom 20 8000 nancy 22 8000 ketty 22 9000 stone 19 10000 green 19 11000 white 39 29000 socrate ...

  10. 查看appium参数

    首先打开appium server并运行,然后将手机与电脑相连,然后在python中写代码,但是代码需要出入appium参数,这些参数怎么查询呢? 1.创建appium参数 { "platf ...