龙空技术网

一文看懂Oracle12c中多租户(容器)从种子创建PDB

波波说运维 279

前言:

而今看官们对“oracle12c创建为容器数据库”都比较注意,我们都需要知道一些“oracle12c创建为容器数据库”的相关资讯。那么小编同时在网络上网罗了一些对于“oracle12c创建为容器数据库””的相关内容,希望小伙伴们能喜欢,我们快快来了解一下吧!

概述

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

以下基于Oracle19c演示如何从种子创建PDB。

概述

使用种子(PDB$SEED)创建新的PDB,过程是把PDB$SEED中的数据文件复制到 CREATE PLUGGABLE DATABASE 语句中定义的目标目录中。如下图:

整体过程:

1)从 PDB$SEED 中复制数据文件

2)创建 SYSTEM 和 SYSAUX 表空间

3)创建新目标目录,并在根容器中记录元数据进行关联

4)创建临时表空间 TEMP

5)创建公共用户 SYS 和 SYSTEM

6)创建默认服务

使用位置子句创建(推荐)

所谓使用位置子句的意思就是:在创建的语句中直接指定目标目录。

1、FILE_NAME_CONVERT

使用 FILE_NAME_CONVERT 参数指定目标目录

create pluggable database pdb2 admin user hwb identified by hwb roles=(connect) file_name_convert=('/oracle/oradata/SRM/pdbseed','/oracle/oradata/SRM/pdb2');

注意:语句中的 roles=(connect)是直接授予了该用户的 create session 系统权限,就是允许连接登陆(connect是角色权限包,里面包含 create session 系统权限)

2、CREATE_FILE_DEST

使用 CREATE_FILE_DEST 参数指定

!mkdir /oracle/oradata/SRM/pdb3create pluggable database pdb3 admin user hwb identified by hwb roles=(connect) create_file_dest='/oracle/oradata/SRM/pdb3';

注意:仔细观察上面两个参数的使用。一个参数指定两个路径(种子路径,新路径),一个参数指定一个路径(新路径)。

补充

如果想要在创建PDB时不指定路径,也可以提前定义好参数DB_CREATE_FILE_DEST或者PDB_FILE_NAME_CONVERT,但是每次都得设置这个参数,所以我还是不推荐这个方式,直接自己定义路径就可以了,不用搞那么多乱七八糟的。

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

标签: #oracle12c创建为容器数据库