当前位置:澳门新葡亰亚洲在线 > 程序开发 > 【Oracle122新特性掌上手册】-第八卷 PDB的快速创建

【Oracle122新特性掌上手册】-第八卷 PDB的快速创建

文章作者:程序开发 上传时间:2019-01-03

  原标题:【Oracle12.2新特性掌上手册】-第八卷 PDB的快速创建与移除

  编辑手记:在Oracle12.2 中提供了多种创建PDB的方式,能够更快速便捷地实现数据库的扩展和变更。今天我们来介绍通过SQL*Plus管理的方式。

  必须为每个容器确定唯一的容器名称。每个容器名称在单个CDB中必须是唯一的,并且每个容器名称在通过特定侦听器访问实例的所有CDB的范围内必须是唯一的。

  PDB名称用于区分PDB与CDB中的其他PDB。 PDB名称遵循与服务名称相同的规则,其中包括不区分大小写。

  如果要在具有物理standby数据库的Oracle DG配置中创建PDB,则必须在创建PDB之前完成其他任务。

  如果要创建包含使用了透明数据加密过的数据的PDB,或者创建启用了数据库保险库的PDB,则会有更多的前提条件

  该过程PDB有一个新的默认服务被创建。该服务与PDB具有相同的名称,可用于访问PDB。 必须为客户端正确配置Oracle Net Services才能访问此服务

  可以使用CREATE PLUGGABLE DATABASE语句从源PDB或从非CDB克隆PDB。通过克隆,将源PDB或非CDB克隆为新的PDB,并自动将克隆插入CDB。要使用该技术,需要在创建语句中包含有from子句指定源。

  源可以是本地CDB中的PDB,远程CDB中的PDB或Non-CDB。 CREATE PLUGGABLE DATABASE语句将与源关联的文件复制到新位置,并将文件与目标PDB关联。 当CDB处于ARCHIVELOG模式和本地撤消模式时,源PDB可以在读/写模式下打开,并在操作期间完全起作用。因此支持热PDB克隆。

  克隆的一个用途是测试。 通过克隆,可以创建一个或多个PDB或Non-CDB,并单独安全地进行测试。 例如,在将application与production PDB一起使用之前,可以在克隆的PDB上测试新的application或修改过的的application。

  如果目标CDB没有具有相同名称的公共用户,则该用户帐户被锁定在目标PDB中。 对于每个锁定的用户,可以选择以下选项处理:

  1、关闭PDB,连接到根目录,并创建具有相同名称的公共用户。 当PDB在读/写模式下打开时,共同授予用户的角色和特权的差异将得到解决,可以解锁用户。 在此过程中,本地授予用户的权限和角色保持不变。

  2、在PDB中创建新的本地用户,并使用数据泵将锁定的用户数据导出/导入到新的本地用户模式中。

  可以使用CREATE PLUGGABLE DATABASE语句将PDB从一个CDB重定位到另一个CDB。必须包括指定PDB的当前位置的FROM子句;包括RELOCATE子句以指定正在移动PDB而不是克隆。在操作完成之后,PDB被添加到PDB被重定位到的CDB。使用这种技术是以最少停机时间重定位PDB的最快方式,被重定位的PDB可以在读/写模式下打开并且在重定位过程期间完全起作用。

  如果系统使用Oracle Internet Directory(Oracle的LDAP目录服务),则可以在中央位置更新连接信息,而不是在多个客户端配置文件中更新。

  如果在旧位置和新位置为PDB使用相同的侦听器,则在重新定位完成时,新连接将自动路由到PDB的新位置。

  如果PDB使用不同的侦听器,并且通过local_listener和remote_listener参数的配置使用它们各自侦听器的交叉注册,则重新定位是无缝的,因为PDB的服务的可用性和位置将被自动注册到侦听器。

  该技术使用描述PDB的XML元文件和相关的数据库文件将PDB插入到CDB中。这些文件可以单独使用,也可以压缩为一个.pdb后缀的文件。如以下两种情况:

  在创建代理PDB的过程中,始终需要DBlink。创建完成之后,该DBlink不再被使用,代理PDB直接与被引用的PDB通信。

  直接通信需要包含引用的PDB的CDB的侦听器的端口号和主机名,默认情况下,代理PDB使用以下值:

  如果引用的PDB的侦听器不使用默认端口号,则必须使用PORT子句指定侦听器的端口号。 您可以在创建代理PDB时指定端口号,也可以更改代理PDB以更改端口号。

  如果引用的PDB的侦听器不使用默认主机名,则必须使用HOST子句指定侦听器的主机名。 您可以在创建代理PDB时指定主机名,也可以更改代理PDB以更改主机名。

  该方法是使用Non-CDB创建PDB的最简单的方法,但它需要将Non-CDB的文件复制到新位置。前提条件是无论是Non-CDB还是将要用于PDB插入的新的CDB,必须是12.1或者更新的版本。

  XML元文件描述Non-CDB的数据库文件,此方法需要比通过克隆Non-CDB创建PDB更多的步骤,但它允许在某些情况下使用Non-CDB创建PDB而不移动Non-CDB文件。

  从一个Non-CDB中导出相关文件,并导入到PDB中,在执行导入时,在用户名后面指定PDB的连接标识符。 例如,如果PDB的连接标识符是hrpdb,则在运行Oracle Data Pump Import实用程序时输入以下内容:

  将来自Non-CDB的数据复制到PDB, 当新建的PDB与源Non-CDB同步时,可以故障转移到PDB。

  当指定XML文件(.xml扩展名)时,它将包含有关PDB的元数据,被拔除后, SQL语句创建XML文件,并且它包含在目标CDB上启用CREATE PLUGGABLE DATABASE语句以插入PDB所需的信息。

  指定.pdb文件时,它包含描述PDB和PDB使用的文件(例如数据文件和元文件)的XML文件的压缩归档。 .pdb文件允许您将单个压缩文件(而不是多个文件)复制到新位置,以将PDB插入CDB。

  必须关闭PDB,然后才能出。 当拔下PDB时,同一CDB中的其他PDB处于mount模式。 拔除操作会在PDB的数据文件中进行一些更改以记录。 因为它仍然是CDB的一部分,所以被拔出的PDB包含在整个CDB的RMAN备份中。以备将来需要时使用。

  当然,也可以从CDB中完全删除PDB。 在拔出的PDB上支持的唯一操作是 dropping PDB。如果需要将PDB插回到同一个CDB中,必须先从CDB中删除该PDB,并且PDB只有在插入CDB时才可用。

  在Drop PDB的过程中,可以使用一下语句指定要不要保留PDB的文件。

转载请注明来源:【Oracle122新特性掌上手册】-第八卷 PDB的快速创建