代码改变世界

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

2019-08-13 09:38  askscuti  阅读(689)  评论(0编辑  收藏  举报

基于版本:19c (12.2.0.3) AskScuti

创建方法:克隆本地PDB(从本地其他PDB创建新的PDB)

对应路径:Creating a PDB --> Cloning --> Locally

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

内容总览

1. 概述

2. 设置相关参数

3. 设置被克隆的PDB为只读模式

4. 克隆新的PDB

5. 打开新的PDB

 

1. 概述

克隆本地PDB的意思是指:源PDB位于本地CDB中,在当前CDB内通过某个PDB(非PDB$SEED种子)来克隆新的可插入数据库PDB

整体过程为:

1). 设置相关参数或子句

2). 连接到根后将被克隆的PDB置为只读模式

3). 开始克隆

4). 打开被克隆的PDB和新的PDB

 

2. 设置相关参数

参数和子句设置具体可参考《在多租户(容器)数据库中如何创建PDB:方法1》。

您可设置 OMF 参数 DB_CREATE_FILE_DEST='具体路径';

或者设置 PDB_FILE_NAME_CONVERT='本地PDB路径','新的PBD路径';

或者在创建语句中使用 FILE_NAME_CONVERT=('本地PDB路径','新的PDB路径'); 子句

或者在创建语句中使用 CREATE_FILE_DEST='新的PDB路径';子句

 例如:设置DB_CREATE_FILE_DEST='具体路径'; 其他参数及子句的例子请参考番外篇:克隆本地PDB中其他参数和子句的说明

SQL> !mkdir /u01/app/oracle/oradata/CDB1/pdb2

SQL> show parameter db_create_file_dest;

SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/CDB1/pdb2';

System altered.

 

3. 设置被克隆的PDB为只读模式

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
     2 PDB$SEED      READ ONLY  NO
     3 PDB1          READ WRITE NO

SQL> alter pluggable database pdb1 close immediate;

Pluggable database altered.

SQL> alter pluggable database pdb1 open read only;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
     2 PDB$SEED      READ ONLY  NO
     3 PDB1          READ ONLY  NO

 

4. 克隆新的PDB

从PDB1克隆PDB2

SQL> create pluggable database pdb2 from pdb1;

Pluggable database created.

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
     2 PDB$SEED      READ ONLY  NO
     3 PDB1          READ ONLY  NO
     4 PDB2          MOUNTED

 

5. 打开新的PDB

SQL> alter pluggable database pdb2 open read write;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
     2 PDB$SEED      READ ONLY  NO
     3 PDB1          READ ONLY  NO
     4 PDB2          READ WRITE NO

重新打开被克隆的PDB1

SQL> alter pluggable database pdb1 close;

Pluggable database altered.

SQL> alter pluggable database pdb1 open read write;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- --------- ---------- ----------
     2 PDB$SEED      READ ONLY  NO
     3 PDB1          READ WRITE NO
     4 PDB2          READ WRITE NO