2.5 使用Data Pump Export和Import
Export和Import提供了间接升级方法。可在现有数据库旁创建Oracle 12c数据库,并使用Data Pump Export和Import将数据从旧数据库移到新数据库。当数据移动完成时,需将应用程序指向新数据库的连接,而非旧数据库的连接。同时需要更新所有配置文件、版本特有的脚本,以及联网配置文件(tnsnames.ora和listener.ora),并将这些文件指向新的数据库。
使用Export/Import方法的优点在于,在升级过程中不影响现有数据库;但为确保关系完整性,且在旧数据库中未遗留任何新事务,可在导出和升级期间,以受限模式运行旧数据库。
2.5.1 使用的Export和Import版本
通过Export实用程序创建Export转储文件时,可将该文件导入到所有较新的Oracle版本中。创建Data Pump Export转储文件时,可仅将此文件导入到相同的或更近的Data Pump Export版本中。Export转储文件不是向下兼容的,因此如果需要回复到Oracle的较早版本,则应仔细选择使用的Export和Import版本。
注意,当进行导出以降级数据库版本时,应使用旧的Export实用程序版本来尽量减少兼容性问题。如果新版本的数据库使用旧版本不支持的新特性(如新的数据类型),则仍会遇到兼容性问题。
2.5.2 执行升级
使用Data Pump Export(推荐)或Export/Import(Oracle Database 10g),从源数据库导出数据。由于必须从运行Oracle Database 10g或更新版本的数据库直接升级到Oracle Database 12c,Data Pump Export在该版本和所有中间版本中都是可用的。可执行一致性导出,也可在导出期间或导出后数据库不用于更新时执行导出。
安装Oracle Database 12c软件,并创建目标数据库。在目标数据库中,预先创建需要存储源数据的用户和表空间。如果源数据库和目标数据库共存于服务器上,则需要注意,不要使用另一个数据库中的数据文件覆盖当前数据库的数据文件。Data Pump Import实用程序将尝试执行在Data Pump Export转储文件中找到的CREATE TABLESPAC命令,这些命令将包括源数据库中的数据文件名。默认情况下,如果文件已存在(虽然可能通过Import的REUSE_DATAFILES=Y参数重写),这些命令将失败。使用正确的数据文件名预先创建表空间可避免这种问题。
注意:
可导出特定的表空间、用户、表和行。
一旦准备好数据库,就可使用Data Pump Import将Export转储文件中的数据加载到目标数据库中。查看日志文件,了解未成功导入的对象的相关信息。有关如何使用Data Pump Export和Import的详细说明,参见第11章。