第2章 升级到Oracle Database 12c
如果你已经安装了Oracle数据库服务器较早的版本,则可以将数据库升级到Oracle Database 12c。有多种升级方式可以选择,正确的选择将取决于当前的Oracle软件版本和数据库大小等因素。本章将描述这些方法以及使用它们的指导原则。
如果没有使用Oracle Database 12c之前的Oracle版本,那么可以跳过本章继续往后阅读。然而,从Oracle Database 12c升级到以后发布的版本时或将数据从一个不同的数据库迁移到当前数据库时,仍可能需要参考本章的内容。
在着手升级前,应阅读针对当前操作系统的Oracle Database 12c安装指南。成功的安装取决于正确配置的环境,包括操作系统补丁级别和系统参数设置。最好首先计划获得安装和升级权利,而不是尝试重新启动部分成功的安装。配置系统使其支持Oracle软件的安装以及启动程序数据库的创建。
本章假设Oracle Database 12c软件已成功安装,并有一个使用同一服务器上较早Oracle软件版本的Oracle数据库。需要注意,无论是从头安装,还是升级以前的Oracle Database版本,采用独立的步骤来安装Oracle Database 12c软件和创建数据库都有明显的好处。当从头安装时,如果采用独立的步骤创建数据库,则对初始参数、数据库文件位置和内存分配等具有更大的控制权。当从以前的版本升级时,先安装可以提供Oracle升级前信息的工具(Oracle Pre-Upgrade Information Tool),对已有数据库使用该工具可以对升级到Oracle Database 12c时潜在的兼容问题发出警报。要升级数据库,有4种选择:
●使用数据库升级助手(Database Upgrade Assistant,DBUA)来指导并在适当的位置执行升级。在升级期间,旧数据库将成为Oracle 12c数据库。DBUA支持Oracle RAC(实时应用群集)和ASM(自动存储管理)。既可以在安装时启动DBUA,也可将DBUA作为安装后的一个独立工具。Oracle强烈建议对Oracle Database主要版本或补丁版本升级使用DBUA。
●执行数据库的手动升级。在这个过程中,旧数据库将成为Oracle 12c数据库。即使非常谨慎地控制该过程的每个步骤,但如果漏掉一个步骤或忘记某个必要的步骤,这种方法也容易产生错误。
●使用Oracle Data Pump(Oracle数据泵)实用程序将数据从较早的Oracle版本移动到Oracle 12c数据库。将使用两个单独的数据库:旧数据库作为导出源,而新数据库作为导入的目标。如果是从Oracle Database 11g升级,则使用Oracle Data Pump将数据从旧数据库移动到新数据库。尽管Oracle Data Pump是推荐使用的迁移方法,但也可以使用原来的导入/导出方式(imp和exp)从Oracle Database 10g和更早版本中导出数据,然后导入Oracle Database 12c。
●将数据从较早的Oracle版本复制到Oracle 12c数据库。将使用两个单独的数据库:旧数据库作为复制源,新数据库作为复制目标。这种方法最直截了当,因为数据的转移主要是由引用旧数据库和新数据库的CREATE TABLE AS SELECT SQL语句组成的。但是,除非数据库只有很少的表,且不涉及已有的SQL调整集和统计信息等,否则Oracle不建议对生产数据库采用这种方法。一个例外是迁移到Oracle Exadata,此时,该方法允许利用诸如HCC(Hybrid Columnar Compression)和分区的Exadata特性,权衡一下,其优点超出了使用该方法的缺点。
通过数据库升级助手或手动升级方式,在适当的位置升级数据库,这称为“直接升级”。因为直接升级不涉及为升级数据库创建第二个数据库,所以相对于间接升级,它可以更快完成,需要的磁盘空间也较少。
注意:
只有在当前数据库使用如下Oracle版本之一时,才支持将数据库直接升级到版本12c:10.2.0.5、11.1.0.7、11.2.0.2或更新版本。如果正使用其他版本,则首先需要将数据库升级到这几个版本中的一个,或者使用不同的升级选项。