基于版本: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. Xamarin.Forms弹出对话框插件

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议,请网站留言: 如果您觉得Dotnet9对您有帮助,欢迎赞赏. Xamarin.Forms弹出对话框插件 内容目录 实现效果 业务场景 编码 ...

  2. JAVA->查询并显示输入根目录下全部的文件所在目录路径

    public static boolean qf(File f,boolean a){      boolean b=false;   if(a==true){      File[] fl=f.li ...

  3. tensorflow数据集加载

    本篇涉及的内容主要有小型常用的经典数据集的加载步骤,tensorflow提供了如下接口:keras.datasets.tf.data.Dataset.from_tensor_slices(shuffl ...

  4. 针对mysql8.0报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create

    折腾了好久,后来发现是版本问题,驱动和数据库不匹配导致. 原来用的是5.1.37的驱动.数据库是mysql5.7,可以连接成功. 就在我把数据库换成了8.0之后,所有的买点啥都报标题里的错误了.   ...

  5. Android_ExpandableListView

    实现效果: 类似于QQ联系人列表 相关属性: android:childDivider:指定各组内子类表项之间的分隔条,图片不会完全显示, 分离子列表项的是一条直线 android:childIndi ...

  6. kali的virtualbox镜像账号密码

    下载最新版本kali的virtualbox镜像 默认账号密码 root  密码 toor

  7. Python标准库之re模块

    re模块用于正则表达式. 正则表达式在线测试:http://c.runoob.com/front-end/854 正则表达式元字符可以参考:https://www.w3cschool.cn/zheng ...

  8. oracle建数据库

    oracle用户界面登陆 用户要切换到oracle sqlplus / as sysdba //sys用户是oracle的最高管理员所以要加上as help index //查看命令列表,sql中不区 ...

  9. ms17-010 利用msf的exp和一个扫描工具的复现

    0x01简介 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码. 攻击对象:win7及win7以下的操作系统且开启了445端口s ...

  10. 如何将.sql文件导入到mysql的数据库中

    首先通过cmd的net start mysql57 启动mysql的服务器 然后,输入命令:mysql -h 127.0.0.1 -u root -p来启动mysql服务 最后 上图画红圈的部分是.s ...