对于那些苦于管理大规模数据库的DBA来说,也许新版的Oracle Database 12c中的可插拔数据库(Pluggable Database,简称PDB)功能将成为他们的福音。
针对Oracle 12c数据库测试用户的一份调查显示,新版本中他们认为最强大的功能就是PDB。就如同服务器虚拟化技术从底层硬件层面将操作系统抽象出来一样,Oracle 12c中的PDB就是从管理系统中将数据库抽象出来。可以说PDB的意义有如虚拟化对服务器所产生的影响。
世博控股(Sabre Holdings)集团的数据架构师Marshall Romberg表示:“我们对减少数据库数量并提供更多的灵活性最感兴趣,所以我们使用PDB的最大目的就是整合(consolidation)。”
Romberg描述了一个典型的应用场景:在Sabre公司中,不同部门的应用是由多个数据库作为后台支撑的,这些数据库跑在各自的服务器上。这样导致的结果就是,Sabre需要维护上千台服务器,而这些机器的CPU利用率最高也不过5%。于是Sabre的DBA团队决定对数据库Schema进行整合,但这样做也会引出其他一些问题。比如,由于一些应用需要严格的Schema命名标准,所以命名空间之间的冲突难以避免。
于是Sabre首先想到的就是利用服务器虚拟化技术来解决CPU利用率的问题,但是根据另外一家大型电信企业的首席架构师(未透露姓名)称,这可能会带来更大的管理问题。此人称:“每一个虚拟机都会有一个操作系统、一个数据库和一个应用。因此DBA团队的工作量肯定会加倍。也就是说如果有15个虚拟主机,那就意味着你需要管理15个操作系统和15个数据库。”
Oracle Database 12c可插拔数据库解决难题
Oracle Database 12c有两个主要的组件:Container Database(CDB)和Pluggable Database(PDB)。CDB主要用来作为数据库实例,它包含数据库操作、元数据和函数。PDB是用户数据库,能够插入到CDB当中。根据Oracle给出的官方文档,一个CDB中最多可以插入250个PDB。这些PDB还可以任意插入到其他的CDB当中,无论是在当前服务器上还是其他服务器上都可以。
Oracle官方宣称,这一新功能可以加速数据库部署,即升级或者给一个CDB打补丁就可以将所有变更同步到其上的PDB当中。也可以创建一个新的CDB,然后进行升级变更,再将其他PDB插入到该CDB中,就可以达到相同的效果。而针对安全性保障,Oracle官方表示两个PDB之间的安全性级别同两个普通Oracle数据库的一样。
著名在线支付公司PayPal的数据库架构师Amit Das介绍,公司拥有超过500个数据库实例,其大小从10TB到130TB不等。在快速的OLTP环境中,将达到每秒14000次并发处理和80000个执行。想要管理这样规模的数据库系统?谈何容易!
“作为Oracle 12c数据库测试项目的一部分,我们开始接触到了Pluggable Database功能,”Das说:“在一些情况下,它带来的好处是巨大的,特别是管理开发项目的时候,你必须给他们多个数据库。”
Pythian咨询公司的CTO Alex Gorbachev同意Das的观点,他发现Pluggable Database的最大优势在于降低管理复杂度。他表示DBA在管理数据库的时候不喜欢使用hypervisor,因为它会为数据库堆栈提供一个新的层,使得数据库透明度进一步降低。
Gorbachev将PDB比作一个Solaris容器(Sun公司的操作系统虚拟化技术),DBA可以将这种虚拟化技术用到数据库内核当中。无须添加额外的层,你是在数据库代码中使用虚拟化技术,因此不会造成额外的开销。
Oracle Database 12c有两个主要的组件:Container Database(CDB)和Pluggable Database(PDB)。CDB主要用来作为数据库实例,它包含数据库操作、元数据和函数。PDB是用户数据库,能够插入到CDB当中。根据Oracle给出的官方文档,一个CDB中最多可以插入250个PDB。这些PDB还可以任意插入到其他的CDB当中,无论是在当前服务器上还是其他服务器上都可以。
Oracle官方宣称,这一新功能可以加速数据库部署,即升级或者给一个CDB打补丁就可以将所有变更同步到其上的PDB当中。也可以创建一个新的CDB,然后进行升级变更,再将其他PDB插入到该CDB中,就可以达到相同的效果。而针对安全性保障,Oracle官方表示两个PDB之间的安全性级别同两个普通Oracle数据库的一样。