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/
发表评论 取消回复