oracle12c新特点之可插拔数据库(Pluggable Database,PDB)

Oracle 12c引入了一个新的概念——可插拔数据库(Pluggable Database,简称PDB),它提供了一种新的方式来管理和部署数据库。在12c以前的版本中,一个数据库实例只能支持一个数据库;而在12c中,一个实例可以支持多个PDB。每个PDB都类似于一个独立的数据库,有自己的数据库名称、用户、表空间等。除此之外,PDB还可以共享一个实例级别的SGA(System Global Area)和背景进程,以节约系统资源。

PDB的优势有以下几点:

1. 节约资源。通过共享SGA和背景进程,PDB可以大大减少实例的内存使用和CPU负载,从而节约资源。

2. 简化管理。通过将多个数据库放在同一个实例中,管理员可以更方便地管理这些数据库,包括备份恢复、安全、监控等。

3. 提高灵活性。通过PDB的部署方式,管理员可以轻松地实现数据库的移动、复制和分发,从而提高灵活性。

下面我们来详细介绍一下如何使用PDB。

创建PDB

要创建PDB,首先需要创建一个CDB(Container Database)。CDB是一个包含了一个或多个PDB的特殊数据库,它可以看做是管理多个PDB的“容器”。创建CDB的方式与创建普通数据库类似,只不过需要在创建时指定一个特殊的选项:

```

create database cdb

enable pluggable database

...

```

这里的“enable pluggable database”选项表示开启PDB支持。

接下来,我们就可以在CDB中创建PDB了。首先使用sysdba权限登录CDB,然后执行以下命令:

```

create pluggable database pdb1 admin user pdbadmin identified by password

file_name_convert = ('/u01/app/oracle/oradata/CDB/', '/u01/app/oracle/oradata/PDB1/')

path_prefix = '/u01/app/oracle/oradata/PDB1/';

alter pluggable database pdb1 open;

```

这里的“create pluggable database”语句就是创建PDB的命令,其中“admin user”表示PDB的管理员用户,file_name_convert和path_prefix则指定了PDB的数据文件存储路径,并将其与CDB的路径进行了转换。接着使用“alter pluggable database”命令将PDB打开。

使用PDB

要使用PDB,需要先以sysdba权限登录到CDB中,然后通过以下命令进入PDB:

```

alter session set container=pdb1;

```

这里的“alter session”命令可以改变当前会话的PDB。在PDB中,可以像在普通数据库中一样进行各种操作,包括建表、建用户、插入数据等。

移动PDB

由于PDB是独立的数据库,可以将其移动到不同的机器或不同的实例中,从而实现数据的备份、复制和分发。要移动PDB,需要先将其关闭,然后将数据文件拷贝到新的位置,最后使用“alter pluggable database”命令将其打开:

```

alter pluggable database pdb1 close;

copy /u01/app/oracle/oradata/PDB1/* /u02/app/oracle/oradata/PDB1/;

alter pluggable database pdb1 open;

```

在实际的应用中,可以使用数据传输工具(例如Oracle Data Guard)来完成PDB的移动和复制。

案例说明

假设我们需要创建一个包含两个PDB的CDB,一个PDB用于生产环境,另一个用于开发和测试环境。为了节约系统资源,这两个PDB需要共享一个实例。

首先我们创建CDB:

```

create database cdb

enable pluggable database

sysaux datafile size 500m

system datafile size 250m

default tablespace users

default temporary tablespace temp

undo tablespace undotbs1

character set utf8;

```

然后创建用于生产环境的PDB:

```

create pluggable database prod admin user pdbprod identified by password

file_name_convert = ('/u01/app/oracle/oradata/CDB/', '/u01/app/oracle/oradata/PROD/')

path_prefix = '/u01/app/oracle/oradata/PROD/';

alter pluggable database prod open;

```

最后创建用于开发和测试环境的PDB:

```

create pluggable database dev admin user pdbdev identified by password

file_name_convert = ('/u01/app/oracle/oradata/CDB/', '/u01/app/oracle/oradata/DEV/')

path_prefix = '/u01/app/oracle/oradata/DEV/';

alter pluggable database dev open;

```

现在我们就可以使用以下语句来切换不同的PDB:

```

alter session set container=prod; -- 切换到生产环境

alter session set container=dev; -- 切换到开发和测试环境

```

当我们需要备份和恢复PDB时,只需要备份和恢复对应的文件即可,非常方便。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(48) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部